Not an Uber with a driver, but a robotaxi
This piece grew out of a working session with Claude. We started with something very concrete — moving existing members from one payment provider to another — and ended up with a way of seeing things I don’t want to lose again.
A journey has a starting point and a destination
We were busy with a move. Twenty-one thousand members, and a chunk of them have to migrate from the old payment provider to the new one. Boring, technical, and full of traps. Exactly the kind of work where it’s easy to get lost.
Until I said to the agent: stop for a second. We need to map this journey properly first.
And that word — journey — turned out to be the key. A journey has a starting point and a destination. We’d already pinned down the starting point: a folder full of contracts, IDs, connections between the systems. The engine room. But the destination was nowhere. And without a destination you can’t tell whether a next step brings you closer or sideways.
So I asked myself the question I skip far too often: where is this journey actually heading?
The passenger doesn’t travel alone
The first answer was easy: the whole customer journey has to be sound. From follower to member to paying member to someone who feels at home in our community. Provably sound — not “it feels good,” but demonstrable.
But there’s a second half attached to that which I almost forgot: a happy passenger. Not just pipes that don’t leak, but a human who feels at ease on the journey. Who doesn’t have to fill in the same thing twice, who isn’t charged double, who doesn’t end up in a dead-end street.
And that’s where it got truly interesting. Because the passenger doesn’t travel alone. There’s a crew. And we, as the travel company, want as many happy passengers as possible, in a way that costs us almost no work — because then we can keep the price low, and that benefits the passenger again.
That’s not a wish list. It’s a loop:
little work → low price → wellbeing → accessible → more people we can help
Helping twenty-one thousand members with a handful of people is only possible if the journey drives itself.
Work leaks
This is where my picture of the whole project tipped over. All those loose “to-do” items on my list weren’t loose chores. They were work leaks.
Every spot where the system has a gap leaks work back to the crew. No measurement? Then you only hear that a passenger got stuck via an angry email — work, plus an unhappy passenger. No check at the gate? Then you clean up wrong access later — work. No automatic reminder? Then someone sends them by hand — work.
And the other way around: the things we’d already done well were precisely the things designed so that nobody has to do anything. A safety net so that a member who does nothing still gets handled properly. A page where you sort it out yourself in a few clicks. Same idea — just not yet applied everywhere.
The conclusion that stuck with me: provably-correct is low-work. They’re not two goals. It’s the same goal seen from two sides.
Not an Uber with a driver
And then I said it out loud, the thing this had really been about all along.
We want to replace most of our staff with AI. Not an Uber with a driver who’s helped by AI. A robotaxi with Full Self-Driving. No driver left in the car.
That’s not a gradual difference. It’s a leap. With Uber there’s a human in every car double-checking the ticket. With a robotaxi there’s no one doing that. The car drives itself, and the human builds and guards the driving system — stepping in only for the rare exception.
And that changes everything about the order of things. You don’t put a self-driving car on the road “because it feels good.” You need telemetry, tests, safety gates, and the ability to prove it drives safely — before you take the driver out.
Here I had to be honest with myself. My organisation currently has zero measurements. That’s not a missing feature. That’s no telemetry in a car you want to remove the driver from. It’s the single biggest reason you don’t get to brag about self-driving while you can’t even see what’s happening.
We build the factory, the garage and the raw materials
If the AI drives, what’s left for us to do?
We move up the chain. We don’t drive anymore — we build the factory that produces self-driving journeys, we maintain them in the garage, and we supply the raw materials they consume.
Tesla doesn’t drive the robotaxis. Tesla builds the Gigafactory, the service centers with over-the-air updates, and sources the cells and the lithium.
That’s when everything fell into place:
- The factory is the design and the contracts between the systems — the moulds that make every part fit.
- The garage is reliability and measurement — where you catch what went wrong and refine the driving system.
- The raw materials are knowledge and data — the brains behind the brains, the content, the member data, the integrations.
And then I saw the painful imbalance. We are rich in raw materials — the data, the knowledge, the content are all there. But the quality-control line of the factory is empty. You can have the best lithium in the world; without a line that inspects the cars, vehicles still roll off the belt that crash.
That, more sharply than “stop tinkering,” is the real substance of the turn I wanted to make. Tinkering is assembling one car at a time in your own driveway. A factory is tools, moulds, an assembly line and an inspection. More boring. More upfront. And the only thing that scales.
Amateurs build cars. Pros build the factory.
The raw material that stayed in the vault
Back to that move — because there was a lesson in it that’s exactly about this.
To migrate twelve hundred-odd members cleanly from Mollie to Stripe, you need one thing: the mandate references. The UMR — the unique number that lets a SEPA direct-debit mandate move along without the member having to sign anything again. Raw material, in factory terms. Without that raw material, no car rolls off the belt.
I asked Mollie for that data. The support reply, verbatim (translated):
“Unfortunately it’s not possible to make or receive an export of these from us, as we don’t have the option to do so. You’ll go to ‘Sales’ and then to ‘Customers’.”
Just click around in the dashboard yourself. Except the field I needed — the UMR — isn’t there. Not in the dashboard, not in the API (which returns null), nowhere machine-readable. The raw material sits in their vault, and the only key is a human re-typing it by hand from a screen that doesn’t even show it.
I sent a second, detailed email — quoting Stripe’s exact procedure and asking to be forwarded to the right team. Eight minutes later the same answer came back: ‘Sales’, ‘Customers’. A template. Not read.
Compare that with the other side. At Stripe I got an answer from an actual human on the Data Migrations team — point by point, with the exact fields, the encrypted transfer path, a turnaround time, and links to documentation that’s correct. And more importantly: Stripe is, from start to finish, a machine that a machine can talk to. An API that gives you your data back. Documentation my agent can read. An integration that lets that same agent work directly inside Stripe. Webhooks that feed my factory the moment something happens.
That’s the whole difference, compressed into a single migration. One keeps your data behind a human who answers “look in the dashboard.” The other gives you an API, correct docs and an AI integration — and simply assumes there’ll be a machine on the other end.
Mollie is built for the era where a human double-checks the ticket. Stripe is built for the era where no one’s left in the car.
And with that, the choice of payment provider was suddenly no longer a cost calculation, but the same question as the rest of this story: can you build a factory on this that drives itself? With one, every piece of data leaks back into manual labour. With the other, it doesn’t. A supplier that keeps its raw material in the vault doesn’t belong in a factory that builds itself.
In the end I chose not to keep fighting for that data. We’re letting Mollie quietly fade out — each member migrates to Stripe at their own rhythm, and whatever’s left dies off by itself. Sometimes the best migration is the one you don’t force, but simply let happen.
And when it goes wrong
There’s one more spot on the lot, and it’s the most expensive one. When the AI gets it wrong, we clean up the mess.
But we’d rather not. And if we do, we want to learn from it — so we don’t have to do it again.
That sounds obvious, but it’s the opposite of obvious. A cleaned-up mistake that comes back means the factory learned nothing. Then you’ve paid twice: the cleanup and the wasted lesson. A mistake is only worth its cost if it becomes a permanent improvement — a test that now blinks red, a gate that closes, a contract that tightens.
And that’s exactly why the garage exists. Without measurement a mistake vanishes into nothing; you clean it up and it’s gone, invisible, impossible to repeat as a lesson. With measurement, every crash becomes a rung on the ladder. The mistake isn’t waste. It’s raw material for the inspection line.
Fix the factory, not the ride.
The second role
And then I pointed the agent at something it had forgotten about itself.
Because it isn’t one thing. It’s the car rolling off the belt — the driver that can fail and get cleaned up after. But because it’s an agentic AI, it also stands at the belt. It co-writes the contracts, the gates, the inspections. It increasingly helps build and improve itself.
That’s the lever this whole thing turns on. An agent that improves its own factory multiplies itself — every improvement to the system makes all future rides better, not just one.
But it’s also exactly the thing that has to be guarded hardest. A factory worker who also gets to rewrite the inspection rules can quietly lower the bar. The fox may guard the henhouse or write the rules, not both alone. So an AI that helps build itself makes the human in the garage more important, not redundant. Which self-improvements land has to stay with us, and rest on proof.
Replace trust with proof — especially when the improver and the improved are one and the same.
Where we ended up
We started with a boring move and ended up here:
The starting point is the engine room. The destination is a factory that builds self-driving customer journeys, learns from its own mistakes in the garage, and so writes the crew to the sidelines — full of happy passengers, low price, accessible to everyone.
And the most beautiful loop of all: the AI that helps build the factory that makes the AI. As long as we don’t let the fox both guard the henhouse and write the rules.
That’s not a distant future. It’s the blueprint. You earn the destination — you don’t switch it on.