Are take-home coding assignments worth your time

A take-home is worth it when it is scoped, paid attention to, and tied to a real loop. Here is how to tell the good ones from spec work.

By the roles.cc team··9 min read

Two-sided comparison chartAbstract roles.cc figure: Two-sided comparison chart.

A take-home is worth your time when it is scoped to a few hours, replaces a live coding round rather than adding to it, and the company tells you up front who reads it and what happens next. It is not worth your time when it is open-ended, looks like a feature on their roadmap, or arrives before a single human has spoken to you. The format is fine. The way some companies run it is the problem, and you can usually tell which kind you have within the first email.

This post is about the take-home specifically: when to do one, when to push back, how to cap your hours, and how to make yours stand out without burning a weekend. For the wider question of structuring a whole interview, see how to evaluate a startup job offer and startup system design interview prep.

When is a take-home actually worth doing?

A good take-home is a trade. The company gets a clean signal on how you write code without the performance anxiety of someone watching you type. You get to work in your own editor, on your own clock, and show judgment instead of just recall. That trade is fair when the assignment respects your time and sits inside a real process.

The clearest green flag is a hard time cap that the company means. Two to four hours is reasonable. A company that says "spend no more than three hours, and submit whatever you have at the three-hour mark" is telling you they will read for judgment, not completeness. That is a company you can trust to run the rest of the loop well.

  • It replaces a round, not adds one. A take-home instead of a live algorithms screen is a gift to most working engineers. A take-home plus four onsite rounds plus a system design is a tax.
  • A human talked to you first. A recruiter or hiring manager screen before the assignment means they have already decided you are plausible. That is when your hours are worth spending.
  • The prompt is self-contained and synthetic. Sample data, a toy domain, a clear rubric. Nothing that looks like it ships.
  • They tell you who reads it. "Two engineers will review it and we will walk through it together in the next round" is the answer you want.

When should you push back or decline?

You do not have to accept a take-home on the terms offered. The strongest candidates negotiate the format all the time, and a reasonable company will not hold a polite ask against you. If your current schedule is tight, or you are deep in multiple offers, say so and propose an alternative.

Reasonable asks that good companies say yes to:

  • Swap it for a live pairing session. "I would rather pair for an hour on a small problem than spend an evening solo. Does that work for your loop?" This is often a better signal for both sides anyway.
  • Use a work sample instead. If you have public code, an open-source contribution, or a side project, offer it. Many teams accept this in place of a fresh assignment.
  • Set the clock yourself. "I will timebox this to two hours and note what I would do with more time." Most reviewers respect a clear note over a polished-but-padded submission.

Decline outright when the request crosses from assessment into free labor. If the prompt is a real problem from their backlog, asks you to integrate with their actual production systems, or expects a polished feature with tests and docs across a weekend, you are being asked to do spec work. The tell is specificity: a synthetic take-home is deliberately generic, while spec work is suspiciously exact about their stack and their roadmap.

A fair take-home is bounded and synthetic. Spec work is open-ended and conveniently shaped like their backlog.Abstract roles.cc figure: A fair take-home is bounded and synthetic. Spec work is open-ended and conveniently shaped like their backlog..
A fair take-home is bounded and synthetic. Spec work is open-ended and conveniently shaped like their backlog.

What are the red flags?

Most bad take-homes share a few signatures. None of these is automatically disqualifying on its own, but two or more together is a pattern, and the pattern usually repeats once you are an employee.

Red flagWhat it usually meansYour move
No time cap, or "as long as you need"They will reward the candidate with the most free time, not the best engineerSet your own cap and say so in the README
Assignment arrives before any human conversationThey are screening cheaply and may never read it closelyAsk for a 20-minute call first; decline if refused
Prompt maps to their actual product or backlogPossible unpaid spec workDecline, or ask if it is paid
Asks for a full feature with tests, CI, and deployScope creep, weekend-sizedNegotiate down or pass
No rubric and no named reviewerInconsistent, possibly arbitrary evaluationAsk who reviews and how
Estimated at 8-plus hoursThey do not value your time, a preview of the jobPush for 2 to 4 hours or decline

Companies running fast, respectful loops are the same ones [hiring well after a raise](/blog/hiring-senior-engineers-after-a-raise-founder-playbook). A sloppy take-home is a sloppy team.

One more, and it is the cleanest line of all. If a company asks you to build something they could plausibly ship, the honest version of that request is paid. A short contract at your day rate is a fair way to assess senior engineers, and the good companies that do this offer it without being asked. Anyone who wants production-grade work for free is showing you how they will treat your time later.

