Guides

The blog runs newest-first, which is right for reading along and useless if you have turned up with a problem. These are the routes: everything on one subject, ordered so you can start at the beginning.

9 guides Everything, newest first

Building a command-line tool in GoEverything I have written about building command-line tools in Go, in the order it makes sense to read it. A five-part tutorial that leaves you with something that works, then the decisions underneath it and the mistakes that produced them. 18 posts5-part tutorial Building a web service in GoSix parts from an empty directory to a service with a gRPC contract, a REST face, generated documentation and a trace you can follow end to end. Each part leaves you with something that runs. 10 posts7-part tutorial Security for a one-person estateThe attack surface of a small independent maintainer, and what closing it actually costs. Secrets that scrub themselves, dependencies you did not choose, and a cleanup tool that nearly deleted its own hands. 25 posts Part of Security Signing your releasesWhoever controls your release page can swap a binary, and a checksum hosted beside it proves nothing. Sixteen posts on fixing that, in the order they make sense. 16 posts7-part tutorial Infrastructure with AWS and OpenTofuStanding up an AWS account from nothing, with OpenTofu and no long-lived credentials anywhere. The bootstrap that deliberately does almost nothing, and the cleanup tool that nearly deleted its own hands. 14 posts CI/CD, and getting things releasedPipelines you include rather than copy, a toolchain baked into one image, and a release that is just another merge request. Plus the jobs that silently never ran, and the component that fired on every schedule. 14 posts Rust, and what survived the portrust-tool-base is a sibling to the Go toolkit rather than a port, and building it was the clearest way to find out which decisions were design and which were just Go habits wearing a confident face. 21 posts Building with AIThe engineering of putting a model inside your own software: a chat interface that fits on one screen, tool calls that are typed rather than parsed, and an agent held to a build that has to pass. 16 posts What I think about AIThe arguments, kept deliberately apart from the engineering. I use this stuff every day and I am an advocate rather than a sceptic, which is exactly why the loud takes are worth arguing with. 9 posts

Or read everything, newest first →