Software Engineer Resume Guide: Skills, Bullets and Metrics
How to write a software engineer resume that gets interviews: structure, the skills section, and turning daily coding work into bullets with real impact metrics.
Most software engineer resumes describe duties: "Worked on backend services", "Developed features in React". The resumes that get interviews describe impact: what changed because of your work, and how much.
This guide covers the structure, the skills section and, most importantly, how to turn everyday engineering work into strong bullets.
Structure
- Header: name, email, phone, city, LinkedIn, GitHub (if it has real work), portfolio.
- Summary: two or three lines: level, stack and one standout result. See resume summary examples.
- Experience: reverse-chronological, three to six bullets per role.
- Skills: grouped (see below).
- Projects: essential for freshers and career changers; optional for senior engineers.
- Education and certifications.
Keep it to one page for under about 8–10 years of experience, two pages above that. Use a single-column, ATS-friendly format: many engineering teams use an ATS too.
The skills section
Group skills so a recruiter can match them to the job in seconds:
- Languages: Java, Go, TypeScript, Python
- Frameworks: Spring Boot, React, Next.js, Django
- Data: PostgreSQL, Redis, Kafka, Elasticsearch
- Cloud and infrastructure: AWS (EC2, S3, Lambda), Docker, Kubernetes, Terraform
- Practices: CI/CD, observability, system design, code review
Only list what you'd be comfortable being interviewed on. Drop skill-rating bars and "proficient/familiar" labels; your bullets show depth better.
Writing bullets: the impact formula
Action verb + what you built or changed + how + measurable result.
Weak: "Worked on the search service." Strong: "Rebuilt the product search service on Elasticsearch, cutting p95 latency from 1.2 s to 250 ms for 3M monthly users."
Metrics engineers can use
You don't need revenue numbers. Engineering work produces plenty of measurable outcomes:
- Performance: latency (p50/p95/p99), page load time, query time, throughput (requests per second)
- Reliability: uptime, error rate, incidents per month, mean time to recovery
- Scale: users, requests, data volume, number of services or teams supported
- Cost: cloud spend, instance count, storage
- Speed of delivery: build time, deploy frequency, release cycle, test run time
- Quality: test coverage, bug count, escaped defects
- People: engineers mentored, teams onboarded, reviews done
If you don't have exact numbers, use honest estimates you can explain ("about 40%"), or describe scale instead ("used by every team in a 200-engineer org").
Before and after: real-world bullets
- Before: "Developed REST APIs."
After: "Designed and built 12 REST APIs in Spring Boot for the lending platform, handling 2,000 requests per second at peak." - Before: "Fixed bugs and improved performance."
After: "Profiled and fixed N+1 queries in the orders service, reducing database load 45% and checkout time by 300 ms." - Before: "Worked on CI/CD."
After: "Moved CI from Jenkins to GitHub Actions with parallel test runs, cutting build time from 25 to 8 minutes for 40 engineers." - Before: "Mentored juniors."
After: "Mentored 4 junior engineers through onboarding and code review; two were promoted within a year."
Projects that impress
For freshers, projects carry the resume. Pick two or three that show real engineering:
- Something deployed and used, even by a small group
- Something with a hard problem: concurrency, performance, a tricky data model
- Something that matches the stack in the job description
For each: name, stack, two bullets on what it does and what you solved, and a link to the code or live demo.
Common mistakes
- Listing every technology you've touched
- Bullets that describe the team's work, not yours ("we" instead of what you did)
- No numbers anywhere
- Two-column templates that confuse applicant tracking systems
- Typos in technology names (Javascript, Postgre, Kubernates). Recruiters notice.
Tailor it per role
A backend role and a full-stack role want different first bullets. Match the stack and keywords in each posting; see how to tailor your resume to a job description. Then check how it reads with the free ATS check.
Preparing for interviews too? Read our system design interview guide and Python interview questions.