Recent Articles

Skippable GitHub Status Checks Aren't Really Required
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
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
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.


Hash a String to a Number in Bash
Hash a String to a Number in Bash
Mar 5, 2023 · 2 min read

Sometimes you need to turn a stable string ID into a stable number ID, and it's relatively easy to do in Bash.


Installing npm Packages From GitHub
Installing npm Packages From GitHub
Feb 23, 2023 · 2 min read

Installing packages from GitHub is a great way to test them before publishing.


Reporting Lerna Monorepo Test Coverage to Codecov
Reporting Lerna Monorepo Test Coverage to Codecov
Feb 20, 2023 · 3 min read

It's not straightforward, and you likely can't use preexisting CI tasks.


Migrating Existing Repos to a Lerna Monorepo
Migrating Existing Repos to a Lerna Monorepo
Feb 20, 2023 · 9 min read

As of writing, I maintain 15 Metalsmith plugins, and it has become a pain to manage all of them independently.


Automatically Execute Code Before & After Unix Commands
Automatically Execute Code Before & After Unix Commands
Jan 19, 2023 · 4 min read

It can be helpful to run some code automatically before or after calling a command, and it is easy to accomplish with shadowing functions.


Calculating Table Size in MySQL
Calculating Table Size in MySQL
Sep 15, 2022 · 2 min read

Knowing how much disk space individual tables take up is important for DB maintenance and debugging, and it can be accomplished with a single query in MySQL.


Your Standup is Too Long
Your Standup is Too Long
Aug 8, 2022 · 8 min read

The Agile Alliance recommends 15 minutes every day, I would recommend even shorter and less often.


Building Team Connection with Personal Fist to Five
Building Team Connection with Personal Fist to Five
Aug 7, 2022 · 4 min read

Fist to five is a technique for gauging consensus on a prompt, but it can also be used to build connections within teams.


The Dangers of OFFSET With MySQL
The Dangers of OFFSET With MySQL
Jul 28, 2022 · 15 min read

Large limit offsets degrade the performance of most databases, but it is especially egregious in MySQL.