06 April 2026 devops

Safe Infrastructure Changes With a Team of One

Throughout this series I’ve been describing a system — self-hosted GitHub Actions runners with custom AMIs, autoscaling, and a Python runtime — without really addressing the elephant in the room. There’s one person managing all of this. Me.

Read more
02 April 2026 devops

Autoscaling GitHub Runners Without Webhooks

In Part 1 I explained how we run our entire CI on a single EC2 instance with 4 concurrent runner processes. In Part 2 I covered how we bake and promote AMIs without Packer. Both of those posts describe a...

Read more
26 March 2026 devops

We Replaced Packer With a GitHub Actions Workflow

In Part 1 I talked about how we run our entire CI pipeline on a single EC2 instance with 4 concurrent runner processes. The secret ingredient was a custom AMI with our 23GB devcontainer image pre-baked into the Docker cache,...

Read more