Banishing "Random" for Better Software Communication

“I’m still getting this random 404.” Want to sound pro? Banish “random” from your software engineering vocabulary. ...

June 17, 2025

Don't Guess

This is a response to “Don’t Guess” from the excellent “The Best Programmers I Know” by Matthias Endler. My goal is to crystallize my understanding of this trait. ...

April 29, 2025

Find Every Debugging Trail Marker

If you’ve ever watched me debug, you might think I’m moving slowly. That’s because I try hard to find every marker on the debugging trail. I believe this is one of the most valuable skills in debugging. ...

June 17, 2024

The Case Against "Try This" Debugging

In many group debugging sessions I’ve joined, a major technique being deployed is something I call “Try This” debugging. In this post, I’d like to talk about this anti-pattern, and consider a better way. ...

June 26, 2023

You Can't Change Nothing

I saw a meme this week: a person debugging code, “My code doesn’t work. Let’s change nothing and run it again.” This is something that I’ve done. It seems pointless. But that’s not quite correct. ...

October 21, 2022

All My Best Debugging Tips

This is a list of all the best debugging tips I’ve picked up over the years. Some of these might seem obvious, yet we forget them when it counts. Debugging is a skill. You have to bring every tool you have to the job. ...

August 5, 2022

Recognizing and Repairing a Broken Mental Model

Perhaps you’re familiar with this scenario: you’re debugging and stuck. You’ve Googled, read some blog posts and docs. You return to your search engine, type some characters, and then something strange happens: the search engine autocompletes your question, and the results are all purple because they have been visited by you. I’ve come to recognize this moment as always a symptom of a broken mental model. ...

July 25, 2022

Logging an Object in JavaScript

When printing a JavaScript value to the console, I suggest using an object literal over the raw value. ...

July 7, 2022

How to Write a Perfect Bug Report

Bugs are part of software, and so is bug reporting. Reporting well is a necessary skill in an ever-growing number of job titles. In this post, I’d like to explain how to write a perfect bug report. ...

June 13, 2022

Make a Prediction

Imagine you’re debugging, and you’re stuck. I have a technique that’s going to help. Think of an action you might take. Predict what will happen when you take that action. Take the action. Check if you were right or wrong, consider that information, and repeat. ...

June 8, 2022