About

I’m a developer who learns by messing around, breaking things, and figuring out why they broke. I pick up new tools fast and switch stacks depending on what I’m building — C# for services, TypeScript for web apps, Python for quick scripts, C or C++ when I want to get more control. I don't stick to one language unless there's a reason.

I like to wear a lot of hats. I mostly build backend systems, but I’m comfortable doing full-stack work when needed. This site runs on Next.js and React, all stitched together by me. If something needs to get done, I’ll usually just figure it out and build it myself.

In my free time, I reverse engineer games, play with microcontrollers, do problem solving, or just build stuff from scratch because I want to know how it works. My projects usually start with a question —What if I just built my own version of this? Can I figure out how that binary ticks? — and I follow the thread until I learn something new. I like pushing myself to know more than I already do.

Projects

Laudiolin

High-quality* music player.

HTML0.7%
TypeScript84.2%
JavaScript0.2%
SCSS11.3%
Rust3.5%
Teto

A 32-bit CPU implementation in C#

C#100.0%
Grasscutter

A server software reimplementation for a certain anime game.

Java95.3%
Batchfile0.2%
Python0.6%
HTML0.3%
Shell0.5%
JavaScript0.0%
TypeScript2.5%
SCSS0.6%
Dockerfile0.0%
Laudiolin-Mobile

High-quality* music player. Now on your mobile device.

JavaScript1.0%
TypeScript99.0%
cfetch

A javascript-like `fetch` api implementation in C in a single header file for a drag and drop experience

C83.7%
Python16.3%

Blog

Read my full blog