Projects
Things I’ve built — for work, for the house, and for fun. Most run on my own self-hosted infrastructure; the open-source ones link to GitHub. The rest are private codebases I’m happy to talk about.
Geekonomics
Self-hosted bookkeeping for small businesses — Multi-tenant bookkeeping app supporting multiple business lines, Square and Stripe payment sync, invoicing, and AI-powered financial insights. Built, shipped, and operated end to end with Docker and GitHub Actions CI/CD.
ShopFloor Layer
Modern add-on layer beside a legacy manufacturing ERP — A companion system for a job shop running a legacy ERP — telephony screen-pop, click-to-call, call logging, dashboards, notifications, and a privacy-gated AI insight layer. Adds what the ERP does poorly without touching what it does well.
Weekly Briefing Generator
Automated weekly briefing from calendar, CRM, and chat data — Pulls live data from Microsoft 365 Calendar, Salesforce, and Slack every week and synthesizes it into a structured briefing with Claude — turning an hour of copy-paste status writing into a scheduled job.
GoTo Device Locator
Device, location, and phone-number manager for GoTo Connect — Web application for managing GoTo Connect devices, locations, and phone numbers — one of the tools I've built around a platform I know well. Open source, Docker-ready.
Claude Terminal for Home Assistant
Home Assistant add-on that puts Claude Code in your browser — A custom Home Assistant add-on that integrates Anthropic's Claude Code CLI into the Home Assistant UI, so you can work on your smart-home config with an AI agent from anywhere.
GoTo SMS for Home Assistant
Send SMS from Home Assistant through GoTo Connect — A Home Assistant custom integration for sending SMS notifications via the GoTo Connect API, with CI-tested releases.
Fire Dispatch Monitor
Decodes fire/EMS dispatch tones off VHF radio — Python app that listens to VHF fire/EMS dispatch audio, detects the DTMF tone sequences that identify dispatched units, and records who got toned out and when.
Zello Gateway
Bridges a Zello channel to a VHF radio over RF — Bidirectional cross-link between a Zello push-to-talk channel and a VHF radio, running on a small always-on PC — squelch opens on RF, audio streams to Zello, and vice versa.
Event Comms Site
Website for an amateur-radio volunteer communications group — Site for a volunteer group of amateur radio operators who provide runner tracking and communications support for a mountain endurance race.