AI-powered resume tools for students & job seekers Free to start No credit card Trusted by job seekers
ReachRole Your Career. A Step Ahead.

Backend Developer project

Build a background job queue with retries and a dead-letter list

An API that accepts jobs and processes them asynchronously — the retry and failure-handling logic is the actual test, not the happy path.

8-11 hoursEstimated time
IntermediateDifficulty
5Graded criteria
RepoWhat you submit

The brief

Build a small job queue: an API endpoint accepts jobs (e.g. "send email" with a payload), a separate worker process pulls jobs off the queue and processes them, failed jobs retry with exponential backoff up to a limit, and jobs that exhaust retries move to a dead-letter list you can inspect. Use Redis with BullMQ, or a DB-backed queue table if you don't want a Redis dependency.

Suggested stack

Node.js or any backend framework Redis + BullMQ, or a DB-backed queue table

What you hand in

  • A public GitHub repository with the API, the worker, and a README
  • A README describing the architecture (how the API and worker communicate) and the retry/backoff strategy
  • A way to list dead-lettered jobs, either an endpoint or a documented query

Grading happens against the rubric below, so read it before you start — not after.

How this is graded

Published in advance and weighted out of 100. Nothing here is a surprise.

Queue correctness and idempotency 30 pts

Jobs are processed exactly once under normal conditions, and reprocessing a job (e.g. after a crash) doesn't cause duplicate side effects.

Retry and dead-letter handling 25 pts

Failed jobs retry with increasing backoff up to a defined limit, then land in a dead-letter list instead of retrying forever or vanishing.

Worker isolation from the API process 20 pts

The API responds immediately after enqueueing; job processing happens in a separate worker process/loop, not inline in the request handler.

Observability 15 pts

There's a way to see a job's current status (queued, processing, failed, dead-lettered) without reading server logs.

Finish 10 pts

No console errors or crashes, no broken layout, no leftover placeholder text or commented-out code.

Why this project is worth your weekend

  • Asynchronous processing is behind nearly every real backend feature that sends email, generates a report, or calls a slow third-party API.
  • Retry and backoff logic is where junior submissions usually stop, and it's exactly what separates a toy queue from one a team could trust in production.
  • An interviewer can kill the worker mid-job and check whether the job is lost, duplicated, or correctly recovered.

Where people lose points

  • Processing jobs synchronously inside the API request handler, defeating the entire purpose of a queue.
  • Retrying a failed job forever with no backoff or cap, which can flood a downstream service during an outage.
  • No way to inspect a dead-lettered job's payload or failure reason, so a stuck job is invisible until a user complains.

Other Backend Developer projects

Two or three of these turn an empty resume into a portfolio.

Back to the roadmap

Built it? Get it scored against this rubric.

Submit your work and get a score on every criterion above, written feedback, and three resume bullets you can use straight away.

Submit for grading Add project to your ATS resume Free to start. Grading uses one AI action.