Course Content
How to Write a Good Resume
15 sections · 30 lessons
Who this course is for, and what a resume can do
This course is for anyone applying to a software engineering job who wants their application read by a human being.
That sounds like a low bar. It is not. Most applications are never read closely by anyone. Not because the applicants are bad engineers — because the document they sent did not make the case in the few seconds it was given.
This lesson does two things. It tells you where to start, because you do not need all fifteen sections. And it sets the goal every later lesson works towards, because a resume that is aiming at the wrong goal gets worse the harder you work on it.
Four readers, four different starting points
You do not need all fifteen sections. Find yourself below.
| If you are | Your problem is usually | Start with |
|---|---|---|
| A student or new graduate | You have real ability and little to point at | Sections 4, 5, 8, 12 |
| A mid-level engineer (2–6 years) | Your resume lists duties, not results | Sections 5, 6, 7, 9 |
| A senior or staff engineer | Your resume under-sells your scope | Sections 5, 6, 8, 13 |
| An engineering manager | Your resume still reads like an IC's | Sections 5, 8, 12, 13 |
Everyone should read Sections 3, 7, and 9. Section 3 (The Hiring Pipeline) explains who reads your resume and what each reader wants. Section 7 (Common Mistakes) is the list of mistakes that get resumes rejected. Section 9 (Exercises to Polish Your Resume) is the set of exercises that turn reading into a better document.
What you need before starting
Almost nothing. A list of the jobs you have held, roughly what you did, and any numbers you can remember or look up — how many users, how much traffic, how long the project took, how big the team was.
If you do not have those numbers yet, start collecting them now. The lesson on quantification in Section 5 will ask for them, and they are the single biggest difference between a resume that reads as ordinary and one that reads as strong.
Reading all fifteen sections in order is fine, but it is not required, and nobody should postpone fixing their resume in order to finish a course first. Before you open your document, though, it helps to be clear about what the document is for.
A resume has exactly one job
A resume has exactly one job: get you a conversation. It cannot get you an offer, and trying to make it do more is what makes most resumes worse.
What it can do
- Get you past an automated filter so a human sees it.
- Convince a recruiter, in under ten seconds, that you are plausibly the right level and the right kind of engineer for this role.
- Convince a hiring manager, in about a minute, that a 30-minute call is worth their time.
- Shape the interview. Interviewers often pick questions from your resume, so what you put on it partly determines what you will be asked.
What it cannot do
- Prove you can code. No document can. That is what the interview is for.
- Overcome a genuine mismatch. A resume cannot make a backend engineer into a plausible machine learning hire.
- Make up for having nothing to say. If you have not done much yet, the fix is doing something, not describing nothing more impressively.
Why this matters for how you write
Once you accept that the goal is a conversation, some common advice stops making sense.
People try to make a resume complete — every job, every technology, every responsibility. But completeness is not the goal. A complete resume is a long resume, and a long resume gets skimmed harder, not read more carefully.
The goal is sufficient. Enough to make the reader want the conversation. Everything past that point is competing for space with something more persuasive.