Accelerated modernization: How AI collaboration helped Rocket transform RMO

Author:

John Fair

Nov 7, 2025

5-minute read

Share:

Nonstock image of php entering a machine.
Php going over a bridge to Angular.

Challenge and context

At Rocket, every click, signature, and document upload brings clients one step closer to home. The Rocket Mortgage Origination (RMO) platform is where that progress happens – the heart of the mortgage process where clients verify income, e-sign disclosures, upload financial documents, and answer underwriting questions.

RMO isn’t just a web application; it’s the digital nervous system of the mortgage journey – a space where precision, trust, and clarity are essential. For years, it had been powered by a legacy PHP architecture that faithfully served millions of clients. But as client expectations and technology advanced, that foundation began to show its limits.

The modernization to Angular was designed to unlock flexibility, scalability, and a more dynamic client experience. Yet, after nearly 3 years, the migration was still incomplete. The initial “page-by-page” migration approach, while well-intentioned, created a hybrid environment where PHP and Angular coexisted uneasily.

Because PHP runs server-side and Angular runs client-side, the two constantly traded responsibility for managing client state. Teams built stopgaps to bridge the gap, but those workarounds came at a cost: complexity, bugs, and cognitive load. Each new feature required decisions about which stack to build in, slowing velocity and stretching delivery timelines.

Meanwhile, our PHP version was nearing end of life, adding urgency to complete the transition. Engineers were determined but weary – eager to finish strong but aware of how challenging it would be to close such a large chapter.

Then, almost in parallel with that growing urgency, something new emerged. The arrival of agentic coding tools – including Anthropic’s Claude Code – introduced a glimmer of hope. Could AI-assisted coding help us finally finish what we started? And could it teach us something new about the future of engineering along the way?

People at a meeting watching a presentation.

Turning point: The agentic coding breakthrough

There wasn’t a single “aha” moment that changed everything – but rather, a slow, steady build of belief. Across the industry, AI-assisted coding tools were making headlines, promising new levels of productivity and code quality. Inside Rocket, curiosity was growing. Engineers attended workshops, watched demos, and debated how this technology could fit into our modernization goals.

Then came a timely connection with our partners at Anthropic, who offered to host a 2.5-day immersive workshop dedicated to agentic coding. It became the spark that turned possibility into practice.

For the first time, our entire team – engineers, leads, and architects – learned how to work with Claude Code as a true collaborator. We explored how to prompt effectively, structure instructions, set context boundaries, and define success criteria. We also learned how to establish guardrails around quality, compliance, and accuracy, ensuring that AI assistance aligned with Rocket’s engineering standards.

More than anything, that workshop built confidence. Engineers saw firsthand that these tools weren’t replacements for expertise; they were multipliers of it. The energy shifted from skepticism to curiosity, and from curiosity to conviction. We left the workshop asking a new question: What if we could actually finish this migration in months instead of years?

Infographic showing how an AI prompt is refined.

Technical approach: From belief to build

To put agentic coding into practice, we focused on integrating Claude Code directly into the developer workflow not as an experiment, but as a trusted tool. We ran Claude through the terminal inside VS Code, and the team invested heavily in refining a shared claude.md configuration.

That file became our blueprint: It outlined architectural principles, coding standards, linting expectations, and test guidelines. It gave Claude context not just about syntax, but about how Rocket builds software.

The primary use case was refactoring PHP logic into Angular, leveraging the rich suite of existing PHP unit tests as a reference. Claude Code helped us translate those logic layers into Angular and even generated complementary unit tests. The output often surprised us – not because it was flashy, but because it was thorough. The AI’s ability to fill in edge cases and improve coverage raised our overall test quality.

Developers collaborated with Claude in a pair programming model. We’d ask, “How would you handle this API call or this state managem ent problem?” Claude would respond with candidate code, and engineers would review, modify, and test before committing. Every change stayed under human oversight, and every test was reviewed to ensure completeness, especially to avoid “happy path” bias.

