Software engineer resume tips — 12 rules that actually move the needle.
Generic resume advice does not work for engineers. Three different filters read your CV: ATS, HR, hiring manager — each looks for different signals. These 12 rules are calibrated for what each filter actually weighs, ranked by impact.
TL;DR — the 4 highest-leverage rules
- Format — single-column PDF, no boxes, no images. Boring beats clever.
- Words — mirror the JD’s exact keywords (Kubernetes, not K8s).
- Verbs— “I owned and shipped”, not “I worked on”. Tone tells seniority before content does.
- Numbers — quantify scope, latency, scale, dollars, users. Vague bullets read as filler.
Save as a single-column PDF, no boxes or images
Tables, multi-column layouts, text boxes, and embedded images break ATS parsing. The ATS extracts plain text and scores keyword overlap. If your skills are in a sidebar box, the ATS may not see them at all. Single-column with standard section headings is boring and effective.
Mirror the job description’s exact keywords
The ATS does not understand synonyms reliably. If the JD says "Kubernetes", write "Kubernetes" — not "K8s", not "container orchestration". This is alignment, not stuffing. The recruiter who reads next will not penalize you for matching the role’s language.
Use active voice with ownership
Passive bullets read junior. Active bullets read senior. The verb signals your level before the reader processes the rest of the sentence.
Before
Worked on a payment processing system that handled high traffic.
After
Designed and shipped a payment processing pipeline handling 40k requests/day, with sub-200ms p95 latency.
Quantify impact in every bullet
Numbers anchor the bullet to reality. Without them, every bullet reads as a vague claim. Latency, scale, throughput, dollars saved, users served, deploy frequency — pick whichever is honest and concrete.
Before
Improved system performance significantly.
After
Cut p99 latency from 1.2s to 280ms by replacing the synchronous fan-out with a queue-backed worker pool.
Put your GitHub link in the header — and clean it up first
The hiring manager will open your GitHub. A few empty repos, no READMEs, no recent activity — all of that hurts you more than not linking GitHub at all. Pin 3-4 strong repos, write a real README for each, make sure the langs match what your CV claims.
List 8 to 12 skills, no "Familiar with…"
A 25-skill list signals inflation, not range. "Familiar with…" signals the candidate has barely touched it. Pick the 8-12 you have used in production. Match the JD vocabulary exactly.
Apply rules 1-6 in 60 seconds
Run your CV through the analyzer against the actual job. You get the missing keywords with point values, format flags, tone audit, and prioritized fixes — free.
Run free check →One page until 10+ years of experience
Two pages with under 10 years of experience reads as inflated. The hiring manager skims — every line should signal. Cut everything that does not show ownership, impact, or relevant technology.
Use standard section headings
Experience, Education, Skills, Projects. Not "My Journey", not "Tech I Love", not "Things I Have Built". The ATS maps content to fields by recognizing these labels. Creative headings risk skipping fields entirely.
For juniors and switchers, the Projects section is the strongest section
Two or three live projects with READMEs, deployed where reviewers can see them, in a stack the JD requires. Each project: one-line problem statement + your technical choice + outcome. Tutorial clones and abandoned starters do not count.
Make your title match the role you are applying for
If you are applying for "Backend Engineer" but your CV header says "Full-Stack Generalist", you create instant mismatch. Title alignment is one of the first things the recruiter scans. Adjust within honesty: pick a real prior title that matches the target role most closely.
Match seniority signals to the role level
A senior CV that reads junior loses to a clearly-senior peer. "I owned and shipped" vs "I helped build" reads two levels apart. Audit every bullet for the verb. If you led the work, say so. If you supported it, do not over-claim — but do not undersell either.
Verify against the specific job before submitting
A CV optimized for one job is not optimized for the next. Before clicking submit, run an ATS+human check tailored to that role. The fix list is small and concrete: usually 3-5 missing keywords plus one or two phrasing improvements. Iterate per job, not per quarter.
Related
About the author
Lenny Garnier — junior software engineer, founder of RejectCheck. These rules come from 200+ rejections during my own job search and the patterns I extracted while building the tool.
FAQ
Are these tips for juniors or seniors?
Both. Format and ATS rules apply equally. Tone and seniority signaling differ — juniors should focus on tip 9 (Projects section) and tip 3 (active voice). Seniors should focus on tip 4 (impact metrics) and tip 11 (seniority signals matching the role).
How long should a software engineer resume be?
One page until you have 10+ years of relevant experience. The hiring manager will not read more. Every line should justify its space — if a bullet does not signal ownership, impact, or relevant tech, cut it.
Should I use a creative resume template?
No. Single-column, standard headings, no images, no text boxes. Creative templates break ATS parsing and signal "compensation" to recruiters. Boring beats clever in this medium.
How do I make a junior engineer resume stand out?
Projects section. Two or three live projects with READMEs, deployed somewhere, in the stack the JD requires. Tutorial clones do not count. The Projects section is where juniors build the technical signal that years of experience would normally provide.
How do I quantify impact when my work was small?
Anchor to anything measurable: number of teammates, number of internal users, lines of code reviewed per week, time saved per week, deploys per week. "Reduced deploy cycle from 4h to 30min" is a metric. "Improved team velocity" is not.
What is the most overlooked tip?
Cleaning up GitHub before applying. The hiring manager will open it. A few empty repos, no READMEs, and the last commit two years ago weakens the entire CV regardless of how well-written the rest is.
Apply the 12 rules. Verify against a real role.
60 seconds. Tailored to one specific job. Free.
Run free check →