Blog
Whoever controls your release page can swap a binary, and a checksum hosted beside it proves nothing. A seven-part guide to signing releases.
An export-control directive suspended my AI assistant mid-task, which is a useful lesson in what you are actually depending on.
Building an AI dungeon master to test a Go chat client, and the bug that kept resurrecting a goblin the player had definitively killed.
Generate an asymmetric RSA-4096 signing key inside AWS KMS with no export path, then sign releases by calling kms:Sign instead of holding the key.
Generating a Go command from a shell script or a plain sentence, and the repair agent that has to make the result build before you see it.
The case for a head of engineering staying hands-on, written as a confession rather than a boast, because the compulsion is the problem.
A checksum proves the bytes match the manifest, but says nothing about who wrote the manifest. Why self-update needs a signature instead.
The national vulnerability database is buckling under defunding and volume, which changes what a severity score is actually worth.
Operational telemetry can be personal data, and a web service has no first-run prompt to ask on. So plumbing is not an answer.
Three traps release-plz sets for a Rust workspace, starting with a default tag template that collides the moment you have more than one crate.