top band

Saturday 4:30 p.m.–5 p.m.

Techniques for Debugging Hard Problems

Alex Gaynor

Audience level:
Best Practices & Patterns


Sometimes your programs have bugs. Often they're shallow things, simple AttributeErrors or TypeErrors. Sometimes they're large, complex, and nearly impossible to debug. This talk explores techniques for figuring these out.


We often write code with bugs. They're usually shallow, simple things, but sometimes they're incredibly complex and take hours (or more) of our time to pinpoint their causes. This talk explores these types of bugs, what type of code or environmental factors makes them so hard to track down. What tooling can make it easier to expose their cause, and what techniques can we use to better model these problems and increase our understanding earlier in the process. Using real world examples of hard problems, I'll show how these techniques have debugged problems such as: * `posix_spawn` calls mysteriously failing to start a new process * Every few minutes a giant request spike to a website * A failure to make an HTTPS request to some websites
bottom band background