The development half of my stack: Nix for reproducible software on any distro, git as the decentralized transport, just as the one command surface humans, AI agents, and CI all share, and backlog to keep tasks in git instead of racing to a server. Claude Code drives it: no MCPs, no giant third-party stacks, just context engineering over low-friction local tools. Local-first, and no containers for development.
A Linksys MX4200 bled 12-16 MB of RAM per minute and it looked exactly like an ath11k buffer leak. It wasn't. The receive rings never grew. The bug was page-frag lifetime mixing: a bounded set of buffers pinning an expanding pile of physical pages. Here is how I found the bytes, why my first traces lied, and the source fix that stopped it.
The machine half of my stack: declare the whole computer in one NixOS file and roll it back from the boot menu. Why Linux is unbeatable and too big to trust, why the distro barely matters, why Ansible is a mutato, and a terminal-first desktop (XFCE, zellij) reached over WireGuard, mosh, and xpra.
A small bash library turns a VirtualBox Windows VM into a stack of cacheable snapshot layers. Each toolchain install is its own layer, keyed on the installer's hash. Second run is near-instant. Vagrant does not do this.
I own a Philips Avent baby monitor. Decompile it and you find a Chinese Tuya camera. Here is what I wanted, how I took it apart with static analysis and live capture, and where the data actually goes.
Write a parallel algorithm once, with no workers, buffers, or barriers in it. A separate schedule maps it onto threads, an MPI cluster, or a microcontroller — so trying a new decomposition, a new transport, or a whole new platform becomes a small edit instead of a rewrite. The compiler synthesises the communication and proves it can't deadlock.
The engine behind this blog: a small Rust binary wrapped by a Nix flake, built as a compiler toolchain — compile each post, link cross-references, compose the site. Nix is the config language and the build cache; there is no YAML.
The colophon: this blog is a small content-and-theme instance wrapping the niche engine in a thirty-line Nix flake. What lives here, what lives in niche, and the design principles.
Flipping the arguments of Haskell's apply operator gives something very like UNIX pipes.
A hello-world post testing MathJax: Euclid's proof that there are infinitely many primes.
Who I am: an engineer from the schematic to the type system. Compilers, embedded firmware, and owning your own machines.