Everything I've built: side projects, client work and open-source contributions. Each entry is a full case study covering the problem it set out to solve, the stack I picked and why, the parts that turned out harder than expected, and what I'd do differently a second time.
Most of these are full-stack builds I took from an empty repository to a running deployment: schema design, API, interface and the server it lives on. Filter by stack, or switch between client and personal work, to jump straight to what matches what you're hiring for.
Stack: Next.js 16, TypeScript, React, Convex, Clerk, Stream(video SDK), Monoco Editor, Tailwind css, Shadcn, Docker
Stack: PHP 8.2, MYSQL 8, JavaScript (ES6), jQuery, Bootstrap 5, Docker, NginxI work as a full-stack engineer, which in practice means I own a feature end to end rather than handing it across a boundary. A typical project starts with the data model, because getting the schema wrong is the mistake that is most expensive to undo later. From there I build the API, then the interface against real data instead of mocks, so the awkward states (empty, loading, partial, failed) show up early enough to design for properly.
The stack I reach for most is TypeScript across the whole surface: Next.js on the front, Node on the back, and PostgreSQL underneath. I keep the dependency list short and prefer boring, well-understood tools over whatever shipped last month. Where it makes sense I self-host. This site and several of the projects above run on a VPS I administer myself, which has taught me considerably more about deployment, TLS and monitoring than a one-click platform ever did.
If something here overlaps with a problem you're working on, the case studies go into real detail, and I'm happy to talk through the parts that didn't make it into the writeup. Get in touch.