Modernize the legacy system without stopping the business.
We replace old applications piece by piece, with the old and new versions running side by side, instead of betting the company on a two-year rewrite. Each step ships to production and proves itself before the next one starts.
How to modernize a legacy application safely.
Big-bang rewrites fail because the old system keeps changing while the new one is built, and nobody can prove the new one does everything the old one did. Gigabit modernizes in slices: find out what the system really does, put tests and monitoring around it, move one capability at a time behind the same interface, and retire old code only when the numbers match.
The published Heroku-to-AWS engagement shows the pattern: an 85,000-line Rails monolith, services extracted in order of risk with the payment core last, 48 hours of shadow traffic at a 0.00% discrepancy rate before the final cutover, zero downtime, and deploys cut from 38 minutes to 2.5. AI agents help most here, by reading old code, drafting characterization tests and writing the documentation nobody wrote.
What modernization includes.
A safety net first, then replacement in slices you can watch and reverse.
System discovery
We trace what the application actually does, undocumented rules included, from the code, the logs and the people who use it.
Safety net first
Characterization tests and monitoring around today's behaviour, so every change is checked against the old system.
Strangler fig extraction
New services take over one capability at a time behind the same interface, with traffic shifted gradually.
Framework and version upgrades
Language and framework upgrades, dependency clean-up and security patches for systems several versions behind.
Cloud and delivery
Containers, infrastructure as code and CI/CD, so the modernized system deploys in minutes.
AI-assisted code archaeology
Agents that map dependencies, explain old modules and draft tests, with a senior engineer reviewing every change.
Discover, protect, replace, retire.
Discover
Map what the system does and rank what to replace first by risk and value.
Protect
Add tests, monitoring and a deploy pipeline around the system as it is.
Replace in slices
Move capabilities one at a time, each in production before the next starts.
Retire
Switch off old code once the new path has matched it under real traffic.
Published prices, mapped to the job.
Every price here is the same one on the pricing page. Work with no published price gets a fixed price in writing before it starts.
Figures in the notes are what past clients paid, from the published case studies; they show the range, not a rate card. Work with no natural end, such as ongoing development, is priced per engineer per month with no lock-in.
When to hire us for this, and when not to.
- The system runs revenue, and nobody wants to touch it.
- Releases are rare and risky.
- The people who understand it are leaving or have left.
- A security review flags versions that are out of support.
- The system is stable, cheap to run and rarely changes. Leave it alone.
- A SaaS product now does the job. Configure that instead.
- You need everything rebuilt in one go by a fixed date. We will tell you why that fails.
Modernization in production.
A Rails monolith split into services with zero downtime, and an embedded pod that raised test coverage from 34% to 71%.
A 14-week strangler-fig migration off Heroku with zero downtime: -35% infra cost, -93% deploy time, +800% deploy frequency.
Three embedded engineers lifted sprint velocity 2.3x and shipped 4 stalled features in 3 months — saving $392,400/year vs US hiring.
These are past engagements at the prices those clients paid. For build price, monthly cost and payback side by side, see what ten client projects cost.
Legacy modernization, answered
What is application modernization?
Moving an old application onto a current architecture, framework and infrastructure so it is cheaper to run and safer to change. Done well, it happens in slices while the old system keeps serving customers.
How much does legacy modernization cost?
It starts with an assessment; ours cost $6,000 in the published engagement. That project's full migration of an 85,000-line Rails application cost $74,000 over 14 weeks. Longer programmes usually run on an embedded team at $3,000–$7,500 per engineer per month, so you can stop after any slice.
Should we rewrite or refactor?
Usually neither in full. Replace the parts that block the business, behind the same interface, and leave stable parts alone. A full rewrite only makes sense when the old system is small and well understood.
How long does modernization take?
The first slice should reach production within weeks. The published migration finished in 14 weeks; larger systems take longer, but every step delivers on its own.
Can AI help modernize legacy code?
Yes. Agents are good at reading old code, explaining it, mapping dependencies and drafting tests and documentation. A senior engineer still designs the target and reviews every change.
From the field notes
Stuck with a system nobody wants to touch?
Tell us what it runs and what it is built on. We reply with how we would protect it first and what to replace first.




