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

“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...

The Type Checker

In the previous posts , we explored the scanner—which converts source code into tokens—and the parser —which takes those tokens and builds an Abstract Syntax Tree. In future posts, I’ll cover the Intermediate Representation (IR)—how the compiler transforms the AST i...

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

Test Go subprocesses with the re-exec pattern: spawn your test binary as a subprocess to emulate real command behavior reliably.

“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.