System + network admin
I keep the servers up.
Usually.
Nearly ten years in IT, two at indifferent broccoli. Python, TypeScript, Go, and a homelab that does considerably too much.
Work
Public repos, mostly tools I wanted and couldn't find. Most of it runs in my own rack first.
Palworld host save fixer
Fixes the "create a new character" bug when a Palworld save moves between co-op and a dedicated server, by transplanting the player GUID. Drop the save folder in, get a patched one back.
mulch
Paste a game-server log, get the problems ranked by severity, attributed to the mod that caused them, with the stack trace attached. Minecraft, Project Zomboid and Hytale.
AI and retrieval
-
boolab
Self-hosted AI chat platform with scoped workspaces, personas, optional RAG, memory facts and a shared skills library.
-
boocontext
MCP server that answers questions about a codebase: routes, schema, call graphs, health grades, type recovery. AST-based, zero dependencies.
-
boss-search
Hybrid search over Discord support transcripts. Reciprocal rank fusion across pgvector ANN and BM25, behind a FastAPI service.
-
homelabhealth
RAG chat over your own medical records, grounded in the documents you upload. Inference and vision models bundled in the stack.
Self-hosted and ops
-
stackctl
Control plane for a remote Ollama box: models, agents, RAG sources and GPU config from one dashboard, with persona sync.
-
DubDrive
Personal cloud drive with disk-usage stats, thumbnails, public sharing and Git repo hosting built into the same backend.
-
Dashgaard
Homelab service dashboard. Express backend with uploads and a configurable frontend for keeping track of what is running where.
-
Fathom
Meta-search frontend for a shared SearXNG backend. One file of vanilla HTML, CSS and JS. No AI summaries, no trackers. No build step either.
Stack
What I actually reach for, roughly in order of how often I reach for it.
Languages
- Python
- TypeScript
- JavaScript
- Go
- PHP
- Bash
- SQL
Application
- FastAPI
- React
- Next.js
- Express
- Vite
- Node
Data
- PostgreSQL
- pgvector
- PL/pgSQL
- MongoDB
Infrastructure
- Linux
- Windows Server
- Docker
- Compose
- nginx
- GitHub Actions
Models and retrieval
- Ollama
- llama.cpp
- MCP
- Embeddings
- Rerankers
- BM25 + RRF
Background
Nearly ten years in IT. The last two at indifferent broccoli, where the network and every game server sitting on it are my problem.
Day to day that's systems and networking. Servers, switches, DNS, VPN, monitoring, and the unglamorous half of the job, which is making sure the thing that fell over at 3am doesn't fall over the same way twice. Mostly it doesn't.
The code comes out of that. Almost everything on my GitHub started as a gap in a workflow I was already standing in, a log that took too long to read or a search that just didn't exist yet. I build the tool, run it in my own rack until it stops annoying me, then leave it public in case it saves somebody else an afternoon.
- Now
- System and network admin at indifferent broccoli, going on two years.
- Before that
- Nearly a decade across support, systems and networking, in shops where I was usually the person who owned the whole stack.
- At home
- A homelab running most of the projects above, which is also how they get tested.
Off the clock
Music production and DJing
I produce, and I play out. Enough gear has failed on me mid-set that I ended up doing tech support for other producers and DJs at produceit.dev.
Games
Survival and sim, mostly, which is where a suspicious amount of the tooling above comes from. Project Zomboid, Valheim, Palworld, 7 Days to Die.
Running models locally
Agent orchestration, retrieval, and the ongoing hobby of finding out exactly where the current generation of tooling falls over.
Say hello.
Email is fastest. Happy to talk infrastructure, self-hosting, retrieval, or why your DAW hates your interface.