Resume13 min read

Software engineer resume
examples, ATS rules & what actually works

Most SWE resumes fail before a human reads them. Not because the experience is weak — because the format, framing, or keyword matching is off. This guide covers every section, all four career levels, and the ATS rules that determine whether your resume gets read.

0%

Resumes rejected by ATS before a human sees them

0s

Average time a recruiter spends on the first scan

0x

More interviews with quantified achievement bullets

0%

Of FAANG-level job descriptions require keyword matching

Every section — what to do and what to never do

Header & contact

Do this

Name, location (city/state is enough), LinkedIn URL, GitHub URL, and a professional email. That's it.

Not this

Full street address, headshot, date of birth, or a photo. ATS systems can fail on images; photos introduce bias risk.

Example

Jane Chen | San Francisco, CA | linkedin.com/in/janechen | github.com/janechen | jane@email.com

Technical skills

Do this

Group by category: Languages, Frameworks, Databases, Cloud/Infra, Tools. Match your exact skill names to the job description — 'React.js' and 'React' are different strings to some ATS parsers.

Not this

Skill bars or ratings ('Python ████░ 4/5'), vague terms like 'proficient in various languages', or listing things you'd need to Google in an interview.

Example

Languages: Python, TypeScript, Go | Frameworks: React, FastAPI, Django | Cloud: AWS (EC2, S3, Lambda, RDS) | Databases: PostgreSQL, Redis | Tools: Docker, Kubernetes, GitHub Actions

Experience bullets

Do this

Lead with an action verb, include what you built/changed/improved, and quantify the outcome. Every bullet should answer: 'so what?'

Not this

Job descriptions ('Responsible for maintaining backend services'), vague ownership ('Worked on the auth system'), or unmeasured impact ('Improved performance significantly').

Example

"Reduced API p99 latency from 340ms to 47ms by rewriting the session lookup layer to use Redis with a write-through cache — serving 2.4M requests/day with zero cache invalidation bugs over 14 months."

Projects (when to include)

Do this

Include projects when they demonstrate skills not visible in your work history, or when you're earlier in career. 2-3 projects max, with a GitHub link and a concrete metric or scale stat.

Not this

Tutorial projects you followed along with, course projects listed without original contribution, or projects with no measurable detail ('Built a web app using React').

Example

"Distributed key-value store (github.com/user/kv) — implemented Raft consensus in Go from scratch; handles 50K ops/sec in local benchmarks with linearizable reads. 280 GitHub stars."

Education

Do this

Degree, school, graduation year. Add relevant coursework only if you're a new grad with limited experience — and only coursework that directly maps to the role. GPA only if 3.5+ and within 3 years of graduation.

Not this

High school details, GPA below 3.5, graduation year that's more than 5 years ago if you're a senior engineer (it ages you without adding value).

Example

B.S. Computer Science, UC Berkeley, 2023 | Relevant coursework: Distributed Systems, Database Systems, Operating Systems

How the resume changes by career level

The structure is the same. The emphasis, framing, and signal are completely different.

New grad / junior (0–2 yrs)

Target length: 1 page, strictly

Lead with

Projects, coursework, internships

Bullet focus

What you built and the technical choices you made — even in academic or personal projects

Most common mistake

Padding with irrelevant work history (barista, retail) or listing every language touched in a bootcamp

Zari coaches

Identifying which projects signal the most to hiring managers and writing bullets that make academic work sound credible

Mid-level (2–6 yrs)

Target length: 1 page (tight) or beginning of 2 if truly necessary

Lead with

System ownership, cross-team impact, measurable outcomes

Bullet focus

Scale of systems you owned, performance/reliability improvements, and influence beyond your immediate tasks

Most common mistake

Writing bullets that read like a junior — 'implemented feature X' without any context of scope, scale, or decision-making

Zari coaches

Elevating mid-level bullets from task descriptions to ownership narratives that read at the next level

Senior (6–12 yrs)

Target length: 1–2 pages; cut anything older than 10 years

Lead with

Technical leadership, architecture decisions, org-level impact

Bullet focus

Systems you designed end-to-end, problems you defined (not just solved), engineers you influenced or mentored, business outcomes tied to technical decisions

Most common mistake

A senior resume that reads like a long mid-level resume — more bullets but the same individual contributor framing

Zari coaches

Reframing individual contributions as architectural decisions and translating technical depth into business language for non-technical hiring managers

Staff / principal (12+ yrs or staff-leveled)

Target length: 2 pages, maybe 3 for unusually rich careers

Lead with

Cross-org influence, multi-year technical bets, engineering culture

Bullet focus

Company-wide technical initiatives, how you shaped the technical roadmap, where you created leverage across multiple teams

Most common mistake

Treating a staff resume like a senior resume with more experience — staff is a different frame entirely (scope, not depth)

Zari coaches

Positioning the resume for staff-level reads where hiring managers are looking for a different kind of evidence — organizational leverage, not just technical execution

5 ATS rules that determine whether your resume gets read

1

Use standard section headings

ATS parsers look for 'Work Experience', 'Education', 'Skills' — not creative variations like 'Where I've Worked' or 'Things I Know'.

2

Avoid tables, columns, and text boxes

Two-column resume layouts are popular in design templates but many ATS systems can't parse text from multiple columns correctly. Use a single-column layout.

3

Submit as PDF unless told otherwise

PDFs preserve formatting. DOCX files can reflow unpredictably. If the application says 'Word only', use Word — but default to PDF.

4

Match job description keywords exactly

If the JD says 'React.js', don't write 'ReactJS'. If it says 'CI/CD pipelines', include that exact phrase. ATS keyword matching is often literal.

5

Don't embed skills only in graphics or icons

Skills shown as icon badges or graphical meter bars are invisible to ATS — they're images. List everything in text.

Software engineer resume FAQs

How long should a software engineer resume be?

Junior and mid-level engineers: 1 page. Senior engineers: 1–2 pages. Staff and principal engineers: 2 pages, possibly 3 for unusually rich careers. The rule isn't a page limit — it's cutting anything that doesn't add signal. If your 2-page senior resume is dense with relevant, quantified accomplishments, it's fine. If it's two pages because you listed every technology you touched in 2014, cut it.

Should I include a resume objective or summary?

Only if you're making a non-obvious transition (different industry, different role type, different level). If you're a software engineer applying for a software engineering role, a summary wastes prime real estate. Lead with your skills section and experience. The exception: staff-and-above engineers where a 3-sentence leadership framing can set the read for the rest of the resume.

What should I put in the skills section?

Group by category (Languages, Frameworks, Cloud, Tools, Databases) and list only skills you could answer interview questions about. Listing a language you touched once in 2019 will hurt you when you can't answer questions about it. Order within categories by relevance to the target role — put the most important skills first.

How do I quantify achievements when I don't track metrics?

Work backwards: How many users did the system serve? What was the load? What scale did the database grow to? How long did a process take before vs. after? What was the team size? Revenue of the product? Even rough estimates with clear methodology are better than no numbers — 'approximately 50K daily active users based on monthly active user counts' is credible and informative.

Get your resume ATS-scored and rewritten by AI.

Zari scores your resume against the job description, identifies keyword gaps, and rewrites bullets at your career level — then coaches you through interviews and negotiation.

Start coaching free