Recent Articles

I Don't Want to Have to Think About It
I Don't Want to Have to Think About It
Jul 26, 2025 · 6 min read

I spent a substantial amount of time in the first half of 2025 ensuring that I don't have to think about microservices my team owns that have a low rate of change.


Resetting the Working Directory on Shell Function Exit
Resetting the Working Directory on Shell Function Exit
Jul 24, 2025 · 3 min read

Sometimes you need to change the working directory in a shell function. You should take care to reset it back after.


Copying Changes Between Git Clones
Copying Changes Between Git Clones
Jul 23, 2025 · 3 min read

How to copy uncommitted changes from one clone to another of the same repository.


Discussion Guide: The Pragmatic Programmer, 20th Anniversary Edition
Discussion Guide: The Pragmatic Programmer, 20th Anniversary Edition
Mar 26, 2025 · 7 min read

A guide with discussion prompts for David Thomas and Andrew Hunt's The Pragmatic Programmer, 20th Anniversary Edition.


Discussion Guide: More than a Glitch
Discussion Guide: More than a Glitch
Jan 26, 2025 · 8 min read

A guide with discussion prompts for Meredith Broussard's More than a Glitch: Confronting Race, Gender, and Ability Bias in Tech.


Automatic Audit Logging with PostgreSQL Triggers
Automatic Audit Logging with PostgreSQL Triggers
Dec 12, 2024 · 10 min read

You can create an automatic audit log of changes to a table's rows by using functions, triggers, and a second table.


An Effective How-To Guide Template
An Effective How-To Guide Template
Dec 11, 2024 · 8 min read

Having a template when writing technical how-to guides can increase clarity and therefore usability.


Reliably Detecting Command Existence in Bash
Reliably Detecting Command Existence in Bash
Dec 7, 2024 · 4 min read

You'll find quite a few different methods suggested on the internet, and they all have their own problems.


Heimdall: Attentive's Event Tracing Platform
Heimdall: Attentive's Event Tracing Platform
Aug 28, 2024 · 13 min read

This article was originally posted on the Attentive Tech Blog.


Quickly Pin Python Package Versions
Quickly Pin Python Package Versions
Mar 6, 2024 · 5 min read

Pinning package versions is important for reproducible builds and saving future you from headaches.


Resetting the Working Directory on Shell Script Exit
Resetting the Working Directory on Shell Script Exit
Mar 5, 2024 · 3 min read

Sometimes you need to change the working directory in a shell script. You should take care to reset it back after.


Amortize Your Learning by Writing How-To Guides
Amortize Your Learning by Writing How-To Guides
Mar 4, 2024 · 6 min read

The time required to learn something new can be large, but you can make that cost worth it by teaching it to others.