FeaturesHow it worksPricing
Resume writing

How to write a resume when your experience is in a legacy tech stack

· 7 min read

Describe your legacy work by the problem it solved, not by the age of the tools. Scale, data volume, reliability and migrations carry over to any stack. Keep the old technologies that job ads still ask for, drop the ones nobody searches for, and show modern-stack work where it happened, at the size it really was.

This post is for engineers with several years on systems like .NET Framework, Java EE, PHP 5 or AngularJS who want their next job in a more current stack. It covers your bullets, your skills section, side projects, years-of-experience requirements, and how to apply at your current level in a new stack.

Describe the problem, not the technology

A hiring manager on a Go team wants to know whether you can change a system with real load and real users without breaking it. Your bullets should answer that, in terms that make sense in any stack:

  • Scale. Requests, transactions or users per day, and how many teams or products depend on the system.
  • Data volume. Large tables, nightly batch windows, reports that have to finish before the business opens.
  • Reliability. Incidents you handled, on-call duty, a system other teams cannot work without.
  • Change. Upgrades, migrations, splitting a system up, retiring code safely.

An insurance role, written around the tools and then around the problems:

Before:
Mercer Line Insurance, Leeds
Software Engineer | Sep 2018 – Present
- Developed and maintained ASP.NET Web Forms pages and WCF services using C# and SQL Server
- Worked on bug fixes and enhancements for the policy system

