SevyDevy

Design an in-process background job service

PremiumMachine codingHard

  • Job queue
  • Visibility timeout
  • Exponential backoff

Quick answer

This machine coding interview question asks you to design an in-process background job service. Aim for a design that meets its requirements at the stated scale, then explain its main components, data flow and trade-offs. Interviewers want to see how you scope the problem, size it and defend each choice.

The problem

Build an in-process background job service, a small version of the job libraries web apps use to send emails or resize images later. Code enqueues typed jobs; worker threads run them by priority. The hard part is that workers crash or hang, so every claimed job needs a lease, retries and a way to spot stuck work.

You may use a coding assistant. Keep a short PLAN.md, commit after each working step, and write concurrency tests. At minute 70 the interviewer adds a new requirement.

What must an in-process background job service do?

  • Enqueue: enqueue(type, payload, {priority, runAt?, maxAttempts = 5}) returns a job id; priority is HIGH, MEDIUM or LOW, and runAt delays the job.
  • Leases: a claim gives the worker a 30-second lease and a lease id; heartbeat renews it, and an expired lease returns the job to the queue as a failed attempt.
6 more requirementsUnlock to see all

How well must it do it?

  • No lost or doubled work: Each job is held by at most one live lease, and a worker whose lease expired cannot complete the job.
  • No starvation: A LOW job waiting more than 2 minutes is treated as MEDIUM, and a MEDIUM job waiting 2 minutes as HIGH.
2 more requirementsUnlock to see all

What scale should you design for?

Use these numbers in your estimates.

The scale numbers unlock with this questionUnlock

Key concepts

  • Job queue
  • Visibility timeout
  • Exponential backoff
  • Dead letter queue
  • Priority scheduling
  • Lease renewal

How you’ll practise

6 short steps · save and come back any time
  1. Requirements
  2. Entities and interfaces
  3. Core implementation
  4. Edge cases and tests
  5. Extensions
  6. Wrap-up

Lala, personalized to you, gives a hint when you ask and reviews your design when you are ready.

What do interviewers look for?

In any machine coding design round.

  • Clarifies the requirements before drawing anything
  • Uses a few numbers that actually change the design
  • Draws a clear path from the client to storage
  • Picks storage and caching with reasons, not by habit
  • Explains what breaks first under load and how to fix it
  • States trade-offs openly instead of claiming a perfect design

Questions people ask about this interview question

Which design type is this question?
It is a machine coding question. You design an in-process background job service and explain your choices the way you would in an interview.
Is this question asked at entry level?
It is marked Hard. It suits engineers preparing for senior interviews, where you are expected to drive the discussion and go deep on trade-offs.
What should I cover first?
Start with the requirements: what the system must do, how well it must do it and which numbers change the design. Agree on scope with the interviewer before you design anything.
Can I practise it for free?
It is a premium question. Sign up and unlock it once for 10 credits; it then stays unlocked. When you finish, Lala, your personalized AI mentor, can review your design for 30 credits.

Related questions

Updated · Written by the SevyDevy team

Premium questionSign up free, then unlock it