dozens of systems already moved
Java, Python, COBOL and VB6 rewritten into Go, Rust and TypeScript in 30 days
Your Java monolith burns eight servers because nobody has had time to ask why. Rewritten in Go it runs on one, behaves exactly the same, and the difference shows up on next month's invoice. The COBOL nobody has compiled since 2011 goes the same way, and so does everything in between — Python, Node, .NET, RPG, VB6, Delphi, PHP. We rewrite it into Go, Rust and TypeScript in under thirty days, and your old system keeps serving customers every minute of it. Send us the system today, get a scope, a date and a price tomorrow.
Four screens, ten minutes. An engineer reads it — not a sales rep — and comes back with a scope, a date and a price inside two working days.
- 30
- days, start to finish, every project
- 20
- legacy stacks we migrate
- 10+
- years inside other people's systems
- 1M+
- lines in a single rebuild
Every system we take off life support
- Java, Python, Node12–20 days
Java / Spring Boot
Go
- Machine translates
- services, JPA entities, REST controllers
- Engineer decides
- what the framework was doing for you
- Java, Python, Node10–18 days
Python / Django
Go
- Machine translates
- views, models, Celery tasks
- Engineer decides
- the parts that were fast because of C extensions
- Java, Python, Node8–15 days
Node.js services
Go
- Machine translates
- routes, middleware, ORM models
- Engineer decides
- where dynamic typing hid a contract
- Java, Python, Node12–21 days
Ruby on Rails
Go
- Machine translates
- controllers, ActiveRecord, background jobs
- Engineer decides
- metaprogramming nobody can grep for
- Java, Python, Node12–20 days
C# / .NET Framework
Go
- Machine translates
- services, EF models, WCF endpoints
- Engineer decides
- Windows-only assumptions
- Java, Python, Node7–14 days
Python number crunching
Rust
- Machine translates
- hot loops, array code, serialization
- Engineer decides
- which precision the result actually needs
- Mainframe21–30 days
COBOL on z/OS
Go
- Machine translates
- programs, copybooks, packed decimal
- Engineer decides
- CICS screens, job ordering
- Mainframe7–14 days
JCL batch
Go + scheduler
- Machine translates
- job steps, dataset flow
- Engineer decides
- the dependency graph between streams
- Data7–12 days
VSAM + DB2
Postgres
- Machine translates
- record layouts, indexes
- Engineer decides
- what the copybook meant by a filler field
- AS/40018–28 days
RPG on AS/400
Go
- Machine translates
- RPGLE, DDS, service programs
- Engineer decides
- green screens, OPM leftovers
- Desktop10–18 days
VB6 desktop
TypeScript
- Machine translates
- forms, business rules, COM calls
- Engineer decides
- what the ActiveX control did
- Desktop14–24 days
Delphi 7
Go + TypeScript
- Machine translates
- units, VCL forms, DB access
- Engineer decides
- third-party components with no source
- Web8–16 days
ColdFusion
TypeScript
- Machine translates
- CFML templates, queries, scheduled tasks
- Engineer decides
- tags no one documented
- Web12–21 days
PHP 5.x monolith
Go
- Machine translates
- controllers, models, cron jobs
- Engineer decides
- where the framework ends and the business starts
- Web5–10 days
Perl scripts
Go
- Machine translates
- scripts, regex-heavy parsing
- Engineer decides
- undocumented file formats
- Data9–18 days
PL/SQL packages
Go + Postgres
- Machine translates
- procedures, cursors, triggers
- Engineer decides
- business rules hidden in triggers
- Desktop7–12 days
Access + Excel
Go + web client
- Machine translates
- queries, forms, macros
- Engineer decides
- the spreadsheet that is really the spec
- Web12–22 days
One deployable
Services
- Machine translates
- module boundaries, call graph
- Engineer decides
- where to cut the shared schema
- Data10–20 days
Fortran
Rust
- Machine translates
- numeric kernels, array layout
- Engineer decides
- floating-point behaviour that must not change
- Data9–18 days
ABAP reports
Go
- Machine translates
- report logic, selection screens
- Engineer decides
- what the SAP tables actually contain
One real dependency graph
As it sits today
Mechanical rewrite60%
Boundary cut by an engineer29%
Deletion candidate11%
The same graph as a table
| Module | Lines | Imported by | Imports | Domain | Class | |
|---|---|---|---|---|---|---|
| M01 | 326 | loc | 0 | 10 | S01 | Mechanical rewrite |
| M02 | 142 | loc | 0 | 3 | S02 | Mechanical rewrite |
| M03 | 55 | loc | 0 | 3 | S02 | Mechanical rewrite |
| M04 | 89 | loc | 0 | 3 | S02 | Mechanical rewrite |
| M05 | 5,194 | loc | 3 | 15 | S03 | Boundary cut by an engineer |
| M06 | 239 | loc | 5 | 1 | S03 | Boundary cut by an engineer |
| M07 | 884 | loc | 20 | 0 | S03 | Boundary cut by an engineer |
| M08 | 485 | loc | 4 | 6 | S03 | Mechanical rewrite |
| M09 | 9,835 | loc | 4 | 7 | S03 | Boundary cut by an engineer |
| M10 | 514 | loc | 2 | 0 | S03 | Mechanical rewrite |
| M11 | 677 | loc | 1 | 5 | S03 | Mechanical rewrite |
| M12 | 236 | loc | 4 | 11 | S03 | Boundary cut by an engineer |
| M13 | 187 | loc | 3 | 3 | S04 | Boundary cut by an engineer |
| M14 | 454 | loc | 1 | 1 | S05 | Mechanical rewrite |
| M15 | 58 | loc | 3 | 1 | S05 | Mechanical rewrite |
| M16 | 356 | loc | 4 | 2 | S05 | Mechanical rewrite |
| M17 | 247 | loc | 4 | 2 | S05 | Mechanical rewrite |
| M18 | 59 | loc | 3 | 1 | S04 | Boundary cut by an engineer |
| M19 | 139 | loc | 0 | 0 | S04 | Deletion candidate |
| M20 | 330 | loc | 13 | 2 | S04 | Boundary cut by an engineer |
| M21 | 414 | loc | 1 | 1 | S06 | Mechanical rewrite |
| M22 | 1,670 | loc | 3 | 3 | S06 | Mechanical rewrite |
| M23 | 1,218 | loc | 18 | 0 | S06 | Boundary cut by an engineer |
| M24 | 2,574 | loc | 15 | 3 | S06 | Boundary cut by an engineer |
| M25 | 163 | loc | 4 | 1 | S04 | Boundary cut by an engineer |
| M26 | 251 | loc | 2 | 5 | S04 | Mechanical rewrite |
| M27 | 161 | loc | 1 | 2 | S04 | Mechanical rewrite |
| M28 | 99 | loc | 2 | 0 | S04 | Mechanical rewrite |
| M29 | 45 | loc | 0 | 0 | S04 | Deletion candidate |
| M30 | 25 | loc | 0 | 0 | S04 | Deletion candidate |
| M31 | 1,417 | loc | 24 | 0 | S04 | Boundary cut by an engineer |
| M32 | 82 | loc | 1 | 0 | S04 | Mechanical rewrite |
| M33 | 30 | loc | 4 | 1 | S04 | Boundary cut by an engineer |
| M34 | 141 | loc | 3 | 1 | S03 | Mechanical rewrite |
| M35 | 79 | loc | 1 | 1 | S03 | Mechanical rewrite |
| M36 | 3,036 | loc | 3 | 10 | S03 | Mechanical rewrite |
| M37 | 173 | loc | 1 | 1 | S03 | Mechanical rewrite |
| M38 | 2,501 | loc | 1 | 9 | S03 | Mechanical rewrite |
| M39 | 1,452 | loc | 3 | 4 | S03 | Mechanical rewrite |
| M40 | 50 | loc | 1 | 1 | S03 | Mechanical rewrite |
| M41 | 2,148 | loc | 0 | 9 | S01 | Deletion candidate |
| M42 | 167 | loc | 0 | 1 | S01 | Deletion candidate |
| M43 | 4,873 | loc | 2 | 15 | S07 | Mechanical rewrite |
| M44 | 2,241 | loc | 1 | 10 | S07 | Mechanical rewrite |
| M45 | 474 | loc | 2 | 13 | S07 | Mechanical rewrite |
under the hood
A million lines is the normal size of the job
Every language in the tree, at once
Systems are never one language. COBOL calls JCL, JCL drives a C utility, a Perl script fixes the file before PL/SQL loads it. The platform parses all of it in parallel and holds one graph across the whole thing, which is why nothing falls out at the seams between languages.
Fewer machines for the same load
A Java or Python service rewritten in Go usually needs a fraction of the memory and a fraction of the instances, and a Rust kernel turns a batch window into a coffee break. That is the whole reason to move code that is not broken: the same behaviour on a smaller bill, and headroom you no longer have to buy.
A million lines and up
That is the size we plan around, not the ceiling. Above it we split the estimate and price the first part on its own. Scale is a scheduling question here, not a feasibility one.
Same behaviour, new architecture
A parity harness replays your recorded production traffic against old and new and compares to the cent. What changes is the shape: services with owners, a schema you can read, tests that came with the code, and a deploy that does not need a change window.
Air-gapped, on your hardware or ours
For regulated work the models come from us and run inside your perimeter with no outbound connection at all. If you do not have machines that can carry them, we rent you ours and they sit on your floor. Nothing about your code has to leave the building.
Your cloud, your data centre, a client VPN, or a room with no network at all — every one of these has a working setup, and the specifics go into the contract.
Whatever it is called where you work
- AI developmentThe agent, the typed tool layer around it, and the evaluation harness that keeps it honest in CI.
- Custom softwareA real system where a spreadsheet, an Access database and three patient people currently do the work.
- ModernizationPHP 5, VB6, Delphi and ColdFusion rewritten into Go and TypeScript while the old system keeps running.
- Mainframe and AS/400COBOL, JCL, CICS and VSAM off z/OS, with batch and green screens rebuilt as services.
- AI agentsAgents that run a business process, with a named human approving anything irreversible.
- System assessmentA map of the codebase, a ranked risk register and a phased migration plan with costs against it.
- AI consultingTwo or three use cases worth building, a measured baseline, and a build-or-buy call on each.
- Monolith splitOne deployable on a shared schema, cut into services that release on their own schedule.
How the work runs
- 01
Read access
A read-only copy of the repository, the build scripts, and whatever runbooks survived. We sign your NDA first if that is how your company works.
- 02
The map
The platform parses all of it and reports what is actually there: modules and their dependencies, code nothing calls any more, scheduled jobs nobody documented, and the place where the build only works on one machine. This lands before any rewriting starts.
- 03
Rewrite in slices
One bounded module at a time, with tests written against the behaviour of the original. Old and new run on the same inputs until the outputs match, then traffic moves. Nothing gets switched over on a single date.
- 04
Handover
Your engineers get the repository, the tests written along the way, and the map kept current. We answer questions afterwards, and we hold no keys you cannot revoke.
Send us the system
Tell us what you are running and what it is costing you. Inside two working days you have the map of your codebase, the order the work goes in, the date it finishes and the price against each phase. Approve the first phase and we start the same week.
Straight to the engineers who would do the work. No demo to sit through, no discovery call whose purpose is to book a second call.