Writing
Practical, implementation-first essays — turning hard-won lessons into something reusable.
Why I write the contract before the code, how I set up spec-kit on existing repos, and the habits that keep the spec as the source of truth.
My default debugging loop — reproduce, read the real error, localize the layer, check config and diff, fix the root cause — with the war stories behind each step.
PATCH vs. PUT, native vs. derived queries, versioning, and BOM-aware dependency upgrades — a tour of the design decisions I make the same way every time, and why.