I build the tools I actually run — self-hosted, containerised, and kept alive in production at home.
- Self-hosted media & automation — streaming servers, metadata pipelines, and the plumbing that keeps a 14 000-item library indexed and playable.
- APIs and integrations — FastAPI and Node services that wrap third-party platforms into something clean, documented and Dockerised.
- Apps across platforms — web front-ends and Kotlin Multiplatform / Compose clients on top of those APIs.
- Infrastructure I have to keep running — a homelab that is also the test bench: if a project survives daily use here, it ships.
Everything I build is developed against infrastructure that is actually in service, not a lab that gets torn down:
- Compute — an Intel NUC and a remote VM, linked by a site-to-site IPsec tunnel, ~30 containers between them.
- Media — Emby fed by a symlink-based library over an rclone FUSE mount, with the *arr stack driving acquisition, plus subtitle and quality pipelines.
- Home automation — Home Assistant, Zigbee sensors and a Linky energy meter feeding bi-tariff consumption tracking and alerting.
- Network & security — FortiGate firewall, geo-filtered VPN, a syslog collector, and Frigate for NVR with object detection.
- Operations — systemd units, watchdogs and cron jobs that repair the stack before I notice it broke.
Python · FastAPI · Node.js · Express · React · TypeScript · Kotlin Multiplatform · Compose · PHP
Docker · Docker Compose · Linux · Caddy · nginx · Redis · SQLite · ffmpeg · systemd
Most of my work lives in private repositories. Selected projects will be opened up here.



