Recent Articles

Pin Your GitHub Actions to Protect Against Mutability
Pin Your GitHub Actions to Protect Against Mutability
Aug 23, 2025 · 5 min read

Pinning third-party GitHub Actions to a commit SHA helps protect you against supply chain attacks.


Installing Old Homebrew Formula Versions
Installing Old Homebrew Formula Versions
Aug 13, 2025 · 3 min read

Homebrew makes it very difficult to install older versions of a formula.


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.