eeztech
FintechGoal: keep critical software running7 months

A 2013 platform modernised without a single hour of downtime

The lender’s loan-servicing platform was built in 2013 — a PHP monolith nobody wanted to touch. Releases happened once a month, at night, with the whole team on call.

Client
Consumer lender, Central Europe
Their team
CTO (owner), 5 in-house developers, compliance officer
Our team
Engagement lead, tech lead, 3 engineers
Timeline
2-week audit · 7 months of migration · run & care since
Weekly
releases, instead of once a month
−70%
production incidents
0 h
downtime during the migration
4 mo → 5 wk
to launch a new loan product

The business goal

Launch new loan products faster than competitors and stop losing weekends to failed releases — without a risky big-bang rewrite.

Agreed in the outcome brief
Criteria
Release frequency and incidents per release
Baseline
1 release a month, 3.2 incidents per release
Target
Weekly releases, under 1 incident per release
Pilot exit
First rebuilt module runs in parallel with zero discrepancies for 4 weeks

Where it was

No automated tests, undocumented business rules, one person who understood the payment logic. Every release was a night-time event, and every new loan product took four months.

2013 monolith
PHP, no tests
Monthly release
at night, everyone on call
Incidents
3.2 per release

What we did

  1. 1Audit · 2 weeksCode, infrastructure and risks. Three critical security issues found — fixed in the first week.
  2. 2First module · 6 weeksThe payment schedule rebuilt as a separate service and run in parallel with the old code, comparing every result.
  3. 3Migration · 5 monthsModule by module behind the same API (the “strangler” approach), with tests, CI/CD and monitoring added on the way.
  4. 4Run & care · ongoingOn-call with agreed response times and a monthly review of releases and incidents.

What did not work

We planned to move the regulatory reporting module early. It turned out the reports depended on undocumented quirks of the old code, so it went last — after we recreated each quirk with the compliance officer.

Who did what

The client’s team
Compliance signed off every module; in-house developers paired with us and now own two services.
Our team
Architecture, migration, CI/CD and on-call.
Together
A go/no-go decision before every module switch.

Before and after

NumberBeforeAfter
Releases per month14–5
Incidents per release3.20.9
Downtime during migration—0 h
Time to launch a new loan product4 months5 weeks
Automated test coverage of core logic~0%78%

Under the hood

Strangler-fig migration behind an API gateway; new services in TypeScript/Node with Postgres; parallel-run comparison of payment schedules; CI/CD with automated tests; OpenTelemetry tracing and alerting; infrastructure as code.
Releases used to be an event. Now nobody notices them — which is exactly how it should be.
CTO, consumer lender · name withheld at the client’s request
Similar cases
Field service9 days → same dayAn internal app the ops team built with no-code and AI tools — made solid enough for 300 techniciansLast-mile delivery3 h 40 → 1 h 55Same-day delivery platform: courier routing, order batching, onboarding and live monitoringHR software41%AI hiring assistant inside the product — and a new paid tier around it
A similar situation?
Get a starting plan for your situation in three questions — or talk it through with us.