Node.js backend roles are graded on things the user never sees: how the service behaves at the ninety-ninth percentile, what happens when a downstream dependency stops responding, and whether a deploy can be rolled back at four in the afternoon. A CV that only says "built REST APIs" leaves all of that unsaid.
The other thing reviewers look for is judgement about the runtime itself. Node is single-threaded per process, and the interesting stories are usually about what you did when that mattered: worker threads, clustering, streaming instead of buffering, or moving a CPU-bound task somewhere else entirely.
This example is written for a developer with five years of server-side experience in a team that runs its own services in production.
daniel.hughes@example.co.uk+44 7700 900341Bristol, United Kingdomlinkedin.com/in/example-daniel-hughesgithub.com/example-danhughes
Profile
Backend engineer with five years building Node.js and TypeScript services in e-commerce and travel. Recent work covers an order pipeline processing around 900 events a second and a latency programme that took p95 on the busiest endpoint below 150ms. Comfortable owning services in production, including on-call.
Professional Experience
Backend EngineerSeptember 2022 – Present
Wayfarer Travel Group · Bristol, United Kingdom
•Split the monolithic order service into three Fastify services over RabbitMQ, using an outbox table so events were published exactly once per committed transaction.
•Took p95 latency on the catalogue endpoint from 820ms to 140ms with a batched loader and a 30-second Redis cache using stale-while-revalidate.
•Diagnosed a memory leak in a long-lived stream consumer from heap snapshots, fixed the unbounded buffer, and added the queue-depth alert that has caught two similar backlogs since.
•Introduced OpenTelemetry tracing across four services, which made a recurring cross-service timeout diagnosable in minutes rather than days.
•Share the on-call rota and run the fortnightly incident review.
•Built the stock reservation service handling around 900 events a second during sale periods, with idempotent handlers keyed on order id.
•Replaced a nightly CSV export with a streaming pipeline, cutting peak memory use from 2.1 GB to under 200 MB.
•Migrated the codebase from JavaScript to TypeScript module by module, agreeing the order with the team rather than attempting it in one branch.
Node.js · Express · Redis · PostgreSQL · AWS SQS
Projects
outbox-kit
Author
•A small TypeScript library implementing the transactional outbox pattern for PostgreSQL and Node.js, with a poller and dead-letter handling.
•Extracted from production use and published after two internal teams adopted it.
TypeScript · PostgreSQL · Node.js
Education
BSc (Hons) Software EngineeringSeptember 2016 – June 2020
Cardiff University · Cardiff, United Kingdom
First Class Honours
Node.js Backend Developer example on the Technical layout. All details are fictional and shown for demonstration only.
What recruiters expect
Before writing anything, it helps to know what the person reading is checking for. In this field that is usually a short, specific list:
API design decisions rather than framework familiarity: error contracts, pagination, idempotency, authentication.
Real numbers - requests per second, queue depth, p95 latency - attached to the systems you name.
Message queues or event streams, and how you handled duplicates and ordering.
Observability: structured logs, traces, dashboards, and an incident you actually diagnosed.
Comfortable with TypeScript on the server; untyped Node is increasingly a hard filter.
Recommended CV structure
This is the running order the example uses. It is a starting point rather than a rule, but the order reflects what tends to be read first in this profession.
Profile — Three or four lines positioning you for the role.
Technical Skills — Grouped skills, for example "Languages" and "Tooling".
Professional Experience — Paid roles, in reverse chronological order.
Projects — Work you built, with outcomes and the stack used.
Education — Degrees, diplomas and school-leaving qualifications.
Certifications — Completed certifications with the issuing body.
Languages — Spoken languages with CEFR levels.
Sections worth adding
Open Source — A published npm package with real downloads carries weight.
Recognition — Only for engineering recognition with a named scope.
Skills worth including
Grouped rather than listed in one block. Grouping makes a long list readable and shows that you can tell the difference between the things you use daily and the things you have touched.
Beyond the technical list: Incident command, Design reviews, Writing postmortems, Cross-team API negotiation, On-call mentoring. These belong inside your experience bullets, demonstrated, rather than in a list of adjectives.
Example professional summary
Three or four lines, positioned for the role rather than describing your personality. Two versions you can adapt:
Backend engineer with five years building Node.js and TypeScript services in e-commerce and travel. Recent work covers an order pipeline processing around 900 events a second and a latency programme that took p95 on the busiest endpoint below 150ms. Comfortable owning services in production, including on-call.
Server-side developer specialising in event-driven Node.js systems. Experience with RabbitMQ, PostgreSQL and Kubernetes, and a preference for boring, observable designs over clever ones.
Writing your experience
The difference between a CV that gets a call and one that does not is almost always in the bullet points. Each pair below shows a real rewrite of the kind of line that appears on most CVs in this field.
Weak
Built microservices in Node.js.
Stronger
Split the monolithic order service into three Fastify services communicating over RabbitMQ, with an outbox table to guarantee events were published exactly once per committed transaction.
Names the consistency problem and the concrete mechanism used to solve it.
Weak
Improved API performance.
Stronger
Cut p95 latency on the catalogue endpoint from 820ms to 140ms by replacing per-item lookups with a batched loader and adding a 30-second Redis cache with stale-while-revalidate.
Percentile, before and after, and two specific techniques.
Weak
Handled production issues.
Stronger
Diagnosed a memory leak in a long-lived stream consumer using heap snapshots, fixed the unbounded buffer and wrote the postmortem that led to a queue-depth alert.
Shows the diagnosis method and the systemic fix, not just the firefighting.
Taken from the example
The sample CV for this profession is fully written. A few sections from it, so you can see the level of specificity that works:
Experience
Backend Engineer, Wayfarer Travel Group
Split the monolithic order service into three Fastify services over RabbitMQ, using an outbox table so events were published exactly once per committed transaction.
Took p95 latency on the catalogue endpoint from 820ms to 140ms with a batched loader and a 30-second Redis cache using stale-while-revalidate.
Diagnosed a memory leak in a long-lived stream consumer from heap snapshots, fixed the unbounded buffer, and added the queue-depth alert that has caught two similar backlogs since.
Introduced OpenTelemetry tracing across four services, which made a recurring cross-service timeout diagnosable in minutes rather than days.
Projects
outbox-kit — A small TypeScript library implementing the transactional outbox pattern for PostgreSQL and Node.js, with a poller and dead-letter handling.
Education
BSc (Hons) Software Engineering, Cardiff University — First Class Honours
Certifications and registration
AWS Certified Developer – Associate — Amazon Web Services
Common mistakes
Framework-first bullets
Starting every line with "Used Express to..." wastes the highest-value words on the page.
No failure stories
Backend hiring is largely about how you behave when things break. A CV with no incident, no rollback and no retry logic reads as untested.
Confusing scale with importance
Small systems done carefully are respectable. Inflating traffic figures is the fastest way to fail a technical screen.
Listing every npm dependency
Nobody is hired for knowing dotenv. Keep the list to things with real design implications.
ATS considerations
Applicant tracking systems behave differently by sector, and generic advice is often wrong for a given field. These points are specific to node.js backend developer applications:
Write "Node.js" exactly; "NodeJS" and "Node" match inconsistently across parsers.
Include both "microservices" and the specific pattern you used, such as "event-driven" or "request/response".
Name the queue technology explicitly. "Message broker" alone will not match an advert asking for Kafka.
Put p95 or p99 figures in plain text; a chart or sparkline is invisible to a parser and to a phone screen.
The Minimal ATS layout is built for this, and the ATS guide covers what parsers do to a file in more detail.
Questions about node.js backend developer CVs
Do I need Kubernetes on my CV?
Only if you have used it. Many teams run on managed container services and would rather see evidence you can operate what you build than a keyword you cannot discuss.
How technical should the summary be?
Technical enough to be filtered on, plain enough for a recruiter to repeat. Two sentences: what you build, and the most impressive concrete thing about it.
Is TypeScript expected for backend Node roles?
In most teams, yes. If your commercial work is plain JavaScript, say so honestly and show typed work in a project rather than implying otherwise.