I build software. And the tools that help AI agents build it safely.

Twenty years building production software. At Zapier, I build MCP servers, reusable agent skills, and agents that work in the background. I also lead the security work that defines what those agents can access and do.

the whole assembly line

The full stack. The actual full stack.

"Full stack" usually means a frontend and a backend. Mine starts before the code and doesn't stop at the deploy.

01 / IDEATION

Find the real problem

Spot the problem worth solving, and kill the ideas that aren't. Decades of tinkering built a good filter for it.

02 / PRODUCT

Scope it like a PM

Talk to users, cut to the MVP, write the spec nobody asked for. I've owned discovery through roadmap on cross-org products.

03 / BUILD

Write the software

Frontend, backend, data, AI agents, whatever the product needs. Twenty years across Python, TypeScript, Scala, and more.

04 / SHIP

Own the pipeline

CI/CD, infra, observability, rollbacks. Deploys should be boring, so I build them that way.

05 / QA

Break it first

Test it, abuse it, watch real users hit the edges. Testing happens as I build, not in a phase at the end.

06 / ITERATE

Measure & go again

Instrument, learn, cut what isn't working, ship the next version. The loop doesn't stop.

the systems around the agents

Engineering for AI agents.

Useful agents need more than a model. They need tools, clear instructions, and safe access.

01 / TOOLS

Tools agents can use

MCP servers that connect agents to real systems and useful actions.

02 / SKILLS

Reusable agent skills

Clear instructions and workflows that help agents handle repeat tasks.

03 / BACKGROUND WORK

Agents that work in the background

Async and cloud agents that do useful work outside a chat window.

04 / SAFE ACCESS

Safe access and clear limits

Sandboxing, permissions, and secret access. Define what agents can do and where a person must step in.

proof of shipping

I ship. Here are the receipts.

Highlights from twenty years of startups, scale-ups, and one very large bird app. Full detail lives in the resume.

Agent tooling at Zapier

Build MCP servers, reusable agent skills, and async and cloud agents on Zapier's internal AI development team. Lead security, privacy, and governance for those agents.

~300k DAU

added at Twitter by internal tooling I designed that enabled millions of new push notifications.

90% faster

data pipeline at Nebula.io after my event-driven ETL rebuild, at 85% lower cost.

End-to-end

ownership of Zapier's entitlements system from discovery to production. Scoped needs across teams and led the build.

−70% TTFB

on web ads at TapJoy. Ad views rose over 200%.

App of the Week

featured by Apple. 15k copies sold in two weeks, built solo.

2 exits

built and sold two SaaS companies, InvoiceJournal and InnFirst, from idea to acquisition.

operating principles

What I optimize for

User happiness

I care more about how the product feels to use than how long the feature list is. I sweat the flow, the copy, the empty states.

Developer happiness

Developer experience is a product too, and its users are engineers. Fast local dev, boring deploys, tools people actually want to use.

Velocity

Momentum compounds. Small scopes, tight loops, ship weekly. Shipping is how I find out if I was right.

Want the formal version?

Twenty-plus years across Zapier, Twitter, and a string of startups, with the numbers attached.

Agents welcome. The resume is machine-readable: GET /resume.json (JSON Resume schema), plus schema.org JSON-LD on every page.

currently shipping

Now building

Real products, live on the internet. I designed, built, deployed, and run each one.

Plus a rotating bench of experiments: MCP servers, AI agents, internal tools, home projects. Something is always mid-build. See the rest on GitHub.

notes from the build

Writing

Field notes on building with AI, shipping small, and twenty-odd years of lessons. Published on Medium.

More on Medium →