Resume example (text format)

Programmer, COBOL and Java Gordon Fairweather

Programmer

[email protected] | (515) 555-1522 | Des Moines, United States

Profile

Programmer with two years maintaining batch and reporting code for a third-party claims processor, working in COBOL and DB2 on z/OS alongside a Java 8 reporting service. Closed 240 defect tickets in the last year at a 3% reopen rate, and wrote specifications for 18 batch jobs that had none. Converted 9 operational scripts from Python 2 to Python 3 and retired the last Python 2 interpreter on the team's build server.

Work Experience

06/2024 - Present, Programmer, Prairie Trail Data Services, West Des Moines, United States

  • Maintain batch and reporting code for a third-party claims processor: Enterprise COBOL and DB2 on z/OS, plus a Java 8 reporting service.
  • Closed 240 defect tickets in the last 12 months at a 3% reopen rate, against a team average of 9%.
  • Wrote specifications for 18 batch jobs that had none; they are now the team's pre-release change checklist.
  • Converted 9 operational scripts from Python 2 to Python 3 and retired the last Python 2 interpreter from the build server.

05/2023 - 08/2023, Information Systems Intern, Prairie Trail Data Services, West Des Moines, United States

  • Built the job dependency map for a 51-job nightly cycle from JCL and scheduler exports.
  • Reconciled 3 report extracts against their source tables and documented two undocumented layout changes.

Education

08/2020 - 05/2024, Bachelor of Science, Management Information Systems, Iowa State University, Ames, United States

Coursework in COBOL, enterprise data structures and database systems.

Skills

Enterprise COBOL, 70

DB2 for z/OS, 65

JCL and scheduling, 70

Java 8, 60

Python 3, 70

Defect triage and root cause analysis, 70

Specification and runbook writing, 75

Languages

English, native

German, beginner

Certificates

04/2025, Oracle Database SQL Certified Associate, Oracle, 1Z0-071

SQL and PL/SQL against Oracle Database.

Summary

A programmer resume is a one to two page document carrying a versioned inventory of the languages and platforms you work in and a record of the migrations you have completed. This guide gives you three adaptable versions, the two blocks that matter in a declining occupation, and current Bureau of Labor Statistics pay and outlook.

Programmer resume examples by experience level

A programmer resume is a one to two page document carrying two blocks almost no other resume has: a versioned inventory of the languages and platforms you work in, and a record of what you have moved off, what you moved onto, and what did not break.

Those two blocks exist because this job title is in a different position from every other one in its category. The Bureau of Labor Statistics projects employment of computer programmers to decline 7% between 2025 and 2035, from 110,800 jobs to about 102,700, with roughly 4,400 openings a year and all of them arising from replacement needs rather than growth (BLS Occupational Outlook Handbook, 2025-35 projections).

That is a reason to write the resume differently, not to leave the page. A declining title means the resume has one of two jobs: prove deep maintenance value on a platform an employer cannot walk away from, or show credible movement toward an adjacent title that is growing. In short, both use the same two blocks, aimed differently.

Resume guide for a programmer resume

Specifically, this guide and the corresponding programmer resume example will cover:

  • How to write a programmer resume, section by section
  • The versioned inventory, and why versions decide interviews
  • The migration record: what you moved, how much of it, and what held
  • Three adaptable summaries: junior, mid-level and lead
  • What a declining occupation means for pay, and which adjacent titles to aim at

How to write a programmer resume

Overall, use six sections: contact header, summary, language and platform inventory, experience, migration record, and education with certifications. Generally, one page for your first five years, and two once both blocks have earned space.

The inventory goes high because it is the fastest way for a reader to decide whether to keep reading. The migration record follows the experience section, because it needs that context to make sense.

SectionWhat it is answeringWhere it goes
InventoryWhat exactly do they work in, at what version, and how recently?Directly under the summary
ExperienceWhat did they maintain, how much of it, and how reliably?Reverse chronological, with volumes
Migration recordCan they move a system, or only keep it alive?Its own block, after experience
Education and certificationsIs there a formal floor, and does it matter here?Last, and short
Expert Tip

Versions are the question, not languages

