Skip to content

❯ whoami

Aaron Santo

// aka Lil Strudel

DevOps engineer by day, software developer by night. I write a lot of infrastructure as code, run a six-node Kubernetes cluster at home and build things in whatever language the problem wants.

konami.ts Base.astro
-- INSERT -- try it: ↑ ↑ ↓ ↓ ← → ← → b a

Featured projects

all projects →

homelab

Six OptiPlex Micros running Talos Linux and Kubernetes, with Cilium BGP, Rook-Ceph and Flux, plus a MikroTik network managed entirely by Terraform.

  • Talos
  • Kubernetes
  • Cilium
  • Rook-Ceph
  • Flux
  • Terraform

.dotfiles

A hand-rolled Arch and Hyprland setup with tmux (zero plugins), zsh (two) and Neovim (twelve, via native vim.pack). Every line had to earn its place.

  • Arch
  • Hyprland
  • Neovim
  • zsh
  • tmux
  • yadm

glassact-studios

A B2B ordering platform for custom stained-glass memorial inlays. A Go API over Postgres and PostGIS, a SolidJS app, and AWS infrastructure in Terraform.

  • Go
  • PostGIS
  • SolidJS
  • Terraform
  • AWS

Latest writing

all posts →
  1. 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
  2. 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
  3. 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
  4. 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

git log --since=summer

  1. sep 2026 Shipped a four-track soundboard in discord-audio-streamer 1.3
  2. aug 2026 Pinned Ceph after Renovate tried to upgrade me to a release candidate
  3. aug 2026 Moved the apps' databases from SQLite to CloudNativePG
  4. jul 2026 Rebuilt the homelab around Flux, SOPS and Renovate