PlainResume

Software Engineer Resume Guide: Stack Fit, Scope, and Shipped Impact

A practical guide from the team behind PlainResume, the free resume builder.

An engineering resume gets two very different readers: a recruiter spending ten seconds matching keywords, and an engineer spending sixty judging what you actually built. Most resumes fail one audience or the other โ€” a keyword wall that makes engineers wince, or elegant prose the ATS never surfaces. The fix is a division of labor: the skills section serves the recruiter, the bullets serve the engineer, and neither tries to do the other's job.

Skills: group by fluency, not alphabet

โœ— "Java, Python, C, C++, JavaScript, TypeScript, HTML, CSS, React, Angular, Vue, Node, Django, Flask, Spring, MySQL, MongoDB, Redis, Docker, Kubernetes, AWS, GCP, Git, Jira, Agile"

โœ“ "Daily: TypeScript, React, Node, PostgreSQL, AWS (ECS, Lambda) ยท Working knowledge: Go, Redis, Terraform"

Twenty-five technologies reads as padding to every engineer who's interviewed anyone โ€” nobody is fluent in all of that, so the list stops being believable exactly where you needed it to be. Eight to twelve, split by honesty tier, does more: recruiters still get their keywords (use the posting's exact terms for the stack you really use), and engineers get a claim they can trust. Two small tells they notice: correct names (PostgreSQL, GitHub, Node.js) and no filler rows โ€” an IDE, an OS, and "Agile" are not skills.

Bullets: the system, your part, the number

The unit of engineering work is not the ticket โ€” it's the system that changed. Every strong bullet names the thing, your role in it, and what moved:

โœ— "Worked on backend services using Node.js and improved performance."

โœ“ "Built the rate-limiting service (Node, Redis) that now fronts all public APIs; abusive traffic down 90%."

โœ— "Fixed bugs and participated in code reviews."

โœ“ "Profiled and rewrote the search indexer, cutting p95 latency from 800ms to 120ms across 2M daily queries."

The verbs carry your level, so scope them honestly (the action-verbs rule): built and owned claim more than contributed to, and an interviewer will probe exactly that line. Numbers don't need to be revenue โ€” latency, throughput, error rates, incident counts, on-call load, team size on the thing you led. And engineering's special hazard, buzzword inflation, is a one-way ratchet down: call a CRUD app "AI-powered" and the reader discounts every other line.

Projects: for juniors, this is the experience section

Early-career engineers live and die on projects (the first-resume problem), and the bar is simple: deployed beats tutorial. One real thing with users โ€” even twelve users โ€” outweighs three todo-app clones, because it generates real bullets: what broke, what you measured, what you changed. Write project bullets exactly like job bullets: the system, your part, the number. Link GitHub only if the repo is presentable โ€” a README, recent commits, code you'd defend live. An abandoned fork farm subtracts; no link is neutral, and working engineers whose code is all private can skip it without apology.

The rest, quickly

Plain by design โ€” like your resume should be. PlainResume builds clean single-column resumes with a live page count and a health check that flags buzzwords and number-free bullets. Free, no sign-up, no paywall on the PDF; everything stays in your browser.

Build your engineering resume free โ†’

Frequently asked questions

How many skills should I list?

Eight to twelve, grouped by fluency ("daily" vs "working knowledge"), mirroring the posting's terms for the stack you genuinely use. Every listed skill is an interview invitation.

Do I need a GitHub link?

Only if it shows real, recent work you'd defend in an interview. An empty profile subtracts; no link is neutral โ€” especially for engineers whose work is private.

One page or two?

One page for roughly the first decade; prune older roles as new ones land. Seniors with distinct systems or publications can earn a second page.