Kestrel Logistics
Operations platform replacing eleven spreadsheets
A multi-tenant operations platform for a freight broker, migrated from spreadsheets and a legacy Access database without pausing dispatch. Strangler-pattern rollout behind feature flags, one region at a time.
Results
- Hours downtime at cutover
- 0Hours downtime at cutover
- P95 API latency
- 184msP95 API latency
- Spreadsheets retired
- 11Spreadsheets retired
- Engineers converted to Kestrel's payroll
- 2Engineers converted to Kestrel's payroll
The challenge
What we walked into.
Kestrel dispatched freight across eleven spreadsheets and an Access database written by someone who had left years earlier.
The pricing logic, the commercial heart of the business, lived in spreadsheet formulas that two people understood. Nobody was willing to touch it, so nobody could change pricing quickly.
The hard constraint was that dispatch runs twenty-four hours a day. There was no window in which the business could stop while a new system was switched on.
The approach
What we actually did.
- 01
Two weeks of due diligence first
Before any code, we mapped the current workflow, read the spreadsheets and wrote down the pricing rules as specifications a person could argue with. That document became the acceptance criteria.
- 02
Strangler-fig, region by region
The new platform ran alongside the old one behind feature flags, one region at a time, with automated reconciliation between the two. Rollback was a flag flip, not a restore.
- 03
Pricing extracted into a tested engine
The formulas became a rules engine with a test per rule, plus a spreadsheet-import fallback during the transition so the commercial team was never blocked.
- 04
Built to be audited
Multi-tenant Postgres with row-level access control and a full audit trail, because a freight broker has to be able to prove who changed a rate and when.
- 05
Boring deployments
Terraform-defined infrastructure and a preview environment per pull request, so releasing on a Wednesday afternoon stopped being an event.
Stack
- Next.js
- tRPC
- Postgres
- Drizzle
- Terraform
- AWS
We interviewed nine people over two weeks and had five of them writing code in the third. A year on, the same five are still here - that continuity is worth more to us than the day rate we were comparing.
Marieke S.
VP Engineering, Kestrel Logistics
Practices used
Get started
Tell us what you need built — or who you need building it.
Send us the situation as it actually is. You get back a shaped engagement, a named team, a fixed timeline and a number you can put in front of a board.
A partner replies within one business day — with questions, not a sales sequence.