Michelin needed to automate tire transfers between front warehouses (FDCs) and distribution centers. The catch: no two teams described the process the same way. One engineer and I took it from disagreement to a production system.
Transfers were handled manually, in-transit inventory drifted out of sync, and errors reached dealers. But the deeper issue was upstream of software: logistics, warehouse and business teams each held a partial, often conflicting picture of how transfers actually worked — who triggers them, how much moves, what happens when data is wrong.
You can't automate a process that hasn't been defined. So the first product was the process itself.
The spec I wrote was part PRD, part functional specification, part data contract. At its core was the transfer engine's logic:
I defined each interface down to field level and co-designed the database schema with the developer, so the data model mirrored the workflow, calculations, statuses and exceptions.
I didn't document a process that existed. I helped define it, then formalized it into rules, data and software — and stayed through launch day and the bug that followed.