Enterprise Software
How modernizing the platform foundation unblocked an enterprise tax software team.
A Flash-era product needed more than a frontend rewrite. The work paired React, a design system, GitHub migration, and team process so engineers could move again.
The engagement
An enterprise tax software platform — complex domain, large codebase, experienced engineering team — was running on Macromedia Flash. Flash had reached end of life. The team knew the migration had to happen. The question was how to do it without losing what the platform had already built.
This wasn’t a greenfield project. It was a modernization of a system that real customers depended on, with real complexity underneath: tax compliance logic, reporting workflows, enterprise-grade data handling. The technology needed to change. The institutional knowledge embedded in the product needed to survive the transition.
The engineering team was about ten full-stack developers. The work needed wasn’t just a platform swap. It was a design system, a new development environment, modern version control, and the process infrastructure to let a team that size work together effectively on a migration of this scope.
Before the migration
Innovation was stalling. The platform was the reason.
Macromedia Flash was being discontinued. Building new features on it meant working against the grain of a platform with no future. The development experience had become a bottleneck — not because the engineers weren’t capable, but because the platform was.
CVS version control and an unscaffolded development environment added friction to everything. Branching, collaboration, and code review on a ten-person team required tooling the old setup couldn’t support cleanly.
Without structured agile practices, coordination gaps accumulated quietly. No backlog grooming meant priorities weren’t visible across the team. No regular 1:1s meant blockers sat longer than they needed to. The engineering work was solid; the process around it wasn’t.
The team wasn’t the bottleneck. The platform was. And the platform had to change.
How we solved it
Platform, tooling, and process — rebuilt together.
Platform & Design System
The product ran on Macromedia Flash — a platform that had reached end of life and was increasingly difficult to build on. There was no component system, no consistent visual language, and no practical foundation for shipping new features at speed.
A React frontend with a purpose-built design system. Shared components, consistent CSS, and a clear visual foundation that let the team build new features without reinventing the interface on every ticket.
Developer Tooling
Version control ran on CVS — an older system that created friction for a team working across a large, evolving codebase. The development environment hadn't been scaffolded for the kind of collaborative, iterative work a ten-person team needed to do.
Migrated to GitHub with a properly scaffolded development environment. Standard branching, pull request workflows, and tooling that matched how modern teams actually collaborate.
Team Process
Without structured agile practices, a team of ten engineers was working without a shared cadence. No regular 1:1s, no backlog grooming — the kind of coordination gaps that compound over time and slow delivery even when the technical work is solid.
Introduced 1:1s and backlog grooming as part of the team's regular rhythm. Small process changes that gave the team visibility into what was coming, cleared blockers earlier, and made the engineering work easier to sustain.
The work
Foundation first. Everything else follows.
The platform itself was the problem. Macromedia Flash had been a capable tool for its era, and the software built on it was genuinely sophisticated — enterprise tax compliance is a complex domain. But by the time this migration started, Flash was end-of-life and the team was fighting the platform on every feature. Innovation wasn't stalling because of the people. It was stalling because the foundation couldn't support the pace they needed.
Working as the frontend-heavy engineer on a full-stack team of about ten, the contribution here was specific: the design system and CSS architecture, the scaffolding of the new React development environment, and the migration from CVS to GitHub. None of this is glamorous work. It's the kind of foundational work that makes everything else easier — and that tends to get skipped when a team is under pressure to ship features.
Technical migration and team process are related problems. A new codebase helps nothing if the team can't coordinate effectively around it. Introducing 1:1s and backlog grooming wasn't about imposing methodology — it was about giving a ten-person team the basic infrastructure to work together clearly. The agile cadence and the engineering work reinforced each other.
The goal was never just a technology swap. It was restoring the team's ability to build. Moving off Flash, onto a proper component system, with modern version control and a working team rhythm — the platform stopped being the constraint. That's what a modernization project should do.
Results
Start a conversation
Working on something similar?
If your team is building against the grain of a platform that’s become a constraint, let’s talk. A real conversation about what you’re trying to fix — before any commitment.
