Rescuing the system that moves the freight
- Client
- Marlow Freight
- Industry
- Logistics
- Location
- Rotterdam, Netherlands
- Year
- 2023 – now
- Engagement
- Care retainer
- Duration
- Ongoing since 2023
- Team
- 3 engineers on rotation
- Disciplines
- Care & maintenance, Backend
Overview
Marlow's dispatch platform was nine years old, written by three agencies and documented by none. It went down weekly. We adopted it, stabilised it in six weeks and have modernised it piece by piece ever since, without a single big-bang rewrite.
- Uptime, up from 97.1%
- 99.98%
- Monthly cloud spend
- −62%
- Sev-1 incidents a quarter
- 11 → 0
A platform everyone depended on and nobody understood.
Marlow's dispatchers coordinate 1,400 trucks a day through a PHP monolith built in 2014. The original developers were long gone. Deployments were done by hand on Friday evenings, and outages were routine.
The team's instinct was a full rewrite. We advised against it: a rewrite would take eighteen months and freeze every improvement the business needed in the meantime.
How we took it over
- Week 1 – 2
Audit
Mapped every service, cron job and credential. Delivered a 40-page risk report ranked by business impact.
- Week 3 – 6
Stabilise
Monitoring, alerting, automated backups and CI/CD. Fixed the five issues behind 80% of outages.
- Month 2 – 9
Strangle
Moved routing, billing and tracking out of the monolith into tested services, one at a time, behind a proxy.
- Ongoing
Care
Monthly health reports, dependency updates and a 30-minute response SLA on critical issues.
Results
Before and after
Measured over the six months before we started and the most recent six months.
| Measure | Before | After |
|---|---|---|
| Uptime | 97.1% | 99.98% |
| Sev-1 incidents per quarter | 11 | 0 |
| Deploys per week | 0.5 | 14 |
| Mean time to recovery | 4h 10m | 9m |
| Monthly cloud spend | €18,400 | €6,900 |
| Test coverage | 3% | 71% |
“We handed Drams a system nobody on our team wanted to touch. Twelve months later it is the most boring part of our stack, and I mean that as the highest compliment.”
Stack
Legacy
- PHP 5.6 → 8.3
- MySQL 5.5 → 8
New services
- Go
- Node.js
- PostgreSQL
Platform
- Docker
- GitHub Actions
- Hetzner
Observability
- Sentry
- Prometheus
- Better Stack
Tessera
Product design and a component library for property management