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.