What the new grad's resume does right
This resume lists one internship with no bullets under it and no other work experience. It still passed the screen at all 9 companies, and the Projects section is why.
- Each project is a system: A distributed key-value store, an operating system kernel, and a database engine. These are the hard parts of the job a backend team hires for, and a screener knows what each one involves.
- Each bullet names the hard part: "Implemented Multi-Paxos from scratch, guaranteeing linearizability under partitions and 20% packet loss" tells an engineer exactly what was built and how it was tested. Compare "Built a distributed database using Java," which could describe a weekend tutorial.
- The keywords are bold: Multi-Paxos, shard rebalancing, write-ahead logging, strict 2PL, crash recovery. A recruiter skimming for systems experience finds it in a second, and so does an applicant tracking system.
- The skills match the projects: Every skill listed (C, C++, Java, POSIX, multithreading, Paxos, two-phase commit, GDB) shows up again in a project bullet. Nothing is there just to fill the line.
- Coursework with grades supports the same claim: For a student, "Operating Systems (A), Distributed Systems (A), Database Internals (A)" is evidence for the same story the projects tell.
The internship carries no bullets, which commonly means it hadn’t started at the time of applying. Add 2 lines on what you shipped once an internship ends, since production work is the one thing course projects can’t show.
Keep it to one page unless you have more than roughly 10 years of relevant experience. Recruiters read the top half closely and skim the rest.
Use a plain, single-column layout. Two-column templates, icons, skill bars and photos make the resume harder to read, and some applicant tracking systems parse them badly. A clean Google Docs or LaTeX template covers everything you need.
Order the sections by what's strongest for your level:
- Students and new grads: Education, Skills, Experience, Projects. Put Projects above Experience if your projects are stronger, as in the new grad's resume above.
- Engineers with experience: Experience, Skills, Projects (optional), Education. Education moves to the bottom and loses the coursework.
Skip the objective statement. A 2-line summary works for career changers and for senior engineers framing a specialty. Most software engineers don’t need one.
Save it as a PDF with your name in the file name.
How to write software engineer resume bullets
A good bullet has 3 parts: what you did, how you did it, and what changed because of it.
[Action verb] + [what you built or fixed] + [the technical approach] + [the result, in numbers when you have them]
Some rewrites:
| Weak | Strong |
|---|
| Worked on the payments backend | Cut payment API p99 latency from 800ms to 120ms by moving fraud checks to an async queue (Kafka, Go) |
| Wrote unit tests | Caught 12 regressions before release with 40 integration tests for the checkout flow (pytest), now run on every deploy |
| Built a chat app | Built a WebSocket chat service handling 10K concurrent connections on one node; load-tested with k6 |
These rules apply at every level:
- Start with a strong verb: Built, designed, cut, migrated, shipped, replaced, debugged. Avoid "responsible for" and "helped with."
- Name the technology inside the bullet: “Using Redis” in a bullet is proof, and “Redis” in a skills list is only a claim.
- Use numbers that describe the system: Latency, throughput, users, data size, cost, error rate, test coverage. If you don't have a business metric, a technical one is just as good.
- Keep each bullet to 1 or 2 lines, and 3 to 5 bullets per role. Put the most impressive one first.
- Write about your own work. "We migrated the monolith" hides what you did. "Migrated the billing service out of the monolith" doesn't.
What to put in your skills section
List the languages, frameworks, tools, and systems you could be interviewed on. Group them by type (languages, frameworks, databases, infrastructure) so a recruiter can scan for a match.
Leave out:
- Skills you used once in a tutorial. If it's on the resume, it can come up in the interview.
- Ratings, stars, and progress bars. "Python: 4/5" means nothing to a recruiter.
- Soft skills like “teamwork” or “communication.” Show those in your bullets.
- Basics everyone has, like Microsoft Office or "Windows."
Projects: how to make them count
For students and new grads, the Projects section decides the resume. For experienced engineers it’s optional, and worth including when it shows something your job doesn’t.
Pick projects that are hard in a way you can explain. A course project that implements Paxos or a database's crash recovery says more than a polished to-do app, because the interviewer knows what it takes. Personal projects with real users are just as strong; give the number.
For each project, write the stack next to the name and 2 or 3 bullets on the hardest challenges you solved. Link a GitHub repo or live demo only when the code is clean and the demo runs.
Software engineer resumes by level
What leads your resume changes with your level, and so does what you cut to make room for it. The 3 rows below cover the standard splits.
| Level | What leads the resume | What to cut |
|---|
| Interns and new grads | Education first, with GPA if it's 3.5 or higher (or your major GPA, when that's higher), then internships, then 2 or 3 strong projects. Hackathons, research and teaching assistant roles count as experience. | Nothing yet. Keep relevant coursework to one line. |
| Mid-level engineers | Experience, with each role showing growing scope: features you owned end to end, systems you designed, on-call and reliability work, and the impact in numbers. | Coursework, GPA, and most projects. |
| Senior and staff engineers | Scope beyond your own code: systems you designed, migrations you led, engineers you mentored, and decisions that changed how the team works. | Education details, and any project that doesn't show scope your job can't. |
At the senior and staff level, one bullet carries more than a technology list. “Led the move from a monolith to 12 services across 3 teams, cutting deploy time from 2 hours to 10 minutes” names the scope, the coordination, and the result.
Common software engineer resume mistakes
These 5 mistakes appear across resumes at every level, and recruiters screen on all of them within the first skim.
- Listing duties in place of results. “Maintained the CI pipeline” says what your job was. "Cut CI time from 25 to 8 minutes by parallelizing the test suite" says what you did.
- Too many technologies. A list of 30 skills tells a recruiter you have depth in none of them.
- No numbers anywhere. Even rough figures ("about 2,000 users", "3x faster") make a bullet concrete.
- The same resume for every job. Reorder skills and lead bullets to match each posting's stack. A backend role and a frontend role should see different top bullets.
- Typos and inconsistent formatting. Dates, tenses, and punctuation should match from top to bottom. Read it out loud once before sending.
Frequently asked questions
How long should a software engineer resume be?
A software engineer resume runs one page for most engineers, including everyone with under 10 years of experience. Senior and staff engineers can use 2 pages when every line earns its place.
Should I put my GPA on my resume?
As a student or new grad, include your GPA if it's 3.5 or above, or show a stronger major GPA or recent-terms GPA. After your first full-time job, take it off.
Do I need a summary or objective?
A summary or objective is unnecessary unless you’re changing careers or framing a specialty. Use the space for another strong bullet.
Do software engineers need a cover letter?
Software engineers rarely need a cover letter at big tech companies, where most applications don’t ask for one. At startups and smaller companies, a short note naming why you want that specific job can help.
How do I get past applicant tracking systems?
Use a single-column layout, standard section headings and a PDF exported from a text editor (not a scanned image). Use the posting's own words for skills you have, so "Kubernetes" in the job description matches "Kubernetes" on your resume.
See more software engineer resumes
The 6 resumes in this guide come from a collection of more than 2,000 real software engineer resumes, all shared by candidates who got the interview. You can browse them by company and level:
Once your resume gets you the interview, prepare for it with our software engineering interview course and system design course. For Google specifically, see how to write a resume for Google.