Skip to content
Brad Stancel

Modernize legacy software without a rewrite

I upgrade old, business-critical codebases in safe, verified steps, using AI tooling to map what depends on what before anything changes.

The software the business depends on is years out of date, and everyone is afraid to touch it.

Legacy software modernization means bringing an old but essential application up to date, with supported language versions, frameworks, and interfaces, while it keeps running the business. Done well, customers never notice anything except that it gets faster and safer.

The instinct is often to rewrite from scratch. That usually trades known problems for unknown ones and throws away years of business rules nobody wrote down. I prefer staged upgrades on the existing codebase, with AI tools doing the tedious tracing and people making the judgment calls.

How the work goes

  1. Map before you move

    I index the codebase into a graph of functions, classes, and dependencies, so the risky areas are visible before the first change.

  2. Pin the behavior

    The business rules that matter get tests or recorded outputs, so a regression shows up as a failed check instead of a customer complaint.

  3. Upgrade in stages

    Each step ships to production on its own. No big-bang cutover, and every stage can be rolled back.

  4. Retire the old parts last

    Legacy code comes out only after its replacement has proven itself in production.

Where I've done this

  • Upgraded Ops Insights, a large production PHP application, from PHP 7.4 through 8.3 to 8.5 on Yii2, in stages, while customers kept using it. See more

  • Built a code knowledge graph (Neo4j with GraphRAG tooling) so AI agents and people can trace dependencies across a very large codebase before changing it. See more

  • Leading the Ops Insights front-end move from jQuery and Bootstrap 3 to Vue, TypeScript, and Tailwind with a written design system. See more

Related case studies

Common questions

Should we rewrite instead?

Sometimes, but rarely first. A rewrite is justified when the platform itself is a dead end. Otherwise staged modernization keeps the business rules you already paid for and delivers value sooner.

How does AI help with modernization?

It's very good at the tracing and repetitive changes: finding every caller of a function, spotting deprecated patterns, drafting mechanical updates. People still review the changes and decide what's safe.

Will customers see downtime?

The goal is no. Each stage is deployed like a normal release, tested against pinned behavior, and can be rolled back.

Tell me what's slowing the business down.

Describe the problem in plain terms. I read every message myself and reply when there's something I can genuinely help with.

Start a conversation