After:
Mercer Line Insurance, Leeds
Software Engineer | Sep 2018 – Present
- Own the quoting service (C#, WCF, SQL Server) that prices about 40k motor insurance quotes a day for three broker websites
- Rewrote the stored procedure behind renewal pricing, so the nightly run finishes in 50 minutes instead of four hours
- On-call for the policy system, one week in five

The technologies are still there. Hiding them would look strange, and an interviewer will ask anyway. The bullet is about the quoting service now, and a reader who has never used WCF can still see the volume and the users.

Some legacy jobs are mostly maintenance, with no migration and few numbers. That work still has a subject: the system, who uses it, and what you kept working. Our post on writing bullets without metrics shows how, and the one on on-call and maintenance work covers incidents and support.

Put migration work first

If you have helped replace part of a legacy system, lead the role with it. It shows you can move real traffic from the old system to the new one, which is the job at many companies that are in the middle of the same move.

Write what moved, what it moved to, how far it got, and what changed for the people who use it. Our senior Java developer resume example has this bullet in its current role:

FinanzWerk Solutions, Frankfurt, Germany
Senior Java Developer | 2020 – Present
- Migrated the legacy monolith to Spring Boot microservices; releases went from monthly maintenance windows to weekly deploys with no downtime
Senior Java Developer Resume Example
Resume example

Senior Java Developer Resume Example

A legacy monolith migration in the current role, with Java EE work kept in the earliest role.

View the full example

The same resume keeps "Maintained and refactored Java EE components for banking clients" under its 2014 role, next to its dates.

Most migrations are not finished. Say how far yours got:

Mercer Line Insurance, Leeds
Software Engineer | Sep 2018 – Present
- Moved 9 of the 23 Web Forms pages in the broker portal to ASP.NET Core and React, starting with the quote form
- Added a REST API in front of the WCF services, so the new React pages call one API instead of WCF directly
- Wrote the policy document service in Go, the first Go service at the company; it generates about 6k PDFs a day

"9 of the 23" is easier to believe than "Led the modernization of the platform", and an interviewer can ask about the 14 pages that are left.

Which old technologies to keep in your skills section

Keep a technology if job ads you are applying to still mention it, or if it shows depth that carries over. Drop it if it only tells the reader how long ago something happened. We recommend these rules:

  • Keep the language, even when the framework is old. C#, Java, PHP and SQL are still in wide use. "C#" is worth more than "Web Forms".
  • Keep old technologies that are still widely run. Oracle, SQL Server, IBM MQ, COBOL and Java EE still run in banks, insurers and public bodies, and some employers hire specifically for them. If you are a UK contractor, this is often what the contract is for; see our IT contractor CV guide.
  • Write versions the way job ads do. ".NET Framework 4.8" and ".NET 8" are different platforms, and so are AngularJS and Angular. "Java 8/11/17" shows you went through upgrades.
  • Drop dead tools. Visual SourceSafe, Silverlight, Crystal Reports, TFS. If a reader would not search for it, it only takes space.
  • Describe in-house frameworks instead of naming them. "The company's own ORM on top of ADO.NET" means something to a reader. Its internal name does not.
Before:
Skills: C#, VB.NET, ASP.NET Web Forms, WCF, Silverlight, Visual SourceSafe, TFS, SQL Server, Crystal Reports, jQuery, JavaScript, React, ASP.NET Core, Go

After:
Languages: C#, Go, JavaScript, SQL, VB.NET
Backend: ASP.NET Core, .NET Framework 4.8 (WCF, Web Forms)
Frontend: React, jQuery
Data: SQL Server (stored procedures, query tuning)

Nothing in the second list is new. The dead tools are gone, the legacy stack sits in parentheses under its platform, and current tools come first in each line. For more on grouping, see where to put your tech stack.

Where modern-stack experience goes, and how much to claim

Put newer technology where you used it, and describe it at its real size. Anything on the page is a fair interview question.

  1. Inside your current job. A new service, a migration, an internal tool. This goes in the role's bullets, like the Go document service above. It ran in production, so it counts the most.
  2. A side project. Give it a "Projects" section below experience, with a link to the code and a plain sentence on what it does and who uses it.
  3. A course or certification. List it under education or certifications. A course alone is not a reason to add the technology to your skills list.
Projects
Fare alerts (Go, PostgreSQL, Fly.io) | github.com/example/fare-alerts
- Polls two rail fare APIs every 10 minutes and emails 30 users when a saved route drops in price
- Wrote the scheduler and retry logic without a framework, with table-driven tests

Thirty users is small. Say so. "Built a microservices platform in Go" could describe the same code, and the first technical question would show the difference.

Years-of-experience requirements for a stack you are new to

A job ad asks for "5+ years of Go". You have 8 years of C# and 1 year of Go on one production service. Do not stretch the Go number. Show both numbers and let the reader decide.

Backend engineer with 8 years on insurance pricing and policy systems in C# and SQL Server, and 1 year of Go on a production document service. Moving the broker portal from Web Forms to ASP.NET Core and React, page by page.

Some teams treat the number as a hard rule and some read it loosely. You cannot tell which from the ad, and the honest version works for both. Every figure in the summary also appears in the experience section, so nothing in it can surprise an interviewer.

When an application form asks for years in one technology, count only time you spent writing it for work or for a project with real users.

How to switch stack without starting over

Your level comes from the problems you have worked on. Eight years on a pricing system makes you a senior engineer who is new to Go. Apply at your level, and choose where you apply so the gap is small.

  • Target companies that run both. A team halfway through a .NET Framework migration needs people who can read the old code. You learn the new stack on the job.
  • Change one thing at a time. Same domain and new stack, or same stack and new domain. A fintech engineer moving from Java EE to Kotlin at another fintech has a short explanation to give. Changing language, domain and level at once is much harder.
  • Move to the nearest current stack. .NET Framework to modern .NET, Java EE to Spring Boot, PHP 5 to current PHP and Laravel. AngularJS to Angular or React is closer to a rewrite, but the language and the component ideas stay the same.
  • Name the target in your headline. "Backend Engineer (C#, Go)" tells the reader what you are applying as. Keep your real job titles in the experience section.

The senior Python developer resume example shows what this looks like once the move is done: "Split the legacy monolith into FastAPI microservices; p95 API latency went from 380 ms to 210 ms."

If you were promoted while working on the legacy system, show each title separately. Our post on showing a promotion on a software engineer resume covers the format.

Put it into practice

Build your resume in Filiz and watch the PDF update as you edit. Start from scratch, import your current resume, or begin with an example. No sign-up needed to try it.

Create your resumeBrowse resume examples

Frequently asked questions

Does working in a legacy stack hurt my career?

It can, mostly when the resume lists only tools. Engineers can and do move from legacy systems to current stacks, and work on scale, reliability and migrations is the evidence they use. If you can, start a small service or tool in a current stack at work, because production experience counts more than a course.

Can I list a technology I have only used in side projects?

Yes, under the project where you used it. Keep it out of the main skills list, which readers take to mean tools you have used at work. If the job ad asks for that technology, mention the project in your summary so the reader finds it.

Should I remove old technologies from my resume?

Not from the roles where you used them, because they explain what you did. In the skills section, remove only dead tools that nobody hires for. Removing your whole old stack makes your experience look thinner, and an interviewer will ask what you were doing for those years.

How do I answer years-of-experience filters for a stack I am new to?

Give the true number for the technology. In a free-text field or a cover letter, add one line with your related experience, such as "8 years of C#, 1 of Go in production". A recruiter screening for the role can then pass that context to the hiring manager.

Resume examples

Senior Python Developer Resume Example
Senior

Python Developer

Senior Python Developer Resume Example

Keep reading

How to show technical leadership on a resume without a management title

Turn design docs, migrations, incidents and mentoring into leadership bullets, decide honestly whether to write Tech Lead, and avoid claiming people management you did not do.

Keep reading

Structured resumes for software engineers.

Product
  • Features
  • Pricing
  • How it works
  • Templates
  • Examples
  • Blog
© 2026 FilizFiliz is a product of Grycode Ltd (Company No. 12264904), registered in England & Wales.Registered office: Office 408 Screenworks, 22 Highbury Grove, London N5 2ER, United Kingdom.