Production Debugging
The API was 100 ms and is now 3 s. Working from symptom to cause through deploys, queries, pools, dependencies, the event loop and the queue.
Turning "the API got slow" into a named cause by narrowing the search space with evidence instead of guessing at fixes.
The decision flow from "slow" to a named bottleneck: split the time first, then follow the branch the evidence selects.
Thirteen failures that account for most backend incidents, each with the symptom that identifies it and the first diagnostic to run.
Ten patterns that predict production trouble — and, for each, the situation where the same pattern is the right answer.
The highest prior probability for a sudden change in behaviour belongs to the thing that just changed — usually yours.
Distinguishing a leak from ordinary heap growth, finding the reference that retains, and doing it on a live process.
How a reasonable retry policy turns a dependency's brief degradation into a sustained outage, and what bounds it.
The endpoint is slow, the database is calm, and the pool has waiters — the most commonly misdiagnosed backend incident.