Workflow automation and integrations, built by an engineer
Automation that keeps running after you stop watching it.
I help small teams eliminate repetitive admin, connect their business tools, and put AI to work—with monitoring and documentation built in.
25 years of engineering experience. You work directly with me.
Featured example · Demonstration build
Follow up without sending the same message twice.
A scheduled follow-up should stop when someone replies. This build checks each contact’s status before sending and keeps a record of each step.
Explore the build and its safeguards →- 01Follow-up is scheduled
- 02Customer replies; their record is updated
- 03Next step checks the record and pauses
Design walkthrough, not measured client results.
Event inAn order, a form, a webhook, or a scheduled pull. Whatever kicks the workflow off, from any system you already run.
What I actually get hired to do
Five things, mostly. The first four are builds. The fifth is cleaning up someone else's.
Workflow automation
CRM, email, reporting, onboarding and data sync that run without babysitting.
Same failure, caught
Multi-tool integrations
Connecting CRMs, databases, Google Workspace, Airtable and 400+ apps so data stops moving by copy and paste.
AI and LLM pipelines
Document processing, AI agents and smart routing wired into the stack you already have.
Custom builds
API integrations, scripts and web apps for the parts no-code can't reach, built with Claude Code and Codex.
Rescue work
Taking over a workflow someone else built that keeps breaking, and making it stop.
Caught in three seconds, not six weeks
A supplier's export loses a leading zero on the way over. Most workflows write it through or skip it. Here is where that record actually goes.
POST /webhook/shipments
{
"order_id": "4471",
"tracking": "1Z999AA10123456784",
"carrier": "UPS"
}The supplier's export opened in a spreadsheet on the way here.
Validation step
- Lookup
- order_id 4471
- Result
- 0 matches
- Nearest
- SO-04471
Held. Not assumed, not written through.
#ops-alerts
Shipment sync · 1 of 240 held
Order 4471 has no match. Nearest is SO-04471, so the leading zero was probably dropped upstream.
Payload attached · retry once someone confirms
Why things break, and how I stop it
Three failure modes show up in almost every automation I get asked to take over. None of them announce themselves, which is why they run for weeks before anyone notices.
Silent failures
A sync that matches records will skip the ones it can't match, and say nothing. Every workflow I build logs what it dropped and surfaces it on a schedule.
Duplicate and repeat events
Webhooks get redelivered. Sheets get pasted into twice. If the workflow isn't idempotent, you get double charges, double emails, double records.
Nobody owns it after launch
Automations rot when the person who built them leaves. Documentation and a handover are part of the build, not an upsell.
Run one and see what comes out
Pick a scenario, or describe your own, and watch the run go through. What matters is the record at the end, not the animation.
1 · Choose a scenario
- Event received
- Data validated
- Action taken
- Run logged
2 · What the workflow did
Run the workflow to see what it did and the record it leaves behind.
Scripted demo of a real workflow. The live version runs on n8n against your own systems.
Frequently Asked Questions
How I work, what I build with, and what happens when something goes wrong
Still have questions?
Get in touch →Tell me what's breaking.
Share a few details. I’ll reply within one business day and arrange a call if it’s a fit.