What I worked on
Most of my time here went into the order-to-cash spine: quotes and orders coming in from dealer-facing channels, pricing and availability resolved against the ERP, then fulfilment, invoicing and revenue posting flowing back out. Each of those hops is an integration, and each one has a different tolerance for being slow, being wrong, or being retried.
The supply side was the other half. Purchasing, supplier onboarding, goods receipt and settlement flows that had to reconcile cleanly against physical movement of parts. When a receipt and an invoice disagree, someone in finance has to close the gap by hand — so a lot of the work was less about moving data and more about making mismatches visible early, with enough context attached to resolve them.
Over five years I moved from building individual flows to owning how a set of them fit together: shared error handling, consistent retry and idempotency behaviour, and reporting that let the business see the state of an order without opening four systems.
Systems & platforms
Representative work
Order-to-cash integration flows
End-to-end flows carrying orders from the sales channel into Fusion and pushing fulfilment and invoicing status back, with retry and idempotency behaviour that survived partner outages rather than duplicating orders through them.
Supplier and procurement interfaces
Inbound supplier, purchase order and goods-receipt interfaces, including bulk loads for volumes too large to run transactionally, plus the reconciliation reporting that made settlement mismatches findable.
Operational reporting and extracts
BI Publisher reports and scheduled extracts serving finance and operations, replacing manual pulls that had been stitched together in spreadsheets.
Fault handling and support tooling
A consistent error-handling pattern across flows — structured fault payloads, notifications routed to the team that could actually act, and a resubmission path that did not require a developer.
What the sector taught me
Automotive taught me that the integration is rarely the hard part — the hard part is what happens when it fails at 2am and the person looking at the alert is not the person who built it. Almost everything I do around observability, error payloads and resubmission paths came out of these five years.