I'm a full-stack engineer with a frontend background and a product mindset — building end-to-end in TypeScript, from the data model and API to the interface. As Frontend Tech Lead at Sanstech, most of my job is leverage: setting the architecture and conventions the team builds on, reviewing carefully, and unblocking people so good work actually ships. I led our JavaScript → TypeScript migration and the move to Tailwind, and I'm now driving how AI gets woven into the way we work day to day.
Lately most of that curiosity goes into AI-native features: agent loops, tool-calling, and LLM orchestration. I'd rather understand these from first principles than wire up a library — which is why I wrote porti-code, an open-source coding agent, from scratch. It shows up in what I ship: multi-provider LLM pipelines, MCP tool-use, and retrieval with embeddings, in production. Still the same question behind all of it — “Why not better?”
Building
- Fisle — AI receipt scanning + Luca accounting export for Turkish accountants.
- porti-code — an open-source coding agent, built from scratch.
Garden
see all →- AI Garden — working notes, schemas and open questions on building with LLMs.
- Stack — the tools I build with, and why each one earned its place.
- Experience, Talks & Resources — where I've worked, spoken and published.