Legacy .NET modernization

Keep the business running. Move the software forward.

Practical .NET modernization for small teams responsible for business-critical applications. Work directly with Sean Brennan, from assessment through delivery.

Selected experience / Document export

Overnight runs that never finished

~12 minutes

Re-engineered a document-export engine to complete municipal code books of roughly 1,500 sections and five million characters.

Sean's engineering work at enCodePlus. View professional background

Experience with systems people depend on.

Selected results from my engineering and consulting roles, alongside modernization work currently in progress.

Report suite126s → 7s

Faster reporting, identical results

At KidsVoice, improved SQL filtering and indexing to cut runtime across a 37-report suite while preserving its results.

Data migration in progress9.6M+ records

Reconcile before retiring the old system

For KidsVoice's ongoing legacy consolidation, built a resumable, 37-stage migration pipeline. Duration reconciliation mismatches fell from 807,000 to zero.

Modernization in progressWeb Forms → .NET 10

Modern foundations for an established product

At enCodePlus, leading a VB.NET Web Forms rebuild using an ASP.NET Core API, Vue 3, and PostgreSQL, with automated testing and security checks in CI.

These examples describe my work in prior and current roles, rather than engagements delivered under the Legacy Upsize name. Read my full résumé.

When the next change feels risky.

The application still does valuable work. Maintaining it has become harder than it needs to be.

  • Releases Deployments depend on manual steps and a maintenance window nobody wants to use.
  • Confidence Important workflows have little test coverage, so small changes require extensive manual checking.
  • Dependencies Aging libraries and platform constraints block integrations or make upgrades difficult.
  • Performance Reports, exports, or database queries take too long as the business grows.

Start with the constraint that matters most. A full migration may not be the right first move.

A clear plan before a bigger commitment.

A paid modernization assessment identifies the risks, compares your options, and defines a useful first implementation phase.

From $5,000 USD

Fixed fee agreed before work begins. Typically one to two weeks after access is ready; scope and timing are confirmed in the proposal.

Discuss your application

What you receive

  • An inventory of the agreed application components and key dependencies.
  • A review of build, deployment, testing, and support risks.
  • Options to retain, stabilize, replace, or migrate components.
  • A prioritized roadmap with effort ranges, assumptions, and exclusions.
  • A recommended first phase and a walkthrough with your team.

One application and a defined review scope. Implementation, exhaustive code review, and penetration testing are quoted separately. The written plan is yours to use with your own team or another provider.

Choose the changes your application needs.

The assessment determines the destination. A framework upgrade does not automatically require a new language, database, or hosting platform.

  • Older .NET applicationsA supported, maintainable path forward
  • .NET Framework, MVC & Web FormsStabilization, staged ASP.NET Core migration, or a scoped rebuild
  • VB.NET & C# codebasesMaintain existing code; convert where the benefit justifies it
  • SQL, reports & document exportsMeasured performance improvements and verified data migrations
  • Manual deployments & limited testsRepeatable releases, regression coverage, and observability

A focused performance or deployment engagement can be a useful first step. Existing Framework support is assessed against the Windows environment; age alone does not establish a need to migrate.

Small commitments. Visible progress.

Each phase has an agreed scope, budget, and definition of done. You decide what to fund next.

  1. Discuss the problem

    A free 30-minute call to understand the application, business priorities, timing, and fit. No code access is needed for the introductory conversation.

  2. Assess the options

    Agree on a written scope and fixed fee before the assessment. Review the findings together and choose a practical first phase.

  3. Deliver a defined phase

    Establish a build and test baseline, then implement the agreed changes. Regular demonstrations and budget updates keep decisions visible; scope changes require agreement.

  4. Release and hand over

    Agree on acceptance checks, deployment, and recovery procedures appropriate to the change. Finish with documentation, knowledge transfer, and a defined support period.

Work directly with the engineer doing the work.

Sean Brennan

Founder, Legacy Upsize
Pittsburgh, PA / Working remotely

I'm a software engineer and architect with more than 15 years of experience building and maintaining business-critical applications. My work spans municipal publishing, legal case management, and enterprise systems.

I've worked with the constraints that come with established software: valuable data, years of business rules, small teams, and users who need the application every day. I help teams improve those systems through practical modernization, performance work, automated testing, and verified data migrations.

You work with me from the first conversation through delivery. If keeping part of the existing system is the sensible choice, that belongs in the plan too.

Let's talk about your application.

Start with a free 30-minute introductory call. Tell me what the application does, what's getting difficult, and what you'd like to improve. We'll discuss whether an assessment or a focused engagement makes sense.

Email Sean to arrange a call

Prefer to write first? sean@legacyupsize.com
Please leave source code, credentials, and sensitive data out of your initial email.