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%
- Open CVEs
- 38 → 0
- Downtime windows used
- None
The situation
The system worked and made money, but every change had become expensive: no test coverage on the clinical paths, a framework four major versions out of support, and a dependency tree with open CVEs that were about to fail a customer security review. Two previous attempts at a rewrite had been abandoned. Nobody wanted to be the third.
What we did
No rewrite. We put characterisation tests around the clinical calculation paths first — the parts nobody would touch — so that behaviour could be pinned before anything moved. Then a branch-by-abstraction migration, seam by seam, upgrading the framework underneath a stable interface. Every step was independently shippable and independently revertible, and we shipped to production every second week for nine months. The regulated audit trail was treated as a first-class part of the domain rather than a logging concern, which removed a whole category of compliance risk.
Where it landed
The platform is current, supported and passing the customer security review that started the conversation. Change lead time — commit to production — dropped from eleven days to under one. Not a single scheduled downtime window was used during the engagement.
Two consultancies before them had told us to start again. Codense told us the boring truth: this is fixable, it will take nine months, and you will keep shipping the entire time. They were right on all three.
More work.
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
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