10 parts · 17 chapters

Backend Debugging and Diagnostics

The backend mirror of the DevTools course. Production problems are found with a method, not with luck: start from the symptom, narrow with metrics, confirm with traces and profiles, then prove the cause with the right low-level tool. Every chapter here ends in a command you run against a real process.

Ten parts: the diagnostic method; processes and syscalls; CPU profiling across runtimes; memory, leaks and GC; locks and contention; network debugging; database-side diagnosis; core dumps and debuggers; eBPF tools; and the lab, a service with one deliberate pathology per route at modules/bdiag/lab/server.mjs.

the method · processes and syscalls · CPU profiling · memory · locks and contention · network · database-side · core dumps · eBPF · the labsenior → staff · engineers on call for backend services
methodSymptom, scope, hypothesis, evidence, fix, verify.
syscallsstrace, ltrace, lsof, ss, /proc.
profilingperf, pprof, async-profiler, py-spy, clinic and flame graphs.
memoryHeap dumps, leaks, GC logs across runtimes.
network and DBtcpdump, Wireshark, curl timing, slow logs and lock views.
the labSeven pathologies to diagnose with real tools, measured numbers included.
Built on Node, Computers and SREUses the measurement habits from Computers part 10, the observability from SRE part 8, and Node part 9 for JavaScript-specific profiling.