Jump to content

Take-Home Tests, Whiteboards, and Other Hiring Rituals That Measure Nothing

Industry Opinions Garrett Marlowe

What a Coding Interview Must Actually Measure

Which interview exercise shows how someone will work on your codebase without mostly testing spare time, nerves, or recall?

The useful answer is fairly plain: assess representative work, give every candidate the same bounded prompt, permit ordinary developer tooling, and score observable decisions. Interviewer intuition is a poor substitute for an explicit rubric, however experienced the interviewer feels.

A standard four-to-five-hour onsite loop often rotates candidates through disjointed brainteasers. That creates plenty of activity and surprisingly little comparable evidence. One bounded problem can expose more: how the candidate reads unfamiliar code, verifies assumptions, weighs risk, communicates uncertainty, and changes course when evidence contradicts the first diagnosis.

Ritual, Proxy, Replacement

  • Take-home assignments reward available time. Replace them with a short review of supplied code.
  • Whiteboards reward composure and rehearsal. Replace them with a runnable debugging task.
  • Trivia rounds reward recall. Replace them with one role-specific judgment call.
  • Unconstrained system design rewards practiced narration. Replace it with a bounded change to a modest service.

Score Decisions

Write down the evidence you want before anyone meets the candidate. “Strong engineer” is a mood. “Identified the missing timeout and explained its operational consequence” is evidence.

When “Two Hours” Eats the Weekend

Open-ended homework masquerading as a quick task has a predictable expansion path. The repository needs setup. Expectations remain vague. The candidate adds tests, documentation, cleanup, and visual polish because nobody has explained what “finished” means. An edge case left unresolved may look like sensible time management to the author and incompetence to the reviewer.

Assignments scoped by their authors for two hours routinely become eight to twelve hours of weekend work. The format starts selecting for discretionary time, tolerance for unpaid labor, familiarity with the chosen stack, and skill at guessing the reviewer’s private preferences.

A cleaner replacement takes about 30 minutes: supply a pull request and ask the candidate to review it. Another reasonable option is a candidate-led walkthrough of existing work they are permitted to discuss. Both formats keep the conversation on decisions, constraints, and consequences.

Cap the Surface

Provide the code, environment instructions, task boundary, and scoring categories. If preparation can keep expanding, the time limit exists only on paper.

Debugging Under a Spotlight Distorts the Work

Production development usually happens with an editor, tests, documentation, a terminal, and occasional silence. Live coding often replaces that environment with continuous narration while several people watch someone remember syntax. The interview then measures stage performance alongside engineering ability, with no reliable way to separate the two.

A blank whiteboard can expose reasoning. It also amplifies nerves, interviewer interruptions, handwriting demands, and familiarity with puzzle conventions.

Use a tiny runnable repository instead. Roughly 15 files is enough. Include one failing integration test and a misleading stack trace that points toward a database driver while the actual defect sits in a malformed payload. Let the candidate use an IDE, terminal, search, and documentation. Watch whether they reproduce the failure, inspect inputs, challenge the stack trace, and narrow the fault.

Live pressure still belongs in interviews for site reliability engineers or incident commanders who will debug outages on a bridge call. Applying the same stress to ordinary feature development manufactures panic rather than useful signal.

Keep Real Tools

Tool use is part of the job. Removing tools tests memory while concealing how a candidate gathers evidence.

Trivia Scores Memory Better Than Engineering Judgment

Framework minutiae, algorithm recitation, command flags, and gotcha questions are easy to administer. They also drift quickly from day-to-day engineering judgment. Candidates who studied your preferred trivia perform well; candidates who would verify an API name in documentation lose points for behaving normally.

Foundational knowledge still matters. A backend engineer should understand the consequences of blocking work, unsafe shared state, unbounded retries, and missing validation. Exact syntax can be checked later.

Ask one scenario deeply. Present a REST API with a 400ms latency spike and ask where the candidate would look first, what measurements would distinguish application delay from database delay, and which change would be risky during an incident. For a concurrency-heavy role, use a roughly 50-line worker-pool implementation with unsafe shared state and request a review.

The advanced signal appears when the candidate explains what evidence would change the diagnosis. Certainty without a verification plan is usually rehearsal wearing a serious expression.

System-Design Theater Rewards the Right Nouns

“Design a global platform” invites a familiar performance: queues, caches, shards, streams, and several databases arrive before the requirements do. The candidate can name an impressive architecture without showing why any component belongs.

We initially used a global ride-sharing backend prompt to explore scale. We dropped it after realizing that scoring largely tracked familiarity with architecture posts from major technology companies. A reliable webhook retry mechanism for an existing monolith produced better discussion about database transactions, duplicate delivery, backoff, and operational recovery.

Bound the service and its constraints. Give the candidate a system handling around 50 requests per second, a 99th-percentile latency requirement of 200ms, and one relational database. Then ask for a specific change: add retries to a job processor, introduce an audit trail, or survive a dependency outage.

Now vocabulary has to earn its place. If the candidate proposes a queue, ask which failure it contains. When they add a cache, ask what becomes stale. If they split the database, ask which observed constraint justifies the operational cost.

Charge Every Component

Treat each new service as a cost requiring a concrete reason. Architecture diagrams become much more honest when complexity carries a bill.

An 80-Minute Backend Interview a Small Team Can Copy

Consider a small team hiring a backend engineer for an existing service. The team needs evidence about code review, debugging, and bounded design. It does not need a miniature conference talk.

Prepare the Evidence

Create a short pull-request diff with a missing timeout, weak error handling, and a test that skips the failure path. Keep the code small enough to read during the session. Prepare a one-page incident brief describing increased API latency after a deployment.

Before the interview, send the schedule, permitted tools, evaluation categories, and a direct invitation to request an accessible alternative. Send no surprise homework.

Image showing backend interview schedule

Run the Session

  1. Minutes 0–5: Confirm the format and tools. Explain that the candidate may think silently, consult documentation, and ask clarifying questions.
  2. Minutes 5–30: Review the prepared pull request. Ask the candidate to identify risks, rank them, and suggest the smallest safe revision. Score whether they catch the missing timeout, weak error path, and absent failure test.
  3. Minutes 30–50: Hand over the latency brief. Ask for an investigation plan before discussing fixes. A solid path checks the deployment change, separates application and database timing, and defines evidence that would rule out each hypothesis.
  4. Minutes 50–70: Add one requirement: failed outbound webhooks must retry without creating duplicate effects. Have the candidate place state, define retry behavior, and explain recovery after a process crash.
  5. Minutes 70–80: Let the candidate question the team and the service. Interviewers then record evidence independently before discussing a recommendation.

For a copyable scoring record, write three lines: “Found the timeout risk and requested a bounded value”; “used the deployment timeline to order the latency investigation”; “stored webhook delivery state transactionally and required idempotent handling.” Those statements give the hiring panel concrete work to judge, one decision at a time.

Never Miss an Update

Fresh insights every week.

No spam. Unsubscribe anytime.

Your Thoughts

Share your thoughts.

Join the Discussion

Customise cookies