Writing
tags
Long-form notes on backend architecture, database performance, and the parts of shipping software nobody puts on a slide.
Databases
The N+1 Query You Ship Every Sprint
featured
Nine out of ten performance regressions I have diagnosed in production were the same bug wearing different clothes: an unloaded relation inside a loop that nobody noticed because the staging database has 40 rows.
Frontend
Server-Driven UI Is Not a Downgrade
The reflex to reach for a SPA has a cost most teams never price in: a duplicated domain model and a second place for authorisation to be wrong.
Backend
Your Queue Retry Policy Is a Data Loss Bug
Retrying a non-idempotent job turns a transient network blip into a duplicate charge. The fix is not more retries; it is making the job safe to run twice.
Backend
Caching Without Invalidation Regret
Most caching bugs are not cache misses. They are cache hits returning something that stopped being true an hour ago.