Recent Articles

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.


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.


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.


Automate Your macOS Default Settings
Automate Your macOS Default Settings
Feb 18, 2024 · 7 min read

You can use built-in CLI tools to apply your preferred macOS settings.


Discussion Guide: The Staff Engineer's Path
Discussion Guide: The Staff Engineer's Path
Nov 7, 2023 · 7 min read

A guide with discussion prompts for Tanya Reilly's The Staff Engineer's Path.


Discussion Guide: The Unicorn Project
Discussion Guide: The Unicorn Project
Nov 6, 2023 · 8 min read

A guide with discussion prompts for Gene Kim's The Unicorn Project.


Use GitHub Actions Timeouts to Protect Your Budget
Use GitHub Actions Timeouts to Protect Your Budget
Nov 5, 2023 · 4 min read

The default job timeout of 6 hours is unreasonably long.


Keep Lerna Monorepos Updated with Renovate
Keep Lerna Monorepos Updated with Renovate
Nov 4, 2023 · 9 min read

Keeping dependencies up to date is important for every codebase, and there are a few strategies for Lerna monorepos.


An Effective Incident Runbook Template
An Effective Incident Runbook Template
Nov 3, 2023 · 8 min read

A structured incident runbook that is tailored to your organization's needs is an essential tool in your SRE documentation.