I build small, useful, local-first tools. The kind I want to use myself.
By day I design network and orchestration solutions at a regional carrier. Where I'm headed is security and digital forensics, so a lot of what I build here is me getting hands-on with the operations, monitoring, and incident side that the day job doesn't put in front of me.
LinkedIn for the formal bio.
Local voice-to-text for Windows. Hold a key, talk, release. Free, runs offline, single .exe.
A 28-container personal homelab. Self-hosted media, photo library, mail relay, document workflows, scheduled automation, a custom AI agent, and live integration with my MikroTik router via its API.
Automated industrial bearing inspection rig. Tkinter operator GUI, TMC stepper motor control, Basler vision camera capture, labelled pattern-analysis pipeline. About 1,400 lines of Python. Built as a six-month engineering internship deliverable in Germany.
FastMCP server that exposes my CV, projects, voice, and preferences as searchable documents to Claude and other LLM clients across my devices. SQLite FTS5 backend, streamable-http transport behind Traefik with bearer-token auth. Running on the homelab; the repo stays private.
An event-management web app I've been building on and off. The backend is where I want it. The frontend I'm restarting from scratch because it isn't the experience I want yet. Private for now.
- Plan before non-trivial changes. Small fixes I just ship.
- Verify preconditions before measuring anything. Assumption is not verification.
- Anything that runs on its own clock (cron, watchers, polling webhooks) gets explicit approval first. On-demand by default.
- Brief is good. Silent is not.
- I would rather under-claim and be accurate than over-claim and get caught.
A lot of the code in these repos was generated with LLM help and then debugged into shape. The decisions about what each system does, how it fits together, what to keep, what to throw out, and how to recover when something breaks are mine. That is the honest version of "I built this".
I do not claim to hand-type code I generated, or to have built systems from scratch when I assembled them from existing components.
Last meaningful update: July 2026.