A software engineer resume has 2 readers who want opposite things.
On this page
The parser wants boring structure: 1 column, standard headings, selectable text.
The human gives it 20 seconds and wants evidence with numbers in it.
Write for both: dull layout, a measured outcome in every bullet.
I have screened hundreds as a hiring manager at Zalando and hired 10+ from them.
What each reader is doing
The parser extracts name, companies, dates, titles, skills. It fails on 2 columns, images and tables.
When it fails, a human may never see you.
The human asks one question. Is this person plausibly at the level we are hiring for?
They look at your latest role, your company, and 2 or 3 bullets.

How to structure a software engineer resume
One column, in this order:
- Name, 1 line of contact, location, a link to LinkedIn or GitHub.
- A 3-line summary, only if it says something specific.
- Experience, newest first.
- Skills.
- Education.
- Anything else, if it earns the space.
No photo, no skill bars, no dates in a sidebar. One page under 8 years, 2 pages after.
Software engineer resume summary example
Only if it is specific. Three lines: your level, your domain, what you want.
Typical:
Passionate software engineer with a proven track record of delivering high-quality solutions in fast-paced environments.
That describes nobody. Delete it.
Better:
Backend engineer, 8 years, mostly Python and Go on payment systems. Currently leading a team of 4 at a European marketplace. Looking for a staff-level IC role in Berlin or fully remote.
Level, domain, scale, intent. A hiring manager can route that in 4 seconds.
The experience section is the whole resume
Each role gets 1 line of context and 3 to 5 bullets.
“Zalando, Berlin. Lead Software Engineer, 2021 to now. AdTech, team of 5, 27 markets.” Now every bullet has a scale.
The bullet formula
What you did, what changed, and a number. Most engineers write only the first.
Weak: Responsible for improving the CI pipeline.
Better: Removed 100 flaky tests from the CI suite.
Right: Removed 100 flaky tests and raised coverage from 60% to 70%. Deploys went from 4 a week to more than 10.
Same work, 3 levels deeper, 30 extra seconds to write.

Where to find your numbers
Engineers say they have no numbers. They almost always do.
- Time: how long did something take before and after?
- Money: cost saved, revenue enabled.
- Volume: requests, users, markets, records, deploys.
- Quality: incidents, bugs, coverage, p99 latency.
- People: hired, mentored, led.
If the exact number is not yours to share, use a ratio. “Cut the provider cost by a third” works.

The verb matters
Delete: responsible for, worked on, helped with, involved in.
Use: built, designed, migrated, removed, reduced, automated, hired, led, shipped.
The second list makes claims. A reader notices avoidance.
How to list skills
Group them and be honest about depth. Leave out anything you would not want to be interviewed on.
Languages Python, Go, TypeScript, PHP
Backend Django, Node, PostgreSQL, Kafka
Cloud AWS, GCP, Docker, Kubernetes, Terraform
AI OpenAI API, LLM integrations, MCP, agent pipelinesWhat an ATS breaks on
All layout:
- 2 columns. The parser reads across; your titles interleave with your skills.
- Text in images or icons. Your email disappears.
- Unusual headings. “My Journey” means the parser finds no experience section.
- Headers and footers. Many parsers skip them, so contact details vanish.
- PDF exported from a design tool. Some export text as vector outlines.
Open your PDF and try to select a line. If you cannot, neither can the parser.

Should you match keywords from the job ad?
Where it is honest. If they say “distributed systems” and you say “large-scale backend”, use their phrase.
Do not stuff. White text and hidden keyword blocks get detected. A human who finds one is finished with you.
The 20-second test
Give your resume to a stranger for 20 seconds, then take it away.
Ask 3 questions. What level am I? What do I work on? What is the most impressive thing here?
If they cannot answer all 3, formatting will not fix it.
Common questions
How long should a software engineer resume be?
One page under 8 years of experience, 2 pages after that. Nobody has ever rejected a good engineer for a second page. Plenty have been rejected for cramming 8 years onto one. A third page only earns its place for publications, patents or a long consulting history.
Should you tailor your resume for every application?
Tailor the summary and the top 3 bullets, leave the rest alone. That takes 10 minutes and covers most of the benefit. Rewriting the whole document per application takes an hour and buys almost nothing. The reader only reaches the older roles on the second pass.
What do you do about an employment gap?
Put it on the page with 1 line of explanation and move on. Parental leave, illness, study, a failed startup, a layoff. A stated gap costs almost nothing. An unexplained gap makes a screener guess. Screeners guess badly when they have 20 seconds.
Do you need a portfolio or GitHub link?
Link it only if it holds something you want read. An empty GitHub with 3 tutorial forks is worse than no link. A screener who clicks it comes back with a lower opinion. One real project with a readme that explains the decisions beats 20 repositories with none.
What is an ATS resume?
An ATS resume is one a parser can read. Single column, real text, standard section headings, no tables and no images. That is the whole requirement. There is no ATS score to optimise for. Broken formatting removes you before a human reads a word.
The short version
1 column, standard headings, PDF with selectable text. A 3-line summary only if it is specific. Every bullet gets a number.
Verbs that make claims. Skills grouped and honest.
Hand the page to a stranger for 20 seconds. See what they can tell you.
For a written review and a 60-minute call, book a resume review. The report lands within 48 hours.
The next post lists 11 resume lines that get people screened out.
