Software Engineer Resume Guide
A practical, no-fluff guide to writing a SWE resume that clears ATS filters, signals the right seniority, and gives engineering managers exactly what they need to shortlist you — at every level from junior to staff.
The core problem with most SWE resumes
Most software engineering resumes read like a list of things the candidate did rather than a record of what they achieved. Hiring managers scan 30–50 resumes per role in under 10 minutes total. Passive language, missing metrics, and bloated skill lists all get you filtered — before a human even reads your resume.
The goal of this guide is to help you write bullets that demonstrate ownership and impact, choose keywords that clear ATS systems, and calibrate the signal-to-noise ratio for your specific level.
1. Format and length
Length: One page if you have fewer than 10 years of experience. Two pages if senior or principal. Three pages is almost always too long unless you are a researcher with publications.
ATS compatibility: Use a single-column layout. Avoid tables, text boxes, graphics, and unusual fonts — ATS parsers choke on them. Save your resume as PDF but verify the text is selectable (not a scanned image).
Section order (experienced): Contact → Skills → Experience → Projects → Education. Lead with skills because an engineering manager scanning your resume wants to know your stack before reading your history.
2. Technical skills section
Group your skills by category — don't dump a random comma-separated list. Common categories:
- ›Languages: Python, TypeScript, Go, Java, Rust, C++, SQL
- ›Frameworks & libraries: React, Next.js, Node.js, FastAPI, Spring Boot, Django
- ›Infrastructure & cloud: AWS, GCP, Docker, Kubernetes, Terraform, CI/CD
- ›Data & databases: PostgreSQL, Redis, MongoDB, Kafka, Spark
- ›Practices: TDD, REST APIs, GraphQL, microservices, distributed systems, Agile
3. Writing impact-driven bullets
Every bullet should answer: what did you build/change, at what scale, and what happened because of it? The formula that works:
Bullet formula
Action verb + what you did + technology/context + measurable result
Examples: turning weak bullets into strong ones
Worked on the checkout flow using React.
Rebuilt the checkout flow in React with optimistic UI updates, reducing cart abandonment by 23% and cutting load time from 4.1 s to 0.8 s.
Responsible for microservices architecture.
Architected decomposition of a 600 K-line monolith into 14 services, reducing average deployment time from 4 hours to 12 minutes and enabling 3× faster feature delivery.
Improved database performance.
Identified and resolved N+1 queries in the reporting pipeline; query latency dropped from 8 s to 140 ms, unblocking daily reporting for 200+ internal users.
If you genuinely cannot measure the impact, at least include scope: team size, system scale (requests/sec, users, data volume), or business context. "Maintained real-time data pipeline processing 50 M events/day" is much stronger than "maintained a data pipeline."
4. Projects and open source
A dedicated Projects section is valuable at any level but especially for candidates with limited professional experience. For each project include:
- ›Project name + GitHub link (make it hyperlinked)
- ›One-line description of what it does
- ›Tech stack (briefly)
- ›Scale or traction if applicable (stars, users, load)
5. Keywords ATS systems look for
ATS systems score your resume by matching keywords from the job description. Paste the job description into ResumeScan to see exactly which keywords you're missing. In general, the highest-signal terms for SWE roles are:
Mirror the exact phrasing from the job description where possible. If the JD says "Amazon Web Services" write that rather than just "AWS" — ATS systems often look for exact phrases.
6. What different interviewers look for
Calibrating your resume to your reader is one of the highest-leverage changes you can make. Here is what each audience actually scans for:
HR screener
- ›Job title match (does it resemble the role they're hiring for?)
- ›Years of experience (meeting the stated minimum)
- ›Required technologies explicitly listed
- ›No red flags (unexplained gaps, poor formatting)
Engineering manager / hiring manager
- ›Ownership signals — did you lead, own, or drive? Or just help?
- ›Scope and scale — how big were the systems you worked on?
- ›Cross-functional work — did you work with product, design, data?
- ›Career progression — are levels and titles moving in the right direction?
Senior IC / staff engineer / tech lead interviewer
- ›Evidence of systems thinking and architecture
- ›Complexity handled — large-scale, distributed, high-availability?
- ›Trade-off language — do bullets hint at decisions and rationale?
- ›Depth vs. breadth — staff engineers want depth; generalist roles want breadth
7. Level-specific guidance
Junior (0–3 years)
- ›Lead with education if it's from a well-regarded program
- ›Include internships, co-ops, and academic projects with real tech stacks
- ›Show GitHub activity — contributions > empty repos
- ›One page, no exceptions
Mid-level (3–7 years)
- ›Education moves to the bottom
- ›Every bullet needs a metric or scope indicator
- ›Demonstrate ownership of at least one significant feature or system
Senior / Staff (7+ years)
- ›Show influence beyond your immediate team (tech decisions, mentoring, cross-team projects)
- ›Include architectural and organisational impact
- ›Two pages acceptable; every line must earn its space
- ›Remove entry-level work details — summarise early career in 1–2 bullets
8. Common mistakes to fix right now
- ›Passive language: "Responsible for", "Worked on", "Assisted with" — replace every one with a strong action verb
- ›Skill-list padding: listing every library you've touched once destroys credibility with technical reviewers
- ›No metrics: if every bullet ends at what you did (not what happened), you're leaving points on the table
- ›Outdated items: remove GPA after 3+ years; remove 'References available upon request' (always assumed)
- ›One resume for every job: tailoring your resume to each role's keyword set is the single highest-ROI activity in job searching
- ›Not matching the job description: paste the JD into ResumeScan to find exact keyword gaps
Ready to put this into practice?
Upload your résumé and get a free, audience-calibrated score — no sign-up needed.
Analyze my résumé free