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