Recent Articles
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
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
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
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
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
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
Nov 5, 2023 · 4 min read
The default job timeout of 6 hours is unreasonably long.
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
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.
Skippable GitHub Status Checks Aren't Really Required
Jul 25, 2023 · 5 min read
If your GitHub branch protection rule requires a status check, but that status check can be skipped, you aren't actually protected.
Linting Markdown files with markdownlint
Apr 5, 2023 · 2 min read
Markdown's syntax is easy to learn, and even though the syntax is forgiving, linting can help you avoid unexpected issues.
Bash Environment Variable Defaults
Apr 5, 2023 · 3 min read
Bash scripts can set defaults for environment variables that are optionally supplied at execution time.