A resume that says "Java" answers nothing, because the vendor support calendar is public and the difference between releases is the difference between two jobs.

Oracle's Java SE Support Roadmap puts Premier Support for Java 8 as having ended in March 2022, with Extended Support running to December 2030; Java 11 Premier Support ended in September 2023, with Extended Support to January 2032; Java 17 Premier Support ends in September 2026 and Java 21 in September 2028 (Oracle, Java SE Support Roadmap, updated 15 September 2026).

An employer running Java 8 under Extended Support and an employer on Java 21 are hiring for different problems: the first wants somebody who can work inside an old runtime without breaking a batch window, the second somebody fluent in what changed. "Java, 9 years" is useless to both. Write the version, the years, and when you last used it.

Run the finished file through the ATS resume checker before you send it. Maintenance roles at insurers, banks and agencies are nearly always posted through a portal with a strict keyword filter.

Choosing the best resume format for a programmer resume

Reverse chronological, plus the two blocks. Tenure is an asset in this occupation rather than a liability, and the format should show it.

A programmer who has held the same policy administration system for nine years knows things that cannot be hired any other way: which batch jobs are load bearing, which table has no constraint on it and why, and what happened the last time somebody changed the settlement file layout. A functional resume hides how long you stayed and, as a result, throws that away.

If you are aiming at an adjacent title rather than another maintenance post, keep the format and change the emphasis: lead with the migration record, because a hiring manager for a developer role is buying forward motion.

Include your contact information

✅ Right❌ Wrong
Gordon FairweatherGordon Fairweather
Programmer, COBOL, DB2 and Java on insurance systemsExperienced IT professional
github.com/gfairweather, Des Moines, IADes Moines, IA
(515) 555-1522, [email protected](515) 555-1522, [email protected]

Put the platform in the title line. "Programmer" alone matches a filter and communicates nothing; "Programmer, COBOL, DB2 and Java on insurance systems" tells a hiring manager in one line whether they are reading the right file, which in a market of 4,400 openings a year matters more than it would elsewhere.

Make use of a summary

In short, four lines: what you maintain and how much of it, the versions, one reliability number, and one migration.

Junior programmer adaptable resume summary example

Programmer with two years maintaining batch and reporting code for a third-party claims processor, working in COBOL and DB2 on z/OS alongside a Java 8 reporting service. Closed 240 defect tickets in the last year at a 3% reopen rate, and wrote specifications for 18 batch jobs that had none. Converted 9 operational scripts from Python 2 to Python 3 and retired the last Python 2 interpreter on the team's build server.

Mid-level programmer adaptable resume summary example

Programmer with seven years on a policy administration system at a mid-market insurer, maintaining about 410,000 lines across COBOL, PL/SQL and a Java service layer. Moved the policy service from Java 8 to Java 21 across 14 modules with no change to the nightly batch window and no rollback. Hold the on-call slot for the overnight cycle, write the runbooks behind it, and cut failed overnight runs from 11 a quarter to 2.

Lead programmer adaptable resume summary example

Lead applications programmer with sixteen years on insurance policy and claims systems, responsible for a mixed estate of COBOL and DB2 batch, a Java service layer and a .NET agent portal. Ran the portal's move from .NET Framework 4.6.2 to .NET 8 over 11 months, rebuilding 62 of 71 screens and retiring the remaining 9 rather than porting them. Maintain the language and platform inventory the team plans against, and mentor 3 programmers.

Right vs wrong: the same programmer summary, twice

✅ Right❌ Wrong
Maintains about 410,000 lines across COBOL, PL/SQL and a Java service layer.Experienced programmer with knowledge of multiple programming languages.
Moved the policy service from Java 8 to Java 21 across 14 modules with no rollback.Involved in upgrading legacy systems to modern technologies.
Cut failed overnight runs from 11 a quarter to 2.Improved system stability and reliability.
Holds the on-call slot for the overnight cycle and writes the runbooks.Strong troubleshooting and problem-solving skills.

The right column, in contrast, reads as somebody trusted with a system that matters. The left, on the other hand, reads as somebody describing a job they have heard about.

Outline your programming experience

