There's always going to be a way to not code error handling

Reading List

This page is auto-generated from Github Actions workflow that runs every day at night and fetches the 5 latest articles from each of my favorite blogs.

“Wakeups”: the most important DevOps metric

“How many times were your people woken up by faults in production?” JAX DevOps talks to John about metrics, security, testing, and automation.

Signing Git commits and tags with SSH

You can sign Git commits and tags with SSH keys instead of GPG.

Sixteen great years of Go

#​579 — November 19, 2025 Read the Web Version Go Weekly 🎂 Go Turns Sixteen Years Old — Go was open sourced sixteen years ago, and there’s much to be excited about in both the recent past and the near future. Austin gives a min...

Pinning GitHub Actions

If you’re using GitHub Actions in your projects, you should be pinning your actions to specific commit SHAs instead of using tags or branches.

Re-exec testing Go subprocesses

When testing Go code that spawns subprocesses, you usually have three options. Run the real command. It invokes the actual binary that creates the subprocess and asserts against the output. However, that makes tests slow and tied to the environment. You have to make sure the same...

“Frowning at a screen for 200 hours”: on the writing process

John Arundel on his first steps as an author: “If just one person is helped and inspired by this book... then I’m not giving refunds to the others.”

Go’s Sweet 16

Happy Birthday, Go!

Build bridges, not walls

We live in a world of walls, unfortunately, and some people would like to build even more of them. Whatever you think about that, the walls between software developers and IT operations staff don’t do anybody any favours.