About me
Hi, I'm Ahmet, a full-stack developer from Türkiye.
By day I'm a Senior Frontend Engineer at MobileAction. I write a lot of TypeScript there, mostly Vue and React. I've done my share of backend work with Node.js over the years, but these days I live almost entirely on the frontend. The parts of the job I enjoy most are the quiet ones: figuring out where state should live, and leaving code a little easier to reason about than I found it.
Things I'm building
The project closest to my heart right now is usewagen. It keeps reactive state in the URL and in browser storage, with real types instead of raw strings, so a page number comes back as a number and a date comes back as a date. It sticks to one rule: the source stays in charge, so whatever you write is exactly what you read back.
usewagen started life as qpick, which solved the same problem for the URL alone. Then I caught myself writing the same sync logic all over again for localStorage, and one model started to make a lot more sense than two.
I also look after a few smaller libraries, each one born from a problem I hit in a real product:
- drawerly, a framework-agnostic way to build stacked drawer interfaces
- qubo, a MongoDB-style query builder for plain JavaScript objects
- fakend, a promise-based mock adapter for axios
And when the projects I depend on need a hand, I try to show up with a good issue or a small fix.
Why I write
Mostly so I don't forget. Why something ended up the way it did, what I got wrong before I got it right, the little things I'll want again in six months. I keep those notes in the open, and if one of them helps you too, that honestly makes my day.
Away from the keyboard
You'll usually find me on my bike or out for a run. One day I'd love to start a small cycling community: nothing ambitious, just a ride that happens regularly and a good excuse to get more people outside. Whatever time is left goes to digging for new music.
Say hi
I'm on GitHub, X and Bluesky. I'm always happy to talk about Vue, TypeScript, or whatever you're stuck on.