Yak Shaving

Aug 15, 2021

Every programmer finds themselves yak shaving from time to time.

Yak shaving is programmer slang for just how far you've deviated from your original task. It's the distractions that lead us down a rabbit hole of semi-related tasks until we find ourselves doing something completely different than we intended.

What better example than a self-referential one: a software engineer wants to write more.

First, they search for some good open-source blogging platforms. Eventually, they settle on the self-hosted option. Then, they think about how to run the software: what if a post goes viral? My blog needs to scale to handle the traffic. So now they're researching Kubernetes, figuring out how to load balance, and put their static blog behind HTTPS. Configuring infrastructure is a lot of work so that they can automate it in the future. Next, they start to develop a fully reproducible developer environment, so they can develop on any machine when they're traveling. Finally, the blog is up and running after putting together a production-grade pipeline to push their posts live.

The programmer writes a single blog post, "How I Developed This Blog," never to write again.

p.s. I know this story intimately because I lived it and came through the other side. While I don't host this site myself, I developed the theme from scratch* and modified it through my reproducible developer environment built on Kubernetes. It uses only one external CSS library (code highlighting) and minimal JavaScript (for the subscription form and analytics).