The Valley of Debugging

September 4, 2021

All journeys of significance have high points and low points. Debugging a difficult problem is no different.

I’ve been at this for a while, but the thrill of fully understanding a problem and the solution after a debugging journey has not worn off yet. Or as a friend puts it, “the one part of this job that never gets old is when things go from not making any sense to making sense again.”

That point is the peak. But to get there requires grit in the valley.

In the valley, things still don’t make any sense. Often it seems there’s no way out.

Press on.

Because as soon as you have exhausted every possibility and absolutely cannot figure it out, you’re close.

Teachable and Stubborn

August 18, 2021

The most important question to evaluate in a potential hire is “are they teachable?”.

By teachable I do not mean “we do everything perfectly here, so they must be able to learn from us.” In fact, that attitude would represent the opposite of teachable.

Beyond a desire to learn, being teachable means being humble enough to consider that you might be wrong. And being open to changing your opinion when that’s the case. That’s a quality critical to both the established organization and the potential hire, assuming both sides want to grow. (It’s also important because software developers are usually wrong before lunch.)

The second most important question to evaluate is “are they stubborn enough?”.

Those two qualities appear to be in conflict. But you cannot solve difficult problems without being exactly the right kind of stubborn. (Sure, the words “diligent” or “persistent” could be used here, but “stubborn” captures the required vigor.)

Be teachable, but don’t forget to also be stubborn.


April 7, 2021

Persistence is a critically important quality of a software developer.

Debugging, for example, demands persistence. It’s a grind.

The first architecture of a system will never be correct. Neither will the second. It takes persistence to design and re-design to the right one.

It also takes persistence to continually show up and do your best work. If you do the best work you can every day, you are ahead of most of the industry. And if you’re not doing the best work you can, what are you doing instead?