Twelve times the shipments, on the same infrastructure bill
A booking platform that fell over every Monday morning. We found the real bottleneck in three days, and spent the rest of the engagement making sure it could not come back.
- p95 at peak
- 8.4s → 310ms
- Peak throughput
- 12× capacity
- Infrastructure
- −2 app servers
- Rewrite budget saved
- 11 months
The situation
Monday is when Nordic freight books its week. Every Monday between 07:00 and 09:00 the platform slowed to the point of timing out, and the team had been adding application servers for two years without the peak getting better. Support handled the fallout by phone. The board had been quoted eleven months for a rewrite.
What we did
We started by measuring instead of guessing. Two hours of production tracing showed the load was not in the application at all: a per-request permission check fanned out into several hundred queries against an unindexed join table, and connection-pool exhaustion did the rest. We fixed the query path, introduced a cached authorisation layer with explicit invalidation, and moved document generation onto a queue. Then we built a load model from three years of real booking data and put the whole thing under a soak test that reproduced Monday on demand — so every later change could be checked against the real shape of the traffic rather than an average.
Where it landed
Peak-hour p95 response time went from 8.4 seconds to 310 milliseconds. The platform now carries roughly twelve times the Monday booking volume on two fewer application servers than it started with. The rewrite was cancelled; that budget went into the product roadmap instead.
We had convinced ourselves we needed to start over. Codense spent three days measuring and showed us we needed to fix four things. That conversation was worth more than the whole engagement cost.
More work.
A decade-old monolith, made changeable again — without a freeze
Eleven years of accumulated software, four PHP versions behind, and a regulated product that could not stop shipping. We modernised it in place, two weeks at a time.
- Change lead time
- 11 days → 0.8 days
- Clinical path coverage
- 0% → 94%
Technical due diligence that changed the price
Three weeks inside a marketplace codebase ahead of a Series B, and a written assessment the investment committee could actually act on.
- Turnaround
- 3 weeks
- Findings that blocked the plan
- 2 of 31
Tell us what is not working.
An hour on a call, no charge and no deck. We will tell you honestly whether this is work we are good at — and if it is not, who to talk to instead.
- Reply within
- One working day
- First call
- One hour, free
- Notice period
- One month, either way
- Based in
- Copenhagen & Odense