Computers Can Be Understood

A big mental leap I made early in my programming was starting to view computers as something that could be understood. ...

September 6, 2022

Vim Scratchpad

Today I’d like to share a small part of my practice: using a persisted scratchpad text file for jotting things down. ...

August 25, 2022

Improve Your API Documentation Workflow with Dash

One of my all-time favorite programming tools is Dash by Kapeli. In this post, I’ll share some tips for leveraging this fantastic program. ...

August 21, 2022

Prefer Real Data For Software Development

When testing with data, I prefer realistic data rather than random data. ...

August 18, 2022

How Luck Played a Role in my Career

I believe that luck is part of every professional journey. Here’s a sampling of the luck I’ve had. ...

August 15, 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

Tmux Application Startup Script

My development environment depends on several processes running. Here’s how I’ve scripted this setup. ...

July 28, 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

Retros Need Action Items

Action items are small, defined, actionable TODOs to follow up on after the meeting. An example: “close all pull requests opened more than 90 days ago.” Agile retrospectives should produce many of these. ...

July 19, 2022

Better Than 'foo'

There’s almost always a better variable name or value than ‘foo’. It’s useful as a debugging placeholder, but it almost never belongs in production code, even and especially in automated tests. ...

July 13, 2022