I fix the part of a business where the CRM, the billing system, and a few vendor APIs don't agree.
Ten years doing it inside my family's PR firm in Dallas, where I was the only engineer. I sit with the
person who runs the process, find where it breaks, and build something they can run without me.
Python and TypeScript. These days there is a fair amount of AI in the pipeline, with a human
holding the release button.
[email protected] · GitHub · LinkedIn
Three things I fixed
An MSP was re-keying Intermedia phone usage into ConnectWise invoices every cycle, account by account.
Charges landed on the wrong agreement. A retry after a timeout could bill someone twice. I built Meter
to do the transfer. It pulls the usage, maps it to the right agreement, shows the operator a preview of
what will change, and only then writes. Per-account locks stop two syncs from colliding. When
ConnectWise answers a write with an ambiguous error, Meter queries back and matches a content hash
before deciding whether to retry.
It runs in production today. One reconciliation audit in December 2025 covered 202 accounts and 931
work items and turned up a tax-row identity bug before the next invoice went out. That number is from
my own incident notes, so take it as a description of one audit, not a monthly volume.
The firm ran on QuickBooks, Copper, Basecamp, PandaDoc, Acuity, and Airtable. Finance and ops answered
"what do we have with this client" by opening all six. I built Throughline. Every vendor sits behind
the same four-method connector, and one engine owns incremental sync, retries, health checks, and the
write into Postgres. A new connector gets all of that for free. Each run fetches only what changed
since its last checkpoint, which the architecture notes put at roughly a third of the API calls a full
refresh would make.
The result is one customer record with the invoices, deals, projects, contracts, appointments, and
notes attached. Staff read it from a dashboard instead of reconciling six tabs. The connector contract
is public as throughline-connector-kit.
The podcast side of the business needed transcripts, edit points, and social copy for every episode,
and the first version was a script that called a model and hoped. CoHost AI Studio replaced it with a
pipeline where every stage writes out what it produced, so you can open the transcript and see exactly
where the edit detector decided to cut. Before anything publishes, a quality gate scores the output
with a mix of programmatic checks and a second model, and a person decides whether it goes.
I don't have a clean before-and-after number for this one and won't invent one. What I can say is that
the gate has blocked releases, which is the point of having it.
How I work
I learned this inside my father's company. There was no one else to hand a ticket to, so I owned the
requirements conversation, the build, the deploy, the 2am page, and the explanation afterward. The
title on my résumé, Technology & Business Systems Lead, is a description I wrote; the company never
assigned one. Judge the systems.
I start by watching someone do the job. Most of what I build is a straight transcription of what they
were already doing by hand, with the failure modes turned into code. I'd rather ship a preview step than
a confidence score. When a model is in the loop, I want its work inspectable and a human able to stop it.
I'm looking for business systems, integration, or technical implementation work, full-time or contract,
at a company that runs on a CRM, a billing system, and a handful of vendor APIs and needs them to agree.
Dallas-Fort Worth, remote, or a few days a week on site.