Rotor — Management System for Repair Shops
The whole operation of a body shop in one system: intake, repairs, parts, insurers, invoicing and payments — replacing a legacy tool and the spreadsheets around it.
Client work — source not public
- Type
- Product
- Period
- 2024 — present
- Status
- In production
- Role
- Full-Stack Architect & Lead Developer
The problem
A body shop runs on a set of overlapping records: which cars are in, what was quoted, what the insurer authorised, which parts are on order, what has been invoiced and what has actually been paid. Most shops of this size run that on one ageing program plus a constellation of spreadsheets, and the join between them is a person.
What I built
Rotor replaces the constellation: repair jobs, customers and their vehicles, active and passive invoicing, insurers and their assessors, estimates, and the reporting on top. It is used in a workshop, on a tablet, often with dirty hands — anything that costs more clicks than the old way gets abandoned, so the screens were designed against that and not against a demo.
The interesting work was the domain. A repair job is not linear: it can be waiting on an insurer while parts are already ordered, and delivered before it is invoiced. The model represents partial, out-of-order progress instead of collapsing into a status field that means something different in every shop. Importing years of legacy history was built as part of the product, because in practice it is never run once.
Where it stands
In production, running the daily operation of repair shops end to end, with the old history carried across rather than abandoned — and the switch happened without a day of downtime.
What I did
- Designed the three-tier architecture and the domain model behind repair jobs, vehicles, insurers and invoicing
- Built the operational flow end to end: intake, estimate, repair tracking, parts, invoicing and payments
- Wrote the importer that lifts years of history out of the legacy workshop system
- Containerised the stack and produced the Kubernetes manifests used as the deployment reference
Impact
- Runs the daily operation of repair shops, replacing fragmented spreadsheet processes
- Years of legacy history migrated rather than abandoned
Stack
- .NET 9
- Blazor WASM
- PostgreSQL
- Docker
- Kubernetes
- MudBlazor
- EF Core