Engineering Culture
Most Postmortems Are Theatre and Here Is What Makes One Useful
A document nobody reads, listing action items nobody does, produced to satisfy a process. Here is the version that actually changes something.
Production debugging, observability, CI failures and the infrastructure layer every service depends on and nobody instruments.
Engineering Culture
A document nobody reads, listing action items nobody does, produced to satisfy a process. Here is the version that actually changes something.
DevOps
The instinct is to start investigating. The first ten minutes are better spent on four other things, and doing them makes the investigation faster.
Bug Hunt
p99 jumped on one service. The database was fine, every dependency reported healthy, and the flame graph pointed at nothing. That turned out to be the clue.
Networking
At-least-once delivery means duplicates are normal operation, not an edge case. Here is how to build a handler that survives them.
Deep Dive
Traditional VMs take thirty seconds. Firecracker takes 125 milliseconds. The difference is everything it refuses to do.
DevOps
A build system with production credentials and the ability to run arbitrary code from a pull request is the most under-secured part of most stacks.
Kubernetes
Exit code 137, a memory graph that looks perfectly healthy, and no application error. Here is why your monitoring missed it and how to find the real number.
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.