Skip to main content

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 →
How the example handles a reply
  1. 01Follow-up is scheduled
  2. 02Customer replies; their record is updated
  3. 03Next step checks the record and pauses

Design walkthrough, not measured client results.

Event inValidateNormalizeDeliverLog and alert

Event inAn order, a form, a webhook, or a scheduled pull. Whatever kicks the workflow off, from any system you already run.

0 yrs
Engineering behind it
0+
Apps I can wire together
Built in
Logging and handover
01What I build

What I actually get hired to do

Five things, mostly. The first four are builds. The fifth is cleaning up someone else's.

01

Workflow automation

CRM, email, reporting, onboarding and data sync that run without babysitting.

Same failure, caught

02

Multi-tool integrations

Connecting CRMs, databases, Google Workspace, Airtable and 400+ apps so data stops moving by copy and paste.

03

AI and LLM pipelines

Document processing, AI agents and smart routing wired into the stack you already have.

04

Custom builds

API integrations, scripts and web apps for the parts no-code can't reach, built with Claude Code and Codex.

05

Rescue work

Taking over a workflow someone else built that keeps breaking, and making it stop.

02When a record is bad

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.

0:00.0Webhook arrives

POST /webhook/shipments

{
  "order_id": "4471",
  "tracking": "1Z999AA10123456784",
  "carrier": "UPS"
}

The supplier's export opened in a spreadsheet on the way here.

0:00.4Validation holds it

Validation step

Lookup
order_id 4471
Result
0 matches
Nearest
SO-04471

Held. Not assumed, not written through.

0:02.6Ops gets told

#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

03How things break

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.

04Try it

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

  1. Event received
  2. Data validated
  3. Action taken
  4. 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.