Recent Articles

Creating a Gremlin REPL Playground in Docker

Apr 22, 2022 · 4 min read

Apache TinkerPop's Gremlin graph traversal language can be confusing to learn, but thankfully TinkerPop provides some "toy" graphs perfect to learn with.


Types of Probes in Kubernetes

Feb 19, 2022 · 4 min read

It's tempting to use the same health check endpoint for multiple probes in Kubernetes, but the kubelet uses each probe for very different purposes.


Writing Meaningful Health Check Endpoints

Feb 14, 2022 · 6 min read

If your health check endpoints return a hard-coded response then you don't actually know the health of your service.


Retrospective Techniques

Feb 4, 2022 · 7 min read

Retrospectives need to be productive and engaging or participants will quickly tune them out. Here are some techniques to hold more interesting retros.


Patterns for Structuring a Unit Test

Feb 3, 2022 · 6 min read

Unit tests should be testing acceptance criteria, not internal behavior. Here are some patterns to help accomplish that.


Finding Long-Running Queries in MySQL

Dec 22, 2021 · 4 min read

Poorly optimized queries and excessive connections can cause problems in MySQL, here's a quick way to identify and kill them.


Finding Long-Running Queries in PostgreSQL

Nov 26, 2021 · 2 min read

Poorly optimized queries and excessive connections can cause problems in PostgreSQL, here's a quick way to identify and kill them.


Calculating Table Size in PostgreSQL

Nov 26, 2021 · 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 PostgreSQL.


Reliably Finding Files in $PATH

Aug 27, 2021 · 4 min read

Most built-in commands commonly used to find files in $PATH don't always work quite as expected, or are shell-specific.


How to Persist Docker Build Arguments as Environment Variables

Aug 22, 2021 · 3 min read

Values from the Docker ARG instruction aren't persisted in built images, so here's a quick tip on how to persist them!


Docker Shell vs. Exec Form

Mar 22, 2021 · 4 min read

The RUN, ENTRYPOINT, and CMD, instructions all have two different forms they can be written in, and those forms change how each of those instructions behaves.


You Don't Need an Init System for Node.js in Docker

Mar 20, 2021 · 5 min read

But you do need to think about how your application handles exit signals.