debugging

But It Works on My Machine

The four most cursed words in software: “works on my machine.” It is technically true, completely useless, and the documented alibi of a thousand bugs that went on to have rich careers in production. Your machine has eleven undocumented environment variables, a config file you edited in 2019 and forgot about, a globally installed dependency […]

In Praise of the Rubber Duck

The most effective member of my debugging team is a small plastic duck. It has no degree, no commits, and no opinions. You explain your code to it, out loud, line by line, and somewhere around line forty you hear yourself say the thing that is obviously, catastrophically wrong. The duck did nothing. The duck […]