Real production work
Work
Software I build and run for our company. Courses and practice are on Learning.
I co-founded Honey Go Fix It, a residential plumbing company near Dayton, Ohio, in 2022. I started out in the field as a plumber. Today I look after the company's technology and finance, and I build the software we run on.
That code is private because it handles real customer data, so each system below links to a write-up in my portfolio: the problem, the design, what went wrong and what I'd change.
In daily use
Phone system and Android app
The company's phones on Telnyx: call routing, recordings, office texting, and a native Android calling app for staff.
Case study 06 →AI receptionist
Answers the calls the office can't get to and calls after hours, books visits into ServiceTitan, and hands off to a person when it should.
Case study 07 →ServiceTitan integration
A synced, read-only copy of our ServiceTitan data that our other tools read from, plus one guarded path for writes.
Case study 02 →Ridealong field app
An Android app our technicians use to record in-home visits and get specific feedback on each one.
Case study 09 →Books rebuild
A Python toolkit I used to rebuild the company's books and reconcile every account to its bank and card statements.
Case study 04 →AI gateway
One internal service our tools call for AI work. The model for each job is picked on a screen, and the cost of every call is recorded.
Case study 08 →Earlier and smaller
- Performance Center: KPIs, commissions and weekly payroll for the field team. Used from February to September 2026, then retired when we moved to ServiceTitan.
- Also: a shared platform for our internal tools, finance and job costing, marketing tools, policies and training, booking from office calls, and a read-only data kit for our office manager.
- Ran an OWASP Top 10 review and hardening across our internal apps, completed overnight.
Open source
19 pull requests merged into other people's projects, most of them to securo. Full list
- #1227 Add a System theme that follows the OS
- #1226 Keep the opening balance date when editing an account
- #1225 Add South African rand (ZAR) currency support
- #1199 Don't report a slow bank import as a failed connection
- #1198 Compute balances from who actually paid
- #1197 Hold a card's limit for future-dated charges
- #1193 Stop podman-compose appending "}" to FRONTEND_URL
- #1192 Count a shared credit line once in net worth
- #1168 Let Generate Pending cover schedules with auto-generate off
- #1167 Show the transaction total in the holding's currency
- #1166 Add Macedonian Denar (MKD) support
- #951 Add Jamaican Dollar (JMD) support
- #950 Add Saudi Riyal (SAR) and Qatari Riyal (QAR) support
- #940 Add Chinese Yuan (CNY) support
- #939 Add Malaysian Ringgit (MYR) support
- #798 Honour the number-format setting in transaction amount
- #3893 Correct LICENSE paths for wheels and document the bundled Cython runtime
- #4438 Keep MCP text clipping from splitting surrogate pairs
- #1573 Stop Countdown firing onFinish up to a second early
Side project
FYProof
With a partner: a web app that checks a video against platforms' content rules before it's posted. In public beta.
Case study 17 →Background
Licensed Ohio plumbing, HVAC and refrigeration contractor and certified backflow tester. Before Honey Go Fix It, I was a plumbing service technician at Benjamin Franklin Plumbing and an apprentice plumber at Roto-Rooter, both in Dayton. Associate of Arts from Sinclair Community College; biomedical engineering coursework at Ohio State.