SECTORS · FINANCIAL SERVICES

Core financial logic that still works—and can no longer be changed.

Banks, insurers, pension funds and risk firms run ledgers, policy engines and long-term product calculations on systems written decades ago in RPG, COBOL or EGL.

We read that code, prove what it computes, and move it to a platform your own developers can keep changing—without changing the numbers it produces.

What the estate decides for you
  • A product change that needs a specialist who is retiring
  • A regulator’s question that takes a week to answer
  • An API the core system cannot expose safely
  • A pricing rule nobody is willing to touch
  • A dependency map that exists only in one person’s head

None of this is a failure of the old system. It is what happens when the people who wrote it move on.

Which platform, exactly

Financial institutions say “legacy” and mean two entirely different machines. The distinction matters, because the languages, the tooling, the migration risks and the people are different in each case.

IBM i

Midrange · not a mainframe

Operating system
IBM i, formerly OS/400 and i5/OS
Hardware
IBM Power servers
Lineage
System/38 → AS/400 → iSeries → IBM Power
Languages we meet
RPG (RPG III, RPG IV, ILE, free-form), CL, ILE COBOL, code generated by Synon / CA 2E

IBM Z

Mainframe

Operating system
z/OS
Hardware
IBM Z, z/Architecture
Lineage
System/360 → System/390 → IBM Z
Languages we meet
COBOL, PL/I, JCL, Assembler, with CICS, IMS and Db2 for z/OS around them

IBM i is not a mainframe. It is IBM’s integrated midrange operating system, running on IBM Power servers—a different architecture, a different operating system and a different product family from IBM Z running z/OS. Vendors who blur the two usually have not worked on either.

EGL sits across both. It is a fourth-generation language you do not deploy directly: you generate COBOL or Java from it, for IBM Z or for IBM i. That makes an EGL estate a migration of the generator’s output as much as of the source, and it is worth saying so before anyone scopes the work.

Two separate platform stacks: RPG, CL and ILE COBOL run on IBM i on IBM Power hardware; COBOL, PL/I and Assembler run on z/OS on IBM Z hardware. EGL generates COBOL or Java for either.RPG · CL · ILE COBOLIBM i (OS/400, i5/OS)IBM PowerCOBOL · PL/I · Assemblerz/OSIBM ZMIDRANGEMAINFRAMEEGL generates COBOL or Java for either
Two separate stacks, from the language down to the metal. A migration plan that treats them as one platform will misjudge the tooling, the runtime behavior and the people you need.

The logic is the asset, not the code

Credit-risk models, pension calculations, insurance product rules, long-term securities tracking: these were built once, corrected over decades against real cases, and are now the most accurate description of how the business actually works. The code is the only place that description survives in full.

A migration that loses the logic has failed, however modern the result looks. Everything we do is arranged around not losing it.

That is why we parse the real source rather than the documentation, and why every increment is validated against the behavior of the original before it replaces anything. The method is set out in Migration Blueprint and Migration CodeCraft.

Why it gets harder every year

Regulatory pressure, fast-moving markets, rising security threats and customers who expect digital services all push in the same direction, and the estate sets the ceiling on how fast you can answer any of them. Meanwhile the constraint that decides most timelines is not technical.

What modernization changes

Maintenance gets cheaper

Post-migration the code has been cleaned, the dead branches are gone and the structure is one a current developer can read. That reduces both maintenance cost and complexity.

Changes become possible again

New products, new rules and new channels stop being infrastructure projects. Adding a feature, or retiring an old one, becomes an ordinary change on an ordinary codebase.

Integration stops being the blocker

A modern runtime exposes the core through interfaces the rest of the business can consume, including cloud services you cannot reach from the old platform.

Security follows the mainstream

Older components are often unpatchable because the vendor no longer maintains them. On a supported stack, patching is routine rather than a project.

Hiring gets easier

The pool of Java and Python developers is a different order of magnitude from the pool of RPG developers, and it is growing rather than shrinking. That changes who you can hire and what you can pay them to do.

Your team can read the system

The output is code your own developers would have written, in your target architecture. No proprietary intermediate representation, no supplier you cannot leave.

Sources worth reading before you decide

Where we fit

Start with what the code actually says.

Tell us the platform, the languages and what is pushing the timing. We will tell you plainly what we would do, what it would cost, and whether the migration is worth doing at all right now.

Talk to us

Scroll to Top