Every check that runs before this portfolio deploys — the coverage ratchet, a Lighthouse gate over every public page, pinned action SHAs — and the specific failure each one exists to catch.
The chat widget on this site is grounded in the same typed data that renders the pages. Here's how it's built, the bug that killed it for days, and what I now check before putting an LLM in front of customers.
Most handoff pain isn't missing code, it's missing reasons. Four docs, an intentional-design register, and known debt with triggers — the structure I use so the next engineer stops 'fixing' things on purpose.
I built Shorty, uNotes, Caramel, UpUp, and GetItDone after nobody asked me to. Here's what each one taught me — and the one mistake I made with every single one of them.
Every tool in my CI/CD pipeline — from pre-commit hooks to AI-powered code review — and why each one earns its place.
Five years of lessons building a software studio — pricing, hiring, retention, and the moment I almost quit.
GitHub issues that write themselves, PR reviews that actually understand context, and code that deploys after passing AI validation.
Why I built Caramel, how the browser extension works under the hood, and the lessons from shipping open-source software.
A deep dive into running Docker Swarm on a home server with Dokploy, Tailscale mesh networking, and Cloudflare tunnels.