I build the AI products that actually ship.
I took a governed multi-agent platform from a 22% to a 98% conversation pass rate, graded against gold datasets, then cut the delivery cycle from 90 days to 14. Both inside a company of about a thousand people, which is the part that was actually hard. VP of Product at Demandbase, Pendo, and Salesforce, and 15+ years in enterprise product before that. CS degree. I still write code every day.
What I want next is the top product seat at a company that's found its market and needs someone to own the AI transformation.

› update orders set total = 0 "Only SELECT queries are allowed."› select 1; select 2 "Only a single statement is allowed."› select import_orders(null) "That function is not available here." count, a literal containing 'call', an inner LIMIT, a view query -> all fineSingle-pass was the ceiling on every useful answer. The model never saw what its own tools returned, so it couldn't follow up, couldn't compare, and couldn't retry a call that came back wrong. It was answering blind. Closing the loop then broke a prompt rule I had written for the old architecture, and that is the part worth noticing: the rule was never wrong, it expired. I tested the fix against a tool holding a number the model had no other way to know.
the rule, written for single-pass:› State intent, never outcome. correct while the model never saw what its tools returned. Any outcome it stated was invented. Wrong the moment the loop closed: on turn two it has the answer and declines to give it. the rule now:› You may call another tool after seeing a result, to narrow it, follow it up, or retry with better arguments if it errored. single-pass: no text at all, secret not seen looped: "4173", secret seen› Ask me clarifying questions until you're 95% confident you can complete the task successfully.› I have the key, open the file that I should paste the key into. I don't want to paste it in chat.› are use sure the changes are on production and vercel deployed them? I don't see them› that worked. Any changes we need to check into git or remember in the future?Most of what I ship now, I ship by talking to an agent. None of these four lines is clever, and that is the point. The skill is in the habit, not the phrasing. Make it ask before it builds. Keep the secret out of the transcript. Don't believe a deploy until you have looked at production yourself. And close every fix by asking what the next session should already know, because an agent that learns nothing from today costs you the same tomorrow.
Principles
AI pilots don't fail because of the tech. They fail because nobody owns the outcome. I own outcomes.
The best AI products aren't prompts with a UI. They're systems: agents, evals, orchestration, feedback loops. I build those.
Small-company speed is a choice, not a company size. I cut delivery cycles from 90 days to 14 inside a thousand-person enterprise, with the legacy surface area that comes with one. That's not hustle, it's architecture.
Zero to one isn't a stage I've read about. Pendo Adopt started with me as the only PM and one engineering team. It ended as the highest-ASP product in the company, at $36M+ ARR in three years.
The exec who can't read the code is a liability. I read the code. I write the code. Then I go talk to the board.
Impatient
Speed, intensity, bias toward action. AI lets you move faster than ever. I do.
Courageous
Hard problems, persistent solutions. I work on things that haven't been solved yet, because that's where the leverage is.
Lean
No politics. No committees. One person with full-stack judgment. You get impact, not process.
Skills & Expertise
Public Record
The evolution of Demandbase AI's architecture
My team published the architecture story for the platform I led, including why we removed the semantic layer and replaced our in-house orchestrator with an open-source agent loop. Its stated lesson: context quality is more important than the technologies you use.
Demandbase EngineeringThe AI Architecture We Deleted
AWS Summit New York. We spent months building a sophisticated multi-agent system, then deleted most of it after watching customers use it. What Bedrock made possible at both ends of the complexity spectrum, and what I'd tell any builder tempted to start with the ambitious version.
View the talkForrester Wave Leader, Revenue Marketing Platforms for B2B
Demandbase named a Leader, with the highest score in the Strategy category among ten vendors evaluated.
Press releaseGartner Magic Quadrant Leader, ABM Platforms
Demandbase named a Leader for the fifth consecutive year, positioned furthest for Completeness of Vision among eight vendors. I led the product strategy behind the placement.
Press releaseUS Patent: Compliance with Data Policies
Granted on methods for enforcing data policy compliance inside a computing platform.
Case Studies
What I owned, what it did, and the part I would do differently. The numbers are the ones I can defend in a room.
Taking a multi-agent platform from a 22% to a 98% conversation pass rate
Starting as the only PM and building a second product line to $36M+ ARR
A full AI SaaS running a real bakery, live in 12 days
Rebuilding a client's whole site, 972 photographs, in 4 days
Every zoo has a lion. The lion can't be tamed. They roar louder than the rest. You can't have a zoo without a lion, because that's what everyone goes there to see.
“I would be REMISS to not give a large bucket of kudos/thanks to Chad who introduced us to Forrester WAY back in the early stages of this deal. This was the first step toward the culmination of the entire team's efforts.”
- Sales Leader, Demandbase“You may be really changing this company fr fr!”
- Sales Leader, Demandbase“I just got back from summer break to catch up on work and I look at the open MRs and most have your name. It's great to see PMs and Designers contributing. So in this case crazy is good, keep coding!”
- Staff Engineer, DemandbaseWhat I'm Building
Marin Cake Studio
ItsDeductible Replacement
gateway turn 1 input 2 cache write 80 cache read 1813 gateway turn 2 input 2 cache write 45 cache read 1893 direct input 1895 cache write 0 cache read 0The gateway reports usage on a different event than the direct API does, so every streamed call was logging zero input tokens. No error, no visible symptom. Right answers, right latency, and a spend rollup quietly reporting that the prompt was free. It would have looked exactly like the caching working. This is the kind of bug that only surfaces if someone reads the meter, which is most of why I still write the code.
Projects
FreshBooks MCP Server
chadholdorf.com
From the Blog.
Every Company Needs an Agent OS Strategy
The agent runtime layer is becoming infrastructure — just like Linux and Kubernetes before it. Companies that don't build a strategy around it will be caught flat-footed.
We Hold Robots to a Standard We've Never Held Humans
Autonomous vehicles are held to an impossible standard while human drivers kill 40,000 people a year in the US — and that asymmetry is a policy failure, not a safety posture.
The One Tool Test
If you can't name the commercial AI tool you brought into your organization this month, that's the answer.
Contact
If you're hiring a product leader who ships AI products instead of just advising on them, let's talk. Also open to advisory calls, AI product feedback sessions, and referral conversations. Recruiters, founders, and other builders all welcome.