About

System / Devops Admin, Engineer. Tinkerer. Noise maker. Lives where audio, code, and infrastructure meet — usually with too many terminals open and an oscillator or two humming in the next room.

What I work on

Audio. DAWs (Ableton, Bitwig, Cardinal/VCV, Reason, FL, Renoise), Max/MSP, Eurorack, and a few hardware synths that earn their bench space. Lately I've been building MCP bridges to as many devices that I can, seeing if AI can drive every part of the studio without destroying it or making slop. — see ableton-mcp-extended for one of them. Currently composing in Ableton with the model riding shotgun. JUCE plugin work.

AI tooling. Claude Code MCP servers for Ableton, Max/MSP, Obsidian, finance (Schwab, Money), and RAG over PDFs. Mostly: the AI sits one socket away from the real tool, and that turns out to make all the difference.

Homelab / infra. k3s on a Turing Pi cluster, FreeBSD edge boxes with pf, ZFS, Saltstack, OrangePis and Raspis filling the gaps. Telegraf and uptime-kuma keep it honest.

Web. This site (built with Zola), a couple of Hugo holdouts, and a legacy gallery2 install still cheerfully serving photos from a BSD box that refuses to die.

Hardware on the bench

  • Sequential OB-6
  • UAD Apollo Twin X
  • Eurorack: Expert Sleepers Disting NT, Rossum Assimil8or, and friends
  • Faderpunk MIDI controller (with a custom CLI to feed it)
  • Turing Pi cluster — an array of small ARM boards pretending to be servers
  • Yubikeys, because trust is a finite resource

Daily driver

  • macOS up front, FreeBSD and Linux out back
  • fish shell, MacPorts (not Homebrew), kitty and wezterm, yabai for tiling
  • Claude Code as the AI pair, fradio keeping radio in the right corner of the prompt

Beyond the keyboard

Bikes, HAM radio, photography (with the occasional raid on NASA's Cassini archive), and music — listening more than playing, but both.

Operating principles

  • Text first, GUI when needed
  • Reproducible, self-hosted, source-available wherever possible
  • Prefer the small, sharp tool over the big monolith
  • If it can be MCP'd, it gets MCP'd