❯ cat ~/notes/*.md
Blog
Deep dives into the projects I can't stop tinkering with. Expect war stories, measurements and more code than strictly necessary. rss
- Six OptiPlexes, zero kubeadm: a tour of my homelab Talos Linux, Cilium speaking BGP to a MikroTik, Rook-Ceph on NVMe and Flux holding it all together. Three years, 256 commits, and at least three commits titled 'fix: again?'. 8 min read · #kubernetes #homelab #talos #ceph #gitops
- The 37-second loop: kube-vip, RouterOS and a BGP timer nobody set My Kubernetes API VIP kept vanishing from the network on a perfectly regular schedule. The cause was three BGP speakers with three different opinions about keepalives, and the fix turned up a Terraform provider bug. 5 min read · #kubernetes #bgp #networking #terraform #homelab
- Scale-to-zero Minecraft on Kubernetes, and the backups that silently weren't Running a fleet of Minecraft servers on six small nodes means idle ones have to cost nothing. Getting there meant fighting Flux over one field and discovering Velero had been backing up nothing at all. 3 min read · #kubernetes #flux #velero #homelab
- A 20 ms clock that can't drift: streaming audio to Discord in Go How discord-audio-streamer turns ffmpeg output into a steady stream of Opus frames: absolute deadlines instead of sleeps, two opposite ring-buffer policies, holding audio until encryption is ready, and manufacturing silence for Windows. 6 min read · #go #audio #discord #concurrency
- Two heaps, one free(): shipping a cgo app on Windows The first release of discord-audio-streamer died on startup. The second died the moment it joined a voice channel. Both were about which C runtime the Go binary was linked against, and CI now checks it on every build. 5 min read · #go #cgo #windows #ci
- Every line has to earn its place: my 2026 dotfiles Arch, Hyprland, Ghostty, tmux with zero plugins, zsh with two and Neovim with twelve on native vim.pack. A 36-line plugin loader, a hand-written prompt, and the numbers that justified each cut. 6 min read · #linux #neovim #zsh #tmux #hyprland