📒 problems 📖 glossary
Mock interview
46:30
ready
of 46:30
Lesson 67 · Modern signals

Take-home — what reviewers actually check

📖 Walk me through it — plain English

A take-home is a coding assignment a company gives you to do on your own time instead of (or on top of) a live interview. The prompt usually says something like "spend about 4 hours building X." The trap is taking that literally and trying to build a complete, polished product. The reviewer — the engineer who grades your submission — does not spend 4 hours reading it. They spend roughly 15 minutes, and in the first 5 they're really just checking a handful of fast signals: can I run this in one command, does the basic case work, are there tests, is the code tidy, and does the git history look sane. So your job is to engineer for that 15-minute skim, not for completeness.

Here's the everyday analogy. Think of it like cooking a dish for a job at a restaurant. You're told "you have 4 hours." A nervous cook tries to make a giant five-course meal and serves five half-cooked, lukewarm plates. The chef tasting it takes two bites of the first thing, finds it raw, and stops. A smart cook instead makes one small dish, fully cooked, plated cleanly, with a note: "I focused on the main course; here's how I'd add the sides with more time." The chef takes one perfect bite and is sold. A small thing done all the way through beats a big thing done halfway — every time.

The single most undervalued piece is the README — the text file at the top of the project that explains it. This lesson says roughly 60% of your score lives there. A strong README has: how to run it (ideally one command), the key design choices you made, what you deliberately cut and why, what you'd do with more time, and known limitations. Saying "I skipped pagination because the spec didn't require it" reads as good judgment; shipping half-built pagination reads as someone who couldn't finish. The "what I'd do with more time" section is literally where reviewers grade how you think.

A short way to approach any take-home:

Scope down ruthlessly. Pick the smallest version that proves the skill they're testing. Write down what you cut.
Make the happy path actually run. The "happy path" = the normal, expected use with valid input. A 60%-working thing that runs beats a 95%-built thing that crashes on first launch.
Write a few real tests, not coverage theater. One integration test through the happy path plus 2–3 unit tests on the trickiest function. (An integration test checks the pieces working together; a unit test checks one function in isolation.) Don't test trivial code.
Keep dependencies lean. A "dependency" is an outside library you pull in. Twenty libraries for a 200-line problem signals you reach for prefab parts instead of thinking.
Make 5–10 logical commits. A "commit" is one saved checkpoint in git with a message. Reviewers skim the log; sensible commits beat one giant 5000-line dump.
If you used AI, say so and own it. "Drafted the parser with an LLM, verified by tracing one example and adding the parse-error test." Honesty plus verification reads as senior.

Why the format has changed: pure-algorithm take-homes are mostly dead because an AI chatbot can solve them in one shot, so they no longer tell the company anything. What replaced them all share one theme — prove you actually understand your own submission. The "extend your own code" round asks you to add a feature to the code you submitted, live, on the spot — so never submit code you couldn't modify cold. A transcript defense (used at places like Anthropic) means you also hand over your AI session log and explain specific choices — "why did you accept this suggestion, why re-prompt here?" — so treat that session like a clean paper trail, not 40 frustrated retries of the same prompt. And "build with our tool" rounds make the tool itself the test.

One increasingly common shape at AI startups is the 48-hour agent build: "build a working agent that does X, send the repo plus a 5-minute Loom" (a Loom is a short screen-recording walkthrough). An "agent" here is a program that loops with an AI model and tools to accomplish a task. Reviewers grade, in order: does it work end-to-end, do you have evals (even 5–10 test cases with expected outputs and a pass/fail check — without them you're just "vibe-coding"), is the agent loop bounded (a max number of iterations and a cost cap so it can't spin forever), does the Loom show one real tradeoff decision, and does the README pre-empt the obvious follow-ups including estimated cost per run. The pattern is the same as the cooking analogy: a small agent that demonstrates the full loop cleanly beats a sprawling one that hallucinates and never finishes. Honesty plus a working narrow scope wins.

The prompt says "spend ~4 hours." Reviewers spend ~15 minutes. They look at a small number of signals very fast. Engineer for that, not for completeness.

Reviewer's first 5 minutes
  1. Read the README. Can I run it in one command?
  2. Run it. Does the happy path work?
  3. Run the tests. Do they exist and pass?
  4. Read the main file. Is it organized? Named well?
  5. Skim git log. Sensible commits or one 5000-line dump?
Scope down ruthlessly

Pick the smallest version of the problem that demonstrates the skill. Document what you cut and why in the README. "I skipped pagination because the spec didn't require it" beats half-built pagination.

README is the deliverable

How to run, key design choices, what you cut, what you'd do with more time, known limitations. 60% of the score lives here.

Tests, not coverage

One integration test that exercises the happy path + 2-3 unit tests on the gnarliest function. Don't test trivial code.

Clean commits

5-10 logical commits beat one mega-dump. Reviewers read the log.

No dependency soup

Don't pull in 20 libraries for a 200-line problem. Each dep is a signal you reach for prefab instead of think.

Don't fake AI use

If you used AI, say so and own it: "drafted the parser with an LLM, verified by tracing one example + adding the parse error test." Honesty + verification = senior.

The new format: transcript defense + "extend your own code"

Pure-algorithm take-homes are mostly dead — ChatGPT one-shots them. What replaced them:

  • Project take-home + live extension: You submit code. The follow-up round is "add feature X to your own code, live." If you didn't write it, this round eats you. Lesson: never submit code you can't extend cold.
  • Transcript defense: Some companies (Anthropic, some AI startups) ask you to submit your Cursor / Claude Code session log alongside the code. Then defend specific decisions: "why did you accept this suggestion?" "what made you re-prompt here?" Treat your AI session like a paper trail — clean prompts, clear pivots, not 40 retries of the same thing.
  • "Build with our tool": Cursor onsite uses Cursor; Sierra has you build with any AI tool you want over a 2-hour Build round. The format is the test.
The 48-hour agent build — AI-startup take-home shape

Prompt is usually: "Build a working agent that does X — could be a research agent, a code-review bot, a support copilot. 48 hours. Send us the repo + a 5-min Loom."

What reviewers actually grade (in order):

  1. Does it actually work end-to-end? A 60% working demo beats a 95%-built skeleton that errors on the happy path. Reviewers click run first.
  2. Do you have evals? Even 5-10 test cases with expected outputs and a pass/fail check. Without evals you're vibe-coding; with them you signal production thinking.
  3. Is the agent loop bounded? Max iterations, budget cap, escape hatch. If their test input is gnarly and your agent loops forever, you fail silently.
  4. Does the Loom show judgment? Walk through one decision: "I chose tool-use here instead of a planner because the task is single-step." 30 seconds of explicit tradeoff > 5 minutes of feature demo.
  5. README addresses the obvious follow-ups — "what would I do with another week" + "known failure modes" + "estimated cost per run." Pre-empts the questions the next round was going to ask.

Anti-patterns reviewers screen for: prompt-only system (no tools), agent that hallucinates confidently with no critic pass, no eval harness, README that doesn't mention cost, "this needs more time" excuse instead of a working narrow scope. Pick the smallest agent that demonstrates the loop — the production patterns matter more than feature breadth.

Honesty pays: a working narrow scope with a thoughtful README beats an over-promised half-finished thing every time. The "what I'd do with more time" section is where reviewers grade your judgment.
→ Going deeper: Take-home strategy feeds the stories in Portfolio as the interview. See Portfolio as the interview.