Employer, city, title, dates, then three to five bullets. Specifically, volume and reliability are the units: lines maintained, jobs in the nightly cycle, tickets closed, reopen rate, failed runs, batch window.

Instead ofUse
Maintained legacy applicationsMaintain about 410,000 lines across COBOL, PL/SQL and a Java 21 service layer on a policy administration system
Fixed bugs and resolved ticketsClosed 240 defect tickets in 12 months at a 3% reopen rate, against a team average of 9%
Supported nightly batch processingHold the on-call slot for a 74-job overnight cycle; failed runs went from 11 a quarter to 2
Upgraded application frameworksMoved 14 modules from Java 8 to Java 21 with no change to the batch window and no rollback
Wrote documentationWrote specifications for 18 batch jobs that had none, now used as the team's change checklist
Worked with business usersRun the monthly change review with underwriting and claims for a system 400 staff work in daily
Adaptable resume employment history example

Programmer, Raccoon River Mutual Insurance, Des Moines, IA, March 2019 to Present

Maintain about 410,000 lines of the policy administration system across COBOL and DB2 batch, PL/SQL, and a Java service layer used by 400 staff daily.

Moved the policy service from Java 8 to Java 21 across 14 modules over nine months, with no change to the nightly batch window and no rollback.

Hold the on-call slot for a 74-job overnight cycle; failed runs fell from 11 a quarter to 2 after the restart and checkpoint logic was rewritten.

Closed 240 defect tickets in the last 12 months at a 3% reopen rate, against a team average of 9%.

Wrote specifications for 18 batch jobs that had none, and turned them into the change checklist the team now runs before any release touching the cycle.

The language and platform inventory, and the migration record behind it

Above all, a programmer resume should carry two blocks that other technical resumes do not: an inventory of what you work in, versioned and dated, and a record of what you have moved off and onto. To begin with, the inventory says what you can be dropped into on Monday. The migration record says whether you can get a system somewhere else.

The inventory takes five fields: language or platform, version, years, last used, and context. The last one is what stops the block reading as a keyword list.

Adaptable resume language and platform inventory example

Language and platform inventory:

COBOL, Enterprise COBOL on z/OS, 16 years, current. Policy and claims batch, 74-job nightly cycle.

DB2 for z/OS, 16 years, current. Roughly 900 tables, including the policy master and the settlement extract.

Java, 8 through 21, 9 years, current. Policy service layer, 14 modules, moved to 21 in 2024.

PL/SQL, Oracle 19c, 11 years, current. Rating and commission calculations.

C# and .NET, Framework 4.6.2 through .NET 8, 6 years, current. Agent portal, 71 screens.

Python, 3.11, 4 years, current. Operational scripting and reconciliation checks. Python 2 retired from the build server in 2021.

JCL and REXX, 16 years, current. Scheduling, restart and checkpoint logic.

Versions carry information because vendor support calendars are public and dated. For example, the Python Software Foundation set Python 2's end of life at 1 January 2020, after which "no new bug reports, fixes, or changes will be made to Python 2" (Python Software Foundation). Similarly, Microsoft's lifecycle listing keeps .NET Framework 3.5 Service Pack 1 supported to 10 January 2029 and .NET Framework 4.6.2 to 13 January 2027, while .NET Framework 4.6, 4.6.1 and 4.5.2 all went out of support on 27 April 2022 (Microsoft Lifecycle, retrieved 16 September 2026). Likewise, the PHP project gives each branch two years of active support and two more of security fixes, which puts PHP 8.2 at end of life on 31 December 2026 (php.net, supported versions, retrieved 16 September 2026).

What support dates and migrations reveal

A reader who knows those dates can tell from your inventory whether you have been kept on a shelf or kept current. Therefore, write the truth either way: "Framework 4.6.2, six years, current, and the reason we are migrating" beats a vague "modern .NET" that falls apart in the first technical question.

Then comes the migration record, the second block, and four facts make an entry:

  • What you moved off, at version. Not "legacy", which tells nobody anything.
  • What you moved onto, at version.
  • How much. Modules, screens, jobs, tables, lines, services. A migration of 14 modules and a migration of 2 are different claims.
  • What held, and what you chose not to port. This is the line experienced readers look for. A migration where nothing was retired usually means nothing was examined.
