By the numbers
01 · The challenge
A leading global bank faced a widening tech-debt gap that was outpacing product delivery. With tens of thousands of repositories and legacy stacks, older JDKs, Spring versions, and bespoke frameworks, the risk surface kept growing. Hygiene tasks, dependency cleanups, and security-driven remediations were accelerating faster than teams could keep up, while strategic upgrades were blocked by years of accumulated drift.
The problem was not awareness; it was bandwidth. Even with internal scripts, version bumpers, and one-off fixes, modernization could not move at the speed the organization needed. The bank needed a way to modernize safely and consistently across massive repo groups, not just surface problems or push PRs that developers would not merge.
02 · The solution
A deterministic modernization engine developers could trust at scale.
Version bumpers and scripts were not enough, and AI, while useful in the IDE, was too costly and inconsistent for multi-repo refactoring. The bank chose Moderne, powered by OpenRewrite, for large-scale, deterministic refactoring, and wired it into the real organization from day one.
- Thousands of repositories mapped into the platform, with prebuilt LSTs so engineers saw improvements instantly.
- An internal recipe marketplace that grew from a few seeds to 40+ reusable upgrade patterns.
- Developer-owned PRs rather than a central factory, with a hybrid CLI-plus-SaaS workflow.
- Dependency-freshness scores gating CI/CD auto-approvals, and impact dashboards tracking capacity recovered, not vanity activity.
03 · The results
Teams saw meaningful results within weeks. Java and Spring Boot upgrades that previously required weeks, or a coordinated project team, were completed in a fraction of the time. In one example, a team reduced a 64-hour upgrade effort to eight hours and completed three times more repositories at eight times the speed.
A major monorepo, 40+ microservices and 70+ developers, used Moderne to complete a full Java 21 and Spring Boot 3 upgrade, with 13,000+ files scanned and 300+ updated automatically. Custom recipes handled container changes from Docker to Podman, eliminating manual work across squads. Beyond hours saved, the results reflect a cultural shift toward continuous modernization.
See deterministic, estate-wide code change on your own repositories.