These are the projects that keep me learning. None of them are C#, which is rather the
point.
A multiplayer card game a friend and I invented, then actually shipped. Real-time
play over WebSockets, bots with three difficulty levels, ranking and achievements,
two languages, a Discord bot running inside the same process, and an install-to-phone
build. Deployed straight from GitHub Actions.
Go · TypeScript · PostgreSQL · Caddy
Humid Hub
Running
A touchscreen hub on an ESP32-S3 with battery-powered sensor nodes reporting
temperature and humidity over ESP-NOW. It also drives the house lighting: the BLE
protocol was worked out by hand — challenge/response auth and AES keystream — so the
lights answer directly instead of going through the vendor's gateway.
ESP32 · LVGL · ESP-NOW · BLE · MQTT · Home Assistant
Robot mower telemetry
In progress
A budget robot mower with no working app and no cloud worth trusting. An ESP32-C3
bolted inside it and a power-metering plug at the charging station turn that into
stuck alerts, battery graphs, mowing time per day and a start button in Home
Assistant.
ESP32-C3 · ESPHome · Home Assistant
The home lab
Always on
One unglamorous Ubuntu box, and everything on it is for people I know: modded
Minecraft servers for friends — including a pack put together for the group actually
playing on it — other game servers when someone asks, and the everyday services my
family uses. Reverse proxy, certificates and backups in front, so it stays up without
me thinking about it.
Ubuntu · Docker · Minecraft (Forge) · nginx · Caddy
Car telemetry
Rolling
Scripting on an open-source vehicle monitoring module so the car reports state of
charge, consumption and position to A Better Route Planner — live, on its own, without
an app subscription in the middle.
JavaScript · OVMS · CAN
Agent tooling
Running
Self-hosted MCP servers, editor hooks and a session time tracker: infrastructure that
lets AI coding tools reach real systems safely — with authentication, scoped access
and an audit trail, rather than an API key pasted into a config file.
Python · FastMCP · SQLite · OAuth
3D printing
Between jobs
Enclosures, brackets and the mounts that hold the projects above together. Most of
the actual engineering went into making the slicer behave on Linux, which is its own
small hobby.
FlashForge · FDM · Linux