I'm Matt Cockayne. I build Go and Rust tooling, and the infrastructure that makes a release something you can prove came from you. Twenty years of it, most of it in the parts other people build on.
The work lives on GitLab: gitlab.com/phpboyscout. What is here is a read-only mirror of the projects worth browsing, plus an archive of a decade of PHP that is kept for history rather than for use.
| sigillum — sign and verify release artefacts from the command line, whatever your project is written in. The private key never leaves your KMS, HSM or PEM file. | |
| afmpeg — FFmpeg in pure Go. No CGO, no install on the box, no temp files: a WebAssembly build over an in-memory filesystem. | |
| go-tool-base — the framework the other three are extracted from. Config, errors, transport, observability and release plumbing that already agree with each other. | |
| ffmpeg-wasi — the engine underneath it, usable on its own by anything that can host a WASI runtime. |
A friend in the PHP community suggested I give a conference talk about applying the Boy Scout Rule to code. The handle stuck, and then so did everything else. The PHP is where the name came from, not where it stopped.
I met the rule first as a Cub, went back to it as an adult and spent about a decade as a Scout Leader. The project marks above are merit badges, which is not an accident.
- phpboyscout.uk — I write about what goes wrong in the middle of a release: dependencies that stop moving, keys that live in the wrong place, and the parts of engineering that never show up in a diff.
- Guides — the same writing arranged by subject rather than by date.
- Discord — questions about any of the projects.


