Skip to content
Codense
Health technology · 2025

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.
Chief Technology Officer, Danish health-tech scale-up
Next step

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