Skip to content
← Back to work

Vision · Enterprise Legal Operations Platform

Technical lead on a mission-critical platform serving 1,000+ users across 130+ offices — and the migration bridge that let it modernize without going down.

Stack
C# · WPF (MVVM) · WebView2 · SQL Server · WCF · GraphQL · Camunda · Amazon S3 · SSRS · Datadog
My role
Technical Lead, Jan 2020 – Nov 2024. Led a distributed onshore/offshore team; personally architected the embedded-browser bridge and the legacy integration layer.

Problem

Veritext runs legal operations across North America — scheduling, billing, vendor management, and deposition workflow — and Vision was the platform it ran on: a large WPF application serving over 1,000 internal users across 130+ offices, operating in every U.S. time zone.

The business needed to modernize onto React-based applications. The constraint was that Vision could not stop working while that happened. There is no maintenance window for a platform that books depositions on the West Coast while billing runs on the East, and a big-bang rewrite of a system with a decade of accumulated business logic is the kind of project that fails slowly and expensively.

The harder problem underneath: much of the business logic was not written down anywhere. It lived in the code and in the heads of people who used the system daily. You cannot specify a replacement for behavior nobody has articulated.

Approach

Make legacy and modern run side by side, indefinitely, and migrate a piece at a time.

The centerpiece was a custom WebView2-based embedded browser that allowed bi-directional communication between the legacy WPF application and modern web modules. New React modules could be dropped into the existing desktop application and function as first-class parts of it — calling into legacy functionality, and being called back — so a user’s workflow could cross the old/new boundary without them knowing where it was. That is what turned a rewrite into an incremental migration.

Alongside it, an integration layer let the new NextGen applications invoke legacy Vision functionality and exchange real-time operational data. Together these formed the migration bridge: the modern stack could ship features before the legacy platform was retired, instead of after.

The rest of the work was archaeology and translation — reading legacy system behavior and undocumented business rules out of the code, and turning them into technical specifications and integration contracts the replacement applications could be built against. This is the unglamorous majority of any modernization, and it is where they usually fail.

I led a distributed onshore/offshore engineering team through it — code and design reviews, onboarding, technical standards, and unblocking the genuinely hard problems — and served as acting Scrum Master for the development and QA teams.

Outcome

The bridge went to production and the incremental migration proceeded without disrupting operations — the platform kept serving 130+ offices throughout.

Beyond the migration, the platform was extended to support Canadian and international expansion, and I carried Tier-3 production support and incident response across all U.S. time zones. A continuous thread of the work was addressing performance and stability problems arising from significant technical debt and genuinely mixed architectural paradigms — WPF/MVVM alongside WCF services, GraphQL APIs, Camunda workflow orchestration, S3 document storage, and SSRS reporting, all in one system.

What this project is proof of: leading engineers on software that a business genuinely cannot afford to have break, and finding the incremental path through a modernization that had no safe big-bang option.

Want the detail behind this one?

Confirm your email on the Ask-my-AI page and you can interrogate the specifics — architecture decisions, trade-offs, what broke.