Opinion
Choose Boring Technology, Except Where It Matters
The advice is right and incomplete. The interesting question is where to spend your limited budget for novelty.
Production debugging, observability, CI failures and the infrastructure layer every service depends on and nobody instruments.
Opinion
The advice is right and incomplete. The interesting question is where to spend your limited budget for novelty.
Kubernetes
CrashLoopBackOff is not an error, it is a symptom with about nine distinct causes. Here is how to identify which one you have in under three minutes.
PostgreSQL
Adding a column should be instant. Sometimes it is not, and the difference is worth knowing before you run it in production.
Debugging
Five years of keeping other people's websites online rewired how I think about failure. Mostly by making the consequences immediate.
PostgreSQL
Connection pooling explained through the failure it prevents, and why raising max_connections is usually the wrong fix.
Debugging
When your profiler shows nothing and your logs are silent, strace shows you every syscall with timings. Here is a practical subset worth knowing.
DevOps
A plan showing forced replacement of a database is a good moment to stop. Here is how to read why, and the three ways state gets out of sync.
DevOps
Most logs are unqueryable prose written for a human who will never read them. Here is what makes a log line useful during an incident.
Networking
How to handle being rate limited without making it worse, and how to implement limits that do not punish well behaved clients.
DevOps
Not a guide to observability platforms. Just the three signals that, in retrospect, would have given me warning before nearly everything that went wrong.
Kubernetes
nslookup resolves and your application cannot connect. The two use different resolvers, and the difference is where the bug lives.
Networking
A missing timeout turns a slow dependency into an outage. A badly chosen one turns a blip into a retry storm. Both are common.