Lab
I build with AI every day. This is where I show how: the tools, the way I evaluate AI products, and the rules that came from getting things wrong.
What I build
I build tools that make product work faster and more honest, then hand them to my team. The full story is in Building AI tools as a PM. In short:
- A PM workspace that takes a problem from discovery to an approved PRD, with more than 30 written rules and 40 reusable agent skills. Nothing leaves it without my approval.
- A data-investigation workspace for PMs, which I co-built, so a PM can answer a data question themselves instead of filing a ticket and waiting three days.
- An AI agent for product managers that shared the top award at Hertz’s first AI hackathon.
- A shared hub where PMs on my team build and ship their own data apps, with an AI guide so nobody needs the terminal.
- A call-reason drilldown that sorts about 500,000 customer calls a month into five levels of “why”.
How I evaluate AI products
I own AI agents that talk to Hertz customers, so I evaluate them the way a customer meets them: on a real phone, end to end, with the speed, accuracy and handoffs written down. My checklist starts with one question: did the customer’s problem actually get solved?
The principles behind it are on How I work, and the full story of our AI agents is in AI on both sides of the conversation.
Rules born from real mistakes
My AI workspace runs on written rules. The ones I trust most each come from a mistake, mine or the system’s. Here are six, with the story behind each.
Set a baseline before taking credit
A reminder-text result looked great: most renters who got the text never went overdue. Then I checked the base rate. Almost all rentals never go overdue, text or no text. The number described the customers, not the texts. I withdrew it that week, and every result now sits next to the rate for people who weren’t treated.
Confirm a root cause from more than one angle
Some customers never got a cancellation email. A strong correlation with one data field looked like the cause, and a draft PRD was already built on it. I asked how we knew. The team that owns the field explained what it really meant, and a second data source showed the real cause: cancellations made by phone or by an agent never triggered the email.
Don’t grade your own work
My own estimates of how precise our call-topic screens were kept coming out higher than an independent scorer’s. It happened three times. Now every estimate gets a check from a scorer that hasn’t seen my work.
A label is not a measure
The option a caller presses in the phone menu is not their real reason for calling. A keyword flag we used to size call topics was much less precise than it looked. Before a label drives a decision, we test it against real conversations.
Never promise what the system can’t do
From the incident runbook I wrote for AI chat and voice: the AI must never promise a transfer the phone system can’t complete. A broken promise is worse than no promise.
Show missing data as missing
A dashboard that shows zero when data is missing tells a lie. Mine show “not connected” instead, so nobody mistakes a broken feed for a quiet day.