I started writing code because I liked the feeling of making something appear on a screen out of nothing. Two years and maybe a hundred late nights later, that feeling hasn't left.
I work primarily across the TypeScript ecosystem — Next.js for UIs, Node for services, Postgres or Mongo depending on the shape of the data. I care about shipping: taking a fuzzy idea, picking a stack that fits the constraints, and getting a working version in front of someone fast enough to learn from it.
Most of what I do sits between application code and AI models — wiring LLMs into product workflows, building evaluation pipelines, designing multi-provider abstractions, and shipping the UI that makes any of it useful. The interesting problems live in the gap between "the model returned something" and "the user got value."
▸ ai / llm
OpenAIAnthropicGeminiRAGevalsstreamingmulti-provider orchestrationagentic workflows
▸ languages
TypeScriptJavaScriptPython
▸ frontend
ReactNext.jsTailwindFramer Motionshadcn/ui
▸ backend
Node.jsExpresstRPCConvexPrisma
▸ database
PostgreSQLMongoDBRedis
▸ tools
GitDockerVercelGitHub ActionsLinux
▸ learning
PyTorchTransformersLangChain