System admin + support specialist
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.
pzlua
Paste a SandboxVars.lua and catch missing commas, bad operators, out-of-range values, and unbalanced tables before the server refuses to boot.
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.
palserv
Server administration for any Palworld server, from any browser: monitoring, player roster, live map, and remote operations.
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.
7d2dsandbox
Sandbox settings for a 7 Days to Die server, without hand-editing XML. Set the 165 options the game exposes, get a SandboxCode to paste into serverconfig.xml or a share link to send someone.
7d2dmapgenerator
Builds a 7 Days to Die world without launching the game, same parameters as the Adv. Random Gen screen, handed back as a zip. Terrain, biomes and towns are its own algorithms. The worlds don't load in-game yet: main.ttw stops at the header.
All seven of the above, one page: gametools.indifferentketchup.com
The boo stack
-
boocode
Four apps in one codebase for working with local and hosted models: chat with tools, agent dispatch, in-browser terminals, and a fleet cockpit for llama-swap hosts, plus an in-app Orchestrator for bounded multi-agent review passes.
-
boolab
One codebase, three branded front doors: boolab itself as the hub and workspace picker, BooOps styled for a more corporate face, and boonotes leaning on upload-scoped sources and RAG. Same chat engine, personas and memory underneath all three.
-
boofinity
Fork of michaelfeil/infinity (MIT) for serving embeddings, rerankers, and multimodal retrieval, including ColPali document-image search. Renamed to the boofinity package, same license.
-
booskills
17 skills and 13 personas, plus the model router and Paseo presets that decide which LLM handles each one. Feeds Claude Code, Codex, OpenCode and Paseo from the same source files. No hosted service, no public registry, just a clone and a symlink.
-
boocontext
MCP server that answers questions about a codebase: routes, schema, call graphs, health grades, type recovery. AST-based, zero dependencies.
-
boodrive
Self-hosted file storage and Git repo hosting, with OnlyOffice built in for in-browser document editing. Disk-usage stats, thumbnails and public sharing on the same backend.
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, currently split across two of them. Systems and networks at the day job, support and code at indifferent broccoli.
The day job is the infrastructure side. Servers, switches, DNS, VPN, monitoring, and the unglamorous half of it, which is making sure the thing that fell over at 3am doesn't fall over the same way twice. Mostly it doesn't.
indifferent broccoli is the other one, going on two years. Support first, so other people's game servers are my problem, and then the code that comes out of answering the same question enough times.
That second half is where the GitHub comes from. Almost everything on it 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.
I'm also working on a Masters in Social Work. A separate track, running alongside the IT work rather than replacing it. The overlap is smaller than people assume, but it's there: support and social work are both mostly about working out what someone actually needs, which is rarely the thing they opened with.
- Day job
- System and network admin.
- indifferent broccoli
- Senior support specialist, support and development, going on two years.
- Studying
- Masters in Social Work.
- At home
- A homelab running most of the projects above, which is also how they get tested.
Off the clock
Music production and gaming
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 are survival and sim mostly, which is where a suspicious amount of the tooling above comes from. Stardew Valley, 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.