Recent Articles

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.


Creating a Java REPL Playground in Docker
Creating a Java REPL Playground in Docker
Jul 3, 2022 · 3 min read

It's helpful to have local throwaway environments for testing code snippets, and creating one for Java is a snap with Docker.


Deferrable Constraints in PostgreSQL
Deferrable Constraints in PostgreSQL
Jun 20, 2022 · 9 min read

Constraints in PostgreSQL are validated immediately row-by-row by default, which might be confusing when updating multiple values in columns that have a uniqueness constraint.


Investigating Locks in MySQL
Investigating Locks in MySQL
Jun 17, 2022 · 8 min read

Locking is an important part of an ACID-compliant database, but excessive locks can lead to performance degradation. Here are some strategies for investigating locks in MySQL.


Avoiding Blanket Statements
Avoiding Blanket Statements
May 6, 2022 · 6 min read

One part of emotional intelligence is understanding how our words impact others.


Inner vs. Outer Joins
Inner vs. Outer Joins
Apr 29, 2022 · 7 min read

They can't be used interchangeably, and the differences are important.


Creating a MySQL REPL Playground in Docker
Creating a MySQL REPL Playground in Docker
Apr 27, 2022 · 4 min read

It's helpful to have local throwaway environments for rapid development, especially with databases, and creating one for MySQL is a snap with Docker.