Because RMO’s architecture was already well-documented, we were able to feed that documentation directly into Claude’s context window. That ensured generated code conformed to our standards and architectural boundaries.

The human side of adoption varied. Some engineers clicked immediately, finding their rhythm and watching productivity soar. Others took more time to get comfortable, learning how to prompt effectively, when to trust the AI, and when to intervene. We embraced that learning curve as part of the process.

By creating psychological safety for experimentation, we built collective trust in each other and in the tools we were learning to master.

Graph showing results and impact.

Results and impact: A leap in action

Including the training, the team finished the migration in 4 months – ahead of our 6-month target and years faster than the original trajectory.

During that period, senior engineer throughput increased by 145%, completing 201 work items compared to 82 in the prior comparable time frame. We didn’t achieve that by cutting corners; we achieved it by combining human creativity with AI speed.

Equally important: Quality improved. We saw a measurable reduction in bugs and zero client-impacting incidents related to RMO after migration. The enhanced unit tests that Claude helped generate made our releases more stable and our developers more confident.

And then came the qualitative shift – the feeling on the team.

“It felt like pair programming with a supercharged teammate,” one engineer said. “Claude didn’t replace our work; it helped us move through it faster and with more confidence.”

“I started to think more clearly about intent,” another teammate reflected. “The way I explained the problem to the AI made me a better problem solver.”

Some engineers admitted that early days were bumpy:

“It took a while to understand how to steer it. But once it clicked, productivity skyrocketed.”

By the end, those initial doubts gave way to something new: excitement. Finishing the migration wasn’t just a technical win; it was a cultural one. We had proven that AI could coexist with craftsmanship, speed could coexist with quality, and progress could coexist with care.

RMO’s modernization became more than a project milestone. It became a proof of concept for the future of engineering at Rocket.

Infographic showing results and takeaways.

Takeaways and lessons learned

1. Intent matters more than prompts.

Great output starts with great thinking. Engineers learned that clear intent, not just commands, drives meaningful results. The process of explaining a problem to Claude sharpened our own reasoning.

2. Guardrails enable freedom.

Establishing architectural and coding standards upfront didn’t slow us down. It accelerated us. With claude.md as our north star, engineers could explore confidently within well-defined boundaries.

3. Culture is the real multiplier.

Technology alone can’t transform an organization; people do. Pair programming with AI demanded curiosity, patience, and trust. The teams who modeled those behaviors became catalysts for everyone else.

4. Documentation is an accelerant.

Having RMO’s architecture documented in detail was a game-changer. Feeding that information into Claude’s context ensured the AI produced code that was structurally sound and maintainable.

5. Measure what matters.

We tracked velocity, quality, and bug rates, but also learning and morale. Watching engineers go from hesitant to energized was one of the most powerful indicators of success.

6. AI builds confidence, not just code.

Finishing the migration restored belief not just in the project, but in what’s possible when teams blend innovation with heart. It reminded us that AI’s greatest power isn’t automation; it’s amplification.

Summary

The accelerated modernization initiative began as a race to complete a migration. It ended as a story about human potential, about how engineers, empowered by intelligent tools and a shared sense of purpose, redefined what speed and quality can look like together.

In just 4 months, Rocket engineers transformed years of technical debt into a modern, resilient platform and, in the process, transformed how we think about building software.

At Rocket, every leap in technology serves one goal: to Help Everyone Home. Accelerated modernization proved that when innovation meets empathy, progress doesn’t just move faster; it moves people forward.

John Fair, Senior Vice President of Client Experience Engineering, headshot.

John Fair

John Fair is the Senior Vice President of Client Experience Engineering at Rocket Companies ($RKT) from Detroit, Michigan, and has been with the family for over 13 years. John, also known as “The Bow Tie Guy,” is a passionate leader and technologist experienced in several areas of technology, including architecture and information security. When he’s not all hands-on deck in technology, John spends his time with his wife Christina and 2 kids, Liam (19) and Anabelle (14). He also serves as a board member for Bees in the D and is an avid lover of all things Detroit City Football Club.

Related Resources