How to Write a Developer CV (and How Not To)
Your CV reads like a package.json: a long list of dependencies and not one thing you actually built.
A developer CV is the only code you write that gets reviewed in six seconds by someone who can't read code. That's the cruel part. You can architect a flawless event-driven backend, but if your one page lists 'JavaScript, HTML, CSS' like it's 2011 and buries the migration you led under a wall of buzzwords, you lose to someone worse who wrote a clearer sentence.
The Full Truth
on a software developer's CV
You listed 12 languages as 'expert' and then described your one job as 'helped with various tasks'. Pick a lane, ideally the one that pays.
- 01
The skills section is a confession of inexperience
CriticalFourteen technologies tagged 'expert' or 'advanced', including four you used once in a tutorial. Any interviewer reads this as 'will fail the first deep question'. List 5 to 7 you'd defend under pressure, drop the rest to a single 'Familiar' line, and let your bullets prove depth instead of a bar chart.
- 02
Every bullet describes a job, not an impact
Critical'Worked on the frontend', 'helped with the API', 'involved in deployments'. These are seating arrangements, not accomplishments. Nobody learns what changed because you showed up. Rewrite each as Action plus System plus Result with a number: what you did, to what, and what measurably moved.
- 03
Zero evidence anything was ever deployed
NotableNo live URL, no repo, no PR, no scale figure. For a developer that's like a chef with no photos of food. Add one link to something real and one metric of scale (users, requests, uptime). One credible proof point beats a paragraph of self-assessment.
Worked on the company website and was responsible for various frontend tasks using modern technologies.
Rebuilt the marketing site in Next.js, cutting Largest Contentful Paint from 4.1s to 0.9s and lifting signup conversion 18%.
Skills: HTML, CSS, JS, React, Vue, Angular, Node, Python, Java, Go, Rust, Docker, K8s, AWS (all expert).
Core: TypeScript, React, Node, PostgreSQL, AWS. Familiar: Go, Docker. (No fake experts. Every 'Core' item survives a whiteboard.)
- 1Delete every adjective ('passionate', 'hardworking', 'detail-oriented') and replace the three biggest bullets with Action plus System plus Number.
- 2Trim the skills list to 5 to 7 you'd defend live, demote the rest to one 'Familiar' line, and kill any percentage or bar chart.
- 3Add one clickable proof: a deployed URL or a public repo with real commits, placed in the header where the recruiter's one click lands.
- 4Reorder the top third to mirror the target job's stack, so the first thing read is the most relevant thing you've shipped.
That was a stranger's cv / résumé. Drop yours, I will go just as hard.
One coffee, from €2,99. No mercy.
The fix is not more keywords. It's evidence. Hiring managers and the engineers they drag into the loop want three things: what you built, what broke, and what changed because you were there. Numbers over adjectives. Verbs over nouns. Below, Sally shows you the difference between a CV that gets a callback and one that gets a polite Greenhouse rejection at 11pm.
- 01Lead every bullet with a verb and end it with a number: 'Cut p95 API latency from 800ms to 120ms by adding a Redis read-through cache.'
- 02Put a 'Skills' line with tools you'd defend in a live interview, then delete everything you'd panic about being asked to whiteboard.
- 03Link one real thing: a deployed URL, a merged PR, a repo with commits this decade. Recruiters click exactly one link, so make it your best.
- 04Tailor the top third to the job posting's actual stack. If they're a Go shop, your Go work goes first, not your six-year-old jQuery saga.
- 05Show scale and ownership: 'serving 2M requests/day', 'on-call rotation of 5', 'owned the billing service end to end'. Context is what separates senior from senior-sounding.
- Listing 'Proficient in: HTML, CSS, JavaScript, React, Node, Python, Java, C++, Docker, K8s, AWS, GCP, ML, AI' so the truth (you've touched four) drowns in the bluff.
- Writing 'Responsible for maintaining the codebase' which tells me you fixed nothing, shipped nothing, and were near some code.
- A skills bar chart claiming you are '90% proficient in Git'. Proficiency in Git is a binary, and the 10% is always the rebase you're scared of.
- Pasting your entire GitHub contribution graph as a green rectangle that, on inspection, is one bot committing a README daily.
- Five lines on a bootcamp to-do app and one line on the two years you actually shipped production code that paid your rent.