Legacy modernization

Modernize your legacy system, starting with understanding it

ModernPath, the Agentic Engineering OS, maps your system from its code: its architecture, its domains, and the dependencies between them, each statement cited to its source. Then we modernize it slice by slice, in a repeatable process, and each slice goes live only when parity is proven.

Start with one slice:30 days, €10,000 fixedSee the offer

System map

Example

ORDERSSCREENOrder entryAPIPOST /ordersTABLEordersINVOICINGSLICE 1SCREENInvoice screenJOBNightly invoice runTABLEinvoicePAYROLLJOBPayroll runTABLEemployeeWAREHOUSEJOBStock levelsTABLEstockREPORTINGJOBMonth-endTABLEledger
First slice, chosen with youDependency found in the code
Read from the code first: every domain and what depends on what. Then one slice at a time.
“ModernPath solved a problem we had been living with for years without being able to name it. They made our codebase legible to AI — not at the surface level, but in terms of structure, patterns, and intent. The result was a step change in how effectively our developers can work with AI tools.”
Janne Tammi, CTO, Lemonsoft · Read how Lemonsoft made its ERP codebase legible to AI

Our own delivery: we run it on the same platform. Our release timeline moved from 3 months to 1, with the same team and the same quality bar.

Our approach

Modernizations overrun because nobody can say what the old system does

The people who built it have moved on. The documents describe an old intention. And coding agents can only guess the patterns from the files someone opened. So “the same, but modern” gets discovered at cutover, at the worst possible moment. We start the other way round: we find out what the system does before anything changes.

Understand the system. Change it with proof. Repeat.

Requirements your people accept

Agents read the code, the data, and the interfaces, and derive the requirements from them. The people who know the system accept them before anything changes.

Every difference decided by name

Every difference from the old system is fixed or accepted by name. Requirements, decisions, and test results are recorded in the Requirements Ledger, so you can always answer why something is there.

Slices that follow your domains

Your team and the agents work from the same map of the architecture and its domains. Slices follow those domains, and every slice goes through the same loop.

Keep developing on the same platform

After the modernization, your team can keep developing on the same platform, with the same map and the same record.

Requirements LedgerExample entry
Requirement
REQ-INV-012 · Invoices issued on a Tuesday round up
Source
billing/InvoiceCalc.cs, lines 212-248
Difference
The rebuilt slice rounded Tuesday invoices like any other day
Decision
Keep the legacy behavior, recorded as its own requirement.
Accepted by
Business owner, finance
Evidence
Parity test PT-012 passes on your test data

How it works

4 steps, the same for every slice

  1. 1

    Read the system

    ModernPath reads your code, data, and user interface, and maps the architecture, the domains, and the dependencies between them.

  2. 2

    Derive the requirements for the slice

    The behavior of the slice becomes requirements, each with its source. Your people accept them, and parity tests pin them against your test data.

  3. 3

    Rebuild the slice

    Coding agents rebuild the slice on your target stack in the agreed coding harness, tests first. Your team decides at each gate.

  4. 4

    Accept, and plan the rest

    The new slice must give the same results as the old one on your test data. Your business owner accepts the slice, and every remaining slice is sized from your code.

The legacy system drawn as a city, each building lit as its requirements are derived from the code and accepted by a person
Its requirements, derived from the code
One slice moving from the legacy system through a gate to the new system
Slice by slice, through a parity gate

Two ways forward

Two ways forward, from the same baseline

Modernize in place

Keep the system you run and change its foundation underneath, one subsystem at a time. Today’s behavior is proven first, and the same proof must still pass afterwards.

Build a new system

Build on your target stack, and decide for every legacy requirement whether it is carried over, changed, or left out, with evidence and a name. The legacy record stays a true description of the old system for as long as it runs.

The First Slice

Start with one slice: 30 days, €10,000 fixed

The First Slice is how we start. In 30 days we map your system, rebuild one functional area on your target stack, and prove it behaves as before. A forward deployed engineer runs the work with your team. You get the slice running in your staging environment, the system documented, and a plan for every remaining slice. The price is fixed, excluding VAT.

Your system, mapped

Slice 1

30 days

3 GATES

Slice 1, done

  • Rebuilt on your target stack
  • Tests green, on record
  • Accepted at the parity gate
  • Merged to your branch, running in your staging

Tap or hover a slice or a gate to see what happens to it.

Customer stories

Modernization in practice

All customer stories

Questions

Book a scoping call

Tell us about your system

Pasi Vuorio

Pasi Vuorio

CEO

Gaurav Khullar

Gaurav Khullar

CPO

Pick a time that suits you

In a 60-minute scoping call we look at your system together, name a candidate first slice, and agree the next step. Give us read access after the call, and we size the candidate slices before you commit.

Day

Time (Helsinki)

Checking the calendar…