Youβre reading an excerpt of The Holloway Guide to Technical Recruiting and Hiring, a book by Osman (Ozzie) Osman and over 45 other contributors. It is the most authoritative resource on growing software engineering teams effectively, written by and for hiring managers, recruiters, interviewers, and candidates. Purchase the book to support the author and the ad-free Holloway reading experience. You get instant digital access, over 800 links and references, commentary and future updates, and a high-quality PDF download.
A take-home assignment (take-home or takehome) is a coding task given to technical candidates to complete on their own time. Candidates are typically given a day to several days to complete a take-home.
βcontroversyβ Take-homes are controversial. While there are many pros for the companies assigning them, they are less valuable in terms of the candidate experience. Nonetheless, they do have some advantages for candidates.
βcandidateβTake-homes remove a lot of the stress associated with onsite challenges. Candidates get to use their own tools and work in the style they would if they were on the job. They can review and iterate on their work, take time away to think or rest, and rewrite. One senior engineer put it this way: βMost employees βtake homeβ their work if you think about it. You get work, you go away and think, you do it, you sleep, you come back and review it. Thatβs how our jobs work.β
For companies, take-homes have arguably the lowest false negative rate of any interview formatββthe truest signal,β as Scott Woody, former Director of Engineering at Dropbox, put it to Holloway. A few factors account for this:
Take-homes give the candidate enough time to do the work in an environment that theyβre comfortable with, so you eliminate the noise of a whiteboard interview.
Itβs very hard to hide weaknesses in coding ability in a take-home, and follow-up conversations can tell you almost everything you need to know about how a candidate thinks through problems.
Follow-ups also allow you to weed out and correct for any negative signal or false signalβfor example, if a candidate cheats, talking through their work will help you figure that out.
Follow-ups are an important part of the take-home evaluation; in this respect, take-homes are the first step of a larger conversation. A good take-home will mimic assignments the candidate might reasonably be asked to do on the job and will give you practical signal on their abilities, creativity, and style.
Hereβs how a sample assignment might progress. Letβs say the take-home is something like βBuild a simple web-based calculator appβ or βBuild an AI version of Tetris.β When the candidate returns, you might read the code and interrogate it together, bringing the initial asynchronous assessment into a synchronous evaluation:
You ask the candidate to critique their work.
You may then ask them what they would do given another 20 hours; or say, βHow would you invest 10 more hours on this?β Questions like βWhat feature would you remove?β and βWhat feature would you add?β will further refine your understanding of their work.
An additional useful question is, βWhat shortcuts did you take, and why did you think that was the right shortcut?β
βcautionβ The major downside of take-homes is the time commitment they require. Because the market is so competitive, asking a strong candidate to give up their weekend for a take-home can lead them to drop out of your process. Senior candidates may feel that being asked to do a take-home is a waste of their time. For these reasons, take-homes usually make sense further along in the funnel. They require a lot of engineering time and investment from interviewers and candidates, so they arenβt ideal for screening. Some companies opt to pay candidates for the time they spend on these assignments, but this doesnβt always make a difference. A senior manager at Dropbox told us that before the company pivoted from take-homes, 20% of candidates would simply not complete them. Less-competitive candidates were more likely to complete the assignment, because they didnβt have competing offers. The pass-through rate was close to 10%. If youβre asking candidates to invest 15 hours, and their chance of passing through is 10%, the value asymmetry is strong.
Despite the high signal achieved, interviewers, too, spend hours of their time designing take-homes, scaffolding in multiple languages, and reviewing code, and with such a low pass-through rate, this hardly pays out.
βdangerβ The other major con of take-homes is that they explicitly discriminate against people who have families or adverse financial situations, or who work more than one job. If these candidates are in the hiring pipeline at more than one company, they may receive multiple take-home assignments at once, making them impossible to complete, and this may cause the candidates to drop out of your process.
Take-homes also open up the possibility that a candidate may cheat by asking friends to help or collaborate. Additionally, with a take-home, youβre asking candidates to work in a vacuum, which doesnβt match to most work environments, where youβre hopefully able to ask questions and get feedback as you progress.
βcautionβ Take-homes are difficult to timebox and thus difficult to assess fairly. If candidates have been given 48 hours to turn in an assignment, you might be comparing candidates who spent 40 hours with those who spent only 2.
One way to avoid this false signal is to pay people an hourly rate for the assignment; but candidates can lie, either saying they worked more hours so as to receive the pay or fewer hours because they want to look impressive.
There are situations in which the pros of take-homes outweigh the cons. Smaller companies may find it easier to assign take-homes than to expend the time and resource investment in a longer pipeline, where multiple interviews would be needed to get the same signal. Younger engineers trying to break into the industry may prefer take-homes because they provide a chance to demonstrate skills they havenβt yet had a chance to prove on the market. If thereβs a candidate you havenβt gotten clear signal from yet, adding a take-home to their pipeline will usually tell you one way or another whether the bet will pay off. Scott Woody, former Director of Engineering at Dropbox, told us that people who tend to shine on take-homes have nontraditional backgrounds: βTheyβre hackers, or they never took CS in college, and theyβd fail out of our normal process. But we can see theyβve been doing all this practical work on the side, so letβs give them this practical thing and theyβre going to build something singular.β
Using a tool like Takehome.io can help with timeboxing take-homes. It might seem like the option of timeboxing would help solve a lot of the cons of this format, but many engineers hold the opinion that time limits introduce further artificiality that compromises what could otherwise be a clear signal. There are tradeoffs any way you approach it.
If you do choose to give take-homes, itβs important to be clear with the candidate that the results will only be used for evaluation and not to produce work for the company. You might also provide an upper bound on the amount of time a candidate should spend on the take-home. When sending candidates the assignment, itβs important to let them know what it is that you will be evaluatingβthe code? the creativity? the speed? This will help ensure that they donβt waste time on something that wonβt translate as much to the assessment and the eventual job. You likely also will want to avoid noting things as nice-to-haves unless they are truly necessary for the assessment.
One idea worth noting to help make the candidate experience better is to replace the take-home with a project that is done in the office during the onsite. Such a project still requires a logistical burden, but has the benefit of feeling like a symmetric exchange of time, particularly if it replaces multiple interview questions. The goal is to mimic the benefits the take-home has for candidatesβlet them work alone.
βcandidateβ Understanding the reasons why a company might choose a take-home problem can help candidates prepare. This guide from Jane Phillips has a host of practical suggestions for tackling take-home coding challenges, along with an FAQ on common scenarios, like needing more time or what to do if youβre not familiar with a language or framework in the take-home problem.
Some companies choose to ask candidates for past work samples rather than asking them to write code (though you can do both). The nice thing about this approach is that it allows you to see something that the candidate actually did in a real-world setting. However, it can be difficult for many candidates to provide this kind of work sample if they donβt have an open-source presence, and evaluating these work samples may take more time and require a great deal of interviewer effort to evaluate. Prior work assessments can be:
Synchronous. The candidate walks the interviewer through a completed project or portfolio.
Asynchronous. The candidate sends work to the interviewer for them to review, and/or the interviewer reviews the candidateβs open-source projects (likely on GitHub).