📝 Blog
Atomic Commits and Git Bisect
2025-11-11
A small change can have an outsized impact. When our TypeScript typecheck slowed from a minute to several minutes, I turned to git bisect to narrow it down. How clean, atomic commits made the difference between a day of hunting and a 10-minute fix. The actual process with a real example from work.
Confidently Wrong
2026-04-29
LLMs are the most efficient lossy compression algorithm ever written. When information is missing, the model is incentivized to guess. Intrinsic vs extrinsic hallucinations, and why feedback loops matter. A talk from GitHub Copilot Dev Days 2026.
Mock Client-side & Server-side API Requests Using Next.js and MSW.js
2025-07-14
Modern Next.js apps issue API requests from both server and browser, complicating mocking. A practical way to mock consistently across SSR, client components, and API routes using MSW. Covers folder structure, handlers, instrumentation hooks, and common pitfalls. Develop and test confidently without relying on live backends.
The Last State Solution
2026-01-10
State management from a behavioral perspective, not just a structural one. Why Redux and Zustand leave a deeper question unanswered: when are actions actually valid? Tracing the cycle from local state to global stores and back. State machines as a way to make invalid states unrepresentable.
Past midnight
2026-01-24
I never learned to drive until I had to. College nights on the back of a Bullet, empty roads, and a bridge that became a refuge. Conversations about everything and nothing with people who would tell you the truth. A place where disagreement was welcomed and politeness was not yet a shield.