Case Study

Tackling technical debt at big bank scale

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, bespoke frameworks), the risk surface kept growing. Hygiene tasks, dependency cleanups, and security-driven remediations were accelerating faster than teams could keep up. At the same time, strategic upgrades were blocked by legacy frameworks, outdated JDK/Spring versions, and years of accumulated drift.

The problem wasn’t awareness—it was bandwidth. Even with internal scripts, version bumpers, and one-off fixes, modernization simply couldn’t move at the speed the organization needed. Tech debt wasn’t just slowing their progress—it was consuming it.

The bank needed a way to modernize safely and consistently across massive repo groups, not just surface problems or push PRs that developers wouldn’t merge.

Industry:

Finance

Developers:

10,000 developers

Repos:

50,000 repos

Estimated savings for:

Java Upgrade

30

person years

Spring Upgrade

30

person years

OWASP Top 10 Remediation

10

person years

It’s very easy to produce software—it’s very hard to shut it off. At large organizations, the surface area just keeps growing, and the people who pay the bills aren’t always aware of the trade-offs. We’re busy dealing with tech debt and can’t do anything new for anyone.

Engineering Director
Banking Company

The Solution

“You need something scalable, deterministic, and explainable. That’s the only way to make progress across an estate this large.”

Engineering Director
Banking Company

The bank needed a modernization engine that could handle tens of thousands of repos with precision. Version bumpers and scripts weren’t 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 that developers could trust.

They wired Moderne into the real organization from day one:

  • Thousands of repositories mapped into the platform
  • Prebuilt LSTs so engineers saw improvements instantly
  • An internal recipe marketplace that grew from a few seeds to 40+ reusable upgrade patterns

The bank also built a modernization culture:

  • Inner-source recipe contributions with visible recognition
  • Workshops and champions expanding recipe authorship

Execution focused on developer trust and safe scale

Developer-owned execution

Developer-owned PRs, not a central “factory”

Hybrid workflow flexibility

CLI for local refinement + SaaS for multi-repo execution

SDLC modernization guardrails

SDLC guardrails: dependency-freshness scores gate CI/CD auto-approvals

Impact-driven visibility

Impact dashboards tracking capacity recovered, not vanity activity

Results

Teams saw meaningful results within weeks. Java and Spring Boot upgrades that previously required weeks—or a coordinated project team—were now completed in a fraction of the time. In one example, a team reduced a 64-hour upgrade effort to eight hours and completed 3x more repositories at 8x the speed.

A major monorepo—40+ microservices, 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 multiple squads.

More importantly, these upgrades translated into clear business value:

  • Performance gains, including faster startup times on Java 21 + Spring Boot 3.
  • Capacity recovered, not just hours saved—redirected back to business priorities.

You want to take the capacity you’re wasting, and move it back to do things for your business, your product, or your customer.

Engineering Director
Banking Company

The bank's results don’t just reflect faster upgrades—it’s a cultural shift toward continuous modernization, with growing inner-source recipe authorship and steadily raising technical fitness across the organization.

On the horizon: A “modernization-first” governance model requiring automation plans for all tech debt initiatives.

Dive Deeper

blog

How Morgan Stanley is tackling tech debt at scale

Learn how Morgan Stanley is leveraging Moderne and the power of mass scale code refactoring and modernization to tackle technical debt.

Product

Lossless Semantic Tree (LST)

See how LST powers semantic code search and automated refactoring across large, complex codebases to make upgrades faster, safer, and more consistent across entire organizations.

Meet Moddy

Multi-repo AI agent for code modernization

Dive into Moderne’s multi-repo AI agent designed to modernize enterprise codebases at scale. Moddy combines natural language AI with deterministic tooling to automate complex refactoring.