Backend, frontend, ML, mobile, infra. Build a CV the ATS reads cleanly, with bullets that quantify production impact and a skills block that mirrors the JD without the noise.
Reverse-chronological work history is non-negotiable for engineering roles. Recruiters scan title, company, dates, and stack before they read prose. Put the stack inline with each role (Python, FastAPI, Kafka, AWS) rather than buried in a global Skills block.
A Projects section is mandatory if you have under 3 years of work history. Three substantial open source or side projects with quantified usage (stars, downloads, MAU) outrank one summer internship every time.
Skills should be deduplicated and grouped: Languages, Frameworks, Infrastructure, Tools. Don't list Git in 2026. Don't repeat skills that already appear in your experience bullets. Do include canonical names: 'AWS (Amazon Web Services)', 'GCP (Google Cloud)' so ATS regex matches both.
Pattern: strong verb, system or artifact, quantified outcome. 'Built X' is weaker than 'Built X handling 12k req/s' is weaker than 'Built X handling 12k req/s while cutting p99 latency 38%'.
Land one JD keyword per bullet, naturally. The keyword filter step in most ATS engines counts hits across the document, not within a single bullet, so spreading keywords across multiple bullets is the right pattern.
Capping at 22 words per bullet keeps you readable to a 7-second recruiter scan and to the parsers that drop content past 80 characters in summary lines.
Reverse-chronological, single column, with stack inline per role and a Projects section if you have under 3 years of work history. Two pages is fine past 8 years of experience, one page is preferred under that.
Only if it's specific. 'Senior backend engineer with 9 years building distributed systems at Stripe and Cloudflare, specialised in payments and Kafka' is worth the 3 lines. 'Results-driven engineer with passion for excellence' is a 2-point score hit.
All of them, with depth proportional to recency. Recent roles get 5-6 bullets. Roles older than 8 years get 1-2 bullets. Anything older than 15 years can be summarised as 'Earlier experience available on request'.
Yes, as their own block when material. Maintainer of a 5k-star repo is worth its own line. Drive-by typo PRs to popular projects are noise and should be skipped.
No. List languages you'd be comfortable interviewing in. Pad the list and you'll get filtered into an Elixir round you can't pass. Be honest, the recruiter will be later.
Name the system, name the constraint you worked around, name the metric you moved. 'Reduced ETL job time from 4h to 22m by rewriting the join strategy on a 3B-row table' beats 'Optimised data pipelines for performance' every time.
Upload a PDF or DOCX. See the bullets the parser misses.
Check my resume →