Blog
Seed a Neo4j 4.x database inside a Kubernetes pod with an init container running neo4j-admin import, and fix the store-id and memory errors.
Piping ambient audio into Discord on Linux for a tabletop game: virtual null-sink and loopback modules wired up through pavucontrol.
Encrypting an additional drive on Linux with LUKS: partition it, generate a keyfile, encrypt it and mount it automatically at boot.
Setting up xRDP on Ubuntu 18.04: install it, open port 3389, and suppress the colord password prompt that greets every single login.
Pulling my own technical CV apart section by section: font, length, format, personal details, and the self-graded skills table.
A Dell D6000 dock randomly powering down on Ubuntu 18.04, where the real cause turned out to be PulseAudio triggering USB autosuspend.
Restarting the blog after a two-year gap, and what to do about a name that stopped being literally accurate a long time ago.
A talk abstract pitching a live game of Dungeons and Dragons on stage, dramatising a team trying to deliver a project.
A conference talk mapping Monty Python sketches onto the ways software projects fail: indecision, scope, and nobody expecting any of it.
The recorded video of my Are you a Good Code Scout lightning talk, given for NomadPHP, on applying Scouting principles to code.