Client Type
Federal health research agency
Sector
Health research
Engagement Model
Services
Legacy Modernization, AI-augmented Development

Challenge

The platform supported active health research workloads on top of inefficient, aging legacy code. Maintenance cost was rising, security and operational requirements had evolved past what the existing codebase could meet cleanly, and ordinary refactoring at the velocity available to the team would have run for many quarters.

The production timeline did not allow for a freeze. The system needed to keep running through the modernization, the team could not afford a multi-month feature pause, and the modernized components had to land without breaking dependencies or introducing regressions in a regulated environment.

What We Did

We identified the modernization bottleneck and introduced AI-augmented engineering workflows to dramatically accelerate the refactoring effort. Agentic development processes were brought into the engineering lifecycle for the work where they shined most, including boilerplate refactoring, test scaffolding, and mechanical migration patterns. Human judgment stayed on the architecture decisions, code review, and production cutovers.

Throughout the work, we maintained characterization tests so refactoring preserved behavior. CI gates blocked regressions before they reached merge. The cutover plan ran component by component with rollback safety at each step. The production system kept serving research workloads the whole time.

The pace exceeded what traditional refactoring alone could have achieved. The team modernized at a velocity that traditional methods could not match, and quality stayed high because the human-led oversight focused where it mattered most.

Workflow (sanitized)

AI-augmented engineering workflow with human-led oversight Detailed AI-augmented modernization workflow. Inputs (legacy codebase with characterization tests, engineer scope, architecture intent, style and quality rules) feed an iteration loop where an agentic AI assistant proposes patches and a human engineer reviews them. Multiple components run in parallel through the loop. Approved patches pass through quality gates: regression tests, lint and type check, security scan, and static analysis. The components then ship through sequential cutover, each behind a feature flag with rollback safety and observability watching for regressions. Production stays running throughout the modernization. INPUTS · WHAT FEEDS THE LOOP Legacy codebase with characterization tests written first Engineer scope target components, cutover plan Architecture intent ADRs · constraints non-goals Style + quality rules linters · review checklist · ADR template Multiple components in flight in parallel · A · B · C · D · … ITERATION LOOP · PER COMPONENT AI assistant · agentic Tools the assistant uses: · read · grep across the codebase · edit files · apply diffs · run characterization tests · iterate until tests pass · self-verify against quality rules Proposes patches · never deploys Bound by gates and human approval Engineer review · human-led Decisions the engineer owns: · architecture and design intent · cutover plan and rollback path · approve patch or send feedback · evaluate test coverage gaps · make production calls Owns architecture · owns cutovers Reviews every AI-generated change → patches ← feedback approved patch QUALITY GATES · NO EXCEPTIONS FOR AI-GENERATED CODE Regression tests Block on failure Lint + type check Same rules as humans Security scan SAST · dependencies Static analysis Architecture drift SEQUENTIAL CUTOVER · COMPONENT BY COMPONENT Component 1 behind feature flag Component 2 behind feature flag Component 3 behind feature flag Component N behind feature flag Each step independently rollback-able · observability watching for regressions before promoting the next Production · zero downtime Throughout the modernization, not at the end of it
Sanitized AI-augmented engineering workflow. AI accelerates the mechanical work (refactor, test scaffolding, dependency moves) inside a tight iteration loop with the engineer. Humans own architecture, cutover, and production decisions. Quality gates apply equally to AI-generated and human-written code. Cutover ships behind feature flags with rollback safety so production stays up the entire time.

Results

  • Modernized legacy system components at a pace traditional refactoring could not match, freeing the team to focus on architecture and security priorities instead of mechanical refactoring.
  • Caught vulnerabilities and edge cases earlier in the development cycle, reducing the cost of fixing issues that would otherwise have surfaced in audit or production.
  • Achieved zero production downtime during the modernization effort, allowing the client team to remain focused on core operations and research goals.
  • Established a reusable workflow the team could apply to subsequent modernization rounds, with documented patterns and quality gates that survived our exit.

Approach Stack

Core Capability AI-augmented engineering, agentic development workflows
Practices Characterization testing, incremental refactoring, behavior-preserving migration
CI/CD Automated regression gates, feature-flagged rollout, component-level cutover
Quality & Review Human-led architecture review, code review on every change, pair-programming on cutovers
Observability Behavior comparison, error-rate monitoring, structured logging across the migration
Modernizing without the rewrite

Talk to us about your modernization path.

If you are looking at a system the team is afraid to touch and a multi-quarter rewrite is not in the budget, AI-augmented modernization may be a faster path. We'll help you scope it.