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
Use standard section headings
ATS parsers look for 'Work Experience', 'Education', 'Skills' — not creative variations like 'Where I've Worked' or 'Things I Know'.
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.
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.
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.
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