If the prompt looks like their roadmap and arrives before anyone has spoken to you, it is spec work wearing an interview's clothes.

How do you scope your time so a take-home does not eat your week?

Assume the stated estimate is optimistic by 50 percent, because it usually is. A "two hour" assignment is a three hour assignment for most people once you read the prompt, set up the project, and write anything you would be comfortable showing. So decide your real budget before you open the editor, and hold the line.

  1. 01Read the whole prompt first, then re-read the rubric. Ten minutes here saves an hour of building the wrong thing. If there is no rubric, infer one and write it down.
  2. 02Pick a hard stop. Three hours is a sensible default for a senior take-home. Put it on a timer.
  3. 03Build the spine, not the skeleton plus skin. Get the core path working end to end before you add a second feature. A working narrow slice beats a broad half-built one every time.
  4. 04Stop at the cap and write the README. List what you did, what you skipped, and what you would do with another day. Reviewers read this. It is where judgment shows.
  5. 05Do not gold-plate. No exhaustive test matrix, no clever abstraction for a problem you do not have yet. Tidy beats impressive.

2 to 4 hr

a fair take-home budget

replacing one live round

+50%

haircut on their estimate

plan for it

1 page

README that does the heavy lifting

tradeoffs, not prose

How do you make yours stand out?

Reviewers are reading for judgment, not heroics. After the tenth submission, the ones that stand out are not the most feature-complete. They are the ones that are easy to read, honest about tradeoffs, and obviously written by someone who would be calm to work with. You get there with restraint, not effort.

  • Make it run in one command. A README with a single setup line and a single run line removes all friction. If the reviewer cannot start it in 60 seconds, your code quality stops mattering.
  • Write the tradeoffs note. Three bullets: what you optimized for, what you cut and why, what you would do next. This is the single highest-leverage thing in the whole submission.
  • Commit in small, sane steps. A clean git history reads like a thought process. Reviewers do look.
  • Match the rubric, not your ego. If they asked for a working CLI, ship a working CLI. Do not build a web UI nobody requested.
  • Name your assumptions. "I assumed inputs fit in memory" shows more seniority than silently handling a case they never asked about.

If you want a faster read on where your application materials stand before you even reach the take-home stage, you can score your resume against the roles you are targeting. A take-home is most worth doing when the role behind it is worth doing, and that is the upstream question. Browse roles.cc sorted by funding recency to spend your assignment hours on companies that just raised and are actually staffing, not ones running loops out of habit. The recent raises page is the same signal in one view.

Pay, companies, open roles, and the frozen monthly reports live on their own pages.

Questions people ask

How long should a take-home coding assignment take?

A fair take-home is two to four hours and replaces a single live interview round. Treat the company's estimate as optimistic by about 50 percent, so a stated two hours is really three for most people. Anything estimated at eight hours or more, or with no time cap at all, is a red flag worth pushing back on.

Should I decline a take-home assignment?

Decline when the assignment crosses into unpaid spec work: when the prompt matches the company's actual product or backlog, asks you to touch their real systems, or expects a polished feature across a weekend. It is also reasonable to decline if no human spoke to you before the assignment arrived. Before declining outright, try asking to swap it for an hour of live pairing or to submit existing work instead.

Is a take-home better than a live coding interview?

For most working engineers, a take-home that replaces a live algorithms screen is better, because you work in your own editor on your own schedule and show judgment instead of recall. It becomes worse than a live round when it is added on top of a full onsite rather than replacing part of it. The best signal of a healthy process is a company that offers either format and lets you choose.

What makes a take-home submission stand out?

Restraint, not feature count. Make it run in one command, write a short README that names your tradeoffs and what you cut, commit in small clean steps, and match the rubric exactly rather than building extras nobody asked for. After ten submissions, reviewers remember the one that was easy to read and honest about its limits, not the one that did the most.

Is it normal to be paid for a take-home assignment?

For short, synthetic assignments, no, unpaid is standard and fine. But if a company wants production-grade work that could plausibly ship, the honest version of that request is a short paid contract at your day rate, and good companies offer this without being asked. Anyone demanding feature-complete, shippable work for free is showing you how they will value your time as an employee.

Put the signal to work

Send us your resume once. We put a short list of engineering roles in front of you, and it reaches a company only when you say so.

About roles.cc. roles.cc is a recruiting agency for software engineers at venture-backed startups in San Francisco, New York, and other major US hubs. The public board lists engineering roles pulled straight from each company's own job site, sorted by how recently the company raised. It is free for engineers. Start by sending your resume or reading what we do.