Adaptable resume migration record example

Migration record:

Java 8 to Java 21, policy service layer, 14 modules, 9 months, 2024. No change to the nightly batch window and no rollback. Two modules were rewritten rather than ported because their dependency was unsupported.

.NET Framework 4.6.2 to .NET 8, agent portal, 71 screens, 11 months, 2025 to 2026. 62 screens rebuilt, 9 retired after usage logs showed under 40 sessions a year between them.

Python 2 to Python 3, 9 operational scripts, 3 months, 2021. Last Python 2 interpreter removed from the build server at the end of it.

DB2 settlement extract, flat file to a partitioned staging table, 2022. Nightly extract went from 94 minutes to 31, and the downstream reconciliation stopped needing a manual restart.

Also notice what is not in that block: any claim about how much legacy code exists in the world, or how few people can read it. Those claims are common; however, most of them cannot be sourced. A specific migration you completed is worth more than a statistic you cannot support, and a hiring manager who maintains one of these systems will know which you have.

Build a snapshot of your key skills

Ten to fourteen entries in three groups. The inventory carries the languages; therefore, this block carries the practices, which is where a maintenance programmer's value sits.

Adaptable resume skills example

Maintenance practice: Defect triage and root cause analysis, Change control and release checklists, Regression test design for batch, Restart and checkpoint logic, Runbook and specification writing

Data and integration: DB2 and Oracle tuning, File layout and copybook analysis, Settlement and reconciliation extracts, Message queue integration

Migration and tooling: Dependency and version auditing, Strangler pattern rollouts, Git and change management tooling, Automated regression harness construction, Endian and encoding conversion

List your education and certifications

Short, and last. A bachelor's degree is the typical entry-level requirement (BLS Occupational Outlook Handbook, computer programmers, 2025-35 edition), although at ten years in, what is being assessed is the estate you have kept running.

Adaptable resume education and certifications example

Bachelor of Science, Management Information Systems, Iowa State University, Ames, IA, 2010

Certifications: IBM Certified Application Developer, DB2 11 for z/OS, IBM. Oracle Database SQL Certified Associate, Oracle.

Training: Completed the vendor migration course for the policy administration platform, 2023. Internal instructor for COBOL and JCL onboarding, 4 cohorts since 2022.

The instructor line is worth more than it looks in a shrinking occupation: an employer keeping a platform alive has a succession problem, and a programmer who can teach it solves two things at once.

Choose the right layout and design

In particular, use a single column, 11 or 12 point body type, plain headings, no photograph, no graphics. The inventory and the migration record are both effectively tables and must survive being parsed into a flat record by a portal.

Also avoid a multi-column table for the inventory. Instead, one line per entry, comma separated, parses cleanly; a five-column grid often arrives at the far end as one scrambled paragraph.

Do

Give every language a version, years and a last-used date. Say what you maintain in a countable unit: lines, jobs, tables, screens. Give reliability numbers: reopen rate, failed runs, batch window. Write the migration record with what you moved off, onto, how much, and what you retired. Name the platform in your title line. If you are aiming at an adjacent title, lead with the migration record.

Iconly/Bold/Close Square Don’t

Do not write "legacy systems" when you can name the platform and version. Do not hide a version you are behind on; the support dates are public and the interview will find it. Do not claim a statistic about how much old code exists in the world, because most versions of that claim cannot be sourced. Do not describe a migration without saying what was retired. Do not drop tenure into a functional format; in this occupation, years on one system are the asset.

Programmer job market and outlook

The one declining title in this category, which changes what the resume has to do.

MeasureValue
Computer programmer jobs, 2025110,800
Projected change, 2025-35-7% (decline), -8,100
Projected annual openingsabout 4,400, all from replacement needs
Typical entry-level educationBachelor's degree
Median annual wage, May 2025$100,390 per year, $48.26 per hour

Source: U.S. Bureau of Labor Statistics, Occupational Outlook Handbook, 2025-35 projections and May 2025 wage data.

Statistical insight

The adjacent titles are the whole strategy

Two published occupations sit immediately next to this one and both are larger and growing.

Software developers, quality assurance analysts and testers held 1,905,400 jobs in 2025, with a projected 10% increase through 2035 and about 106,100 openings a year. Median annual wages in May 2025 were $135,980 for software developers and $104,300 for quality assurance analysts and testers, against $100,390 for computer programmers (BLS Occupational Outlook Handbook, May 2025 wages and 2025-35 projections).

The gap between $100,390 and $135,980 is about $35,600, and what sits in it is usually not skill but what the resume says the person does. A file that reads as ticket closure and defect repair is read as maintenance; the same person's file, written around systems designed, migrations led and decisions owned, is read as development.

If you want the adjacent title, the migration record gets you there, because it is the only part of a maintenance career that reads as forward motion. Put it above the inventory and write each entry as a project you ran.

Where the money sits by industry:

IndustryMedian annual wage (May 2025)
Software publishers$111,710
Finance and insurance$107,620
Manufacturing$99,850
Computer systems design and related services$98,360

Source: U.S. Bureau of Labor Statistics, Occupational Outlook Handbook, May 2025.

What salary you can expect as a programmer

To begin with, the median annual wage for computer programmers was $100,390 as of May 2025, or $48.26 an hour (BLS, May 2025).

Industry moves it less than in most technology occupations: the published spread runs from $98,360 in computer systems design services to $111,710 in software publishing, a difference of about $13,350 (BLS, May 2025). Finance and insurance sits near the top at $107,620, one reason so much of this work lives in insurers and banks.

Even so, the larger lever is the adjacent title. For instance, software developers had a median of $135,980 in May 2025, about $35,600 above computer programmers, and quality assurance analysts and testers $104,300. Those are different occupations with different postings, not different grades of the same one, and as a result the resume is what decides which posting you are competitive for.

In addition, a second, narrower lever sits inside maintenance work. After all, an employer that cannot leave a platform is paying for continuity and succession, not throughput. A resume showing that you keep the estate running, document what was never documented and teach the platform to the next two hires negotiates against the cost of losing that capability, which is a larger number than a ticket queue.

Key takeaways for a programmer resume

  1. Give every language a version, years and a last-used date; versions decide interviews.
  2. Finally, carry a migration record: what you moved off, onto, how much, and what you retired.
  3. Say what you maintain in a countable unit: lines, jobs, tables, screens.
  4. Give reliability numbers, since a maintenance programmer is judged on what does not break.
  5. Moreover, do not hide a version you are behind on; the support dates are public.
  6. Never cite an unsourced statistic about how much old code exists; give a migration instead.
  7. If you are aiming at software developer or QA, lead with the migration record, not the inventory.

Build your programmer resume in 15 minutes with our AI resume builder.

Related information technology resume examples

Pair it with a matching programmer cover letter.

Programmer resume questions, answered

How long should a programmer resume be?

One page for your first five years, two after that. Where tenure is the asset, a second page carrying a real inventory and migration record beats a tight single page that omits both.

Is it a bad idea to apply as a programmer when the title is declining?

No, but go in with the numbers. BLS projects a 7% decline for computer programmers between 2025 and 2035 and about 4,400 openings a year, all replacement (BLS Occupational Outlook Handbook, 2025-35 projections). Replacement openings are still openings, and they concentrate in employers with platforms they cannot leave. The decline means a generic resume has nowhere to land, so the two blocks are not optional.

How do I move from programmer to software developer on paper?

Lead with the migration record and write each entry as a project you ran rather than a task you completed: the scope, the duration, the decisions, what you retired, what broke and what you did about it. Then make sure the versions in your inventory are current where they can be. The occupations differ by about $35,600 at the median as of May 2025, so the rewrite is worth doing carefully.

Should I list COBOL and mainframe work, or does it date me?

List it, with the version and the context, and list what else you work in beside it. An employer hiring for that platform wants exactly that line; one hiring for something else reads the rest of the inventory. What dates a resume is an inventory with nothing current in it.

What if I have never led a migration?

Write the smallest true one: a library version bump, a script converted between language versions, a table moved to a new layout, a report rebuilt off a different extract. Give what you moved off, what you moved onto, how much, and what held. Having a record at all is what separates the file.