How fair is the take-home assignment?
I recently discussed how working through a small project is an effective way to evaluate a candidate’s practical skills. In that article, I posed a question (updated now based on the importance of independent work): is it better to implement the project interview with a take-home assignment or as part of an “onsite” with independent work?
I believe you should default to an onsite, which in COVID-times could be conducted remotely, but the take-home assignment does have its place.
An unbalanced time sink
The fundamental problem with a take-home assignment is a candidate has to put in time the employer doesn’t. A candidate may spend hours on a take-home, and the employer rejects them after only a cursory glance. Independent work during an onsite can be similar, but the interviewer should still be checking in on the candidate.
Even worse, the take-home assignment is usually in addition to an onsite. This is expected, since some component of the interview should evaluate the ability to work together. But, that means taking more time off or working during non-work hours. The latter can be difficult for those with families, leading to ageism.
Finally, take-home assignments usually come early in the interview process. Before an onsite, the candidate usually has a chance to evaluate the employer through recruiter conversations or a phone screen. If there isn’t a fit, only a little bit of time was lost. With a take-home assignment, the candidate learns little about the company until the assignment is submitted.
This discrepancy makes the power imbalance I talked about earlier even more more drastic.
What are take-home assignments good for?
Despite all this, a take-home assignment has a huge advantage: they replicate how software development actually happens. The candidate uses tools of their choosing, they get to do so in an environment they’re comfortable in and they get to do it on the schedule that works for them.
The flexibility in schedule is actually quite important. For example, a student with classes during the day may want to work on an assignment in the evening, and you don’t want to interview candidates that late!
Some part of the other benefits can be replicated by a combination of letting candidates work on their own and doing the interview remotely. Such an arrangement also allows the interviewer to check in on the candidate from time to time, answering questions along the way.
Using a take-home assignment effectively
Given these trade-offs, I think it’s possible to effectively incorporate take-home assignments into your hiring process. I haven’t actually implemented the following into a hiring process myself, but here are my ideas:
- First and foremost, offer take-home assignments as an option. This only works if not taking the assignment doesn’t hurt in any way, a fact you’ll need to clearly communicate.
- Use take-home assignments as a replacement for other parts of the interview. For example, anyone choosing the take-home doesn’t do a phone screen, and they can talk about their project instead of having a traditional system design interview.
- Determine company-employee fit prior to assigning a take-home. Have the usual recruiter or team member conversations early to figure out if moving forward is even worthwhile. The take-home should not be an early filtering mechanism, but a way for candidates to demonstrate their abilities.
- Constrain the scope of the assignment, but still have candidates work on real-world problems. Take-home assignments that consist of quizzes or Leetcode-style problem sets show disrespect toward the candidate. But so do projects that realistically take a whole day of work.
A central theme above is to make take-home assignments a way candidates show their strengths, instead of making them gating mechanisms. And the way to achieve this is to respect the candidate’s time and preferences.
This article was originally published on the Hiring For Tech website. If you want to read more content from me, please subscribe either by email or on LinkedIn. And please reshare with your networks so others can find out about Hiring For Tech!
Web Solutions Architect specializing in Drupal/CMS and AI
4yAs a candidate I have learned (sometimes painfully) how important it is to be protective of one’s own time. When I was asked to complete a take-home assignment early in the interview process — like before I’ve met with the hiring manager — I withdrew my application. A company that abuses candidates can be expected to treat its employees poorly as well. The best companies treat potential employees like rock stars.
Lead Mobile/iOS Engineer
4yI’ve been really digging these posts. As a longtime SWE I’ve encountered many of these pitfalls. Sometimes it feels like with every job interview in software you’re basically starting your career over again. Hoping this platform helps make a difference and bring sanity and consistency to the tech hiring process.
Business Intelligence Engineer at Amazon
4yI totally agree with your point of using take-home assignments as a replacement for other parts of the interview because as a candidate you tend to invest a lot of time in take-home assignments rather than the interview itself. Also, I feel that a take-home assignment is a good way for both, the company to judge its prospective employee and the candidate to get a glimpse of how and what the company works on and whether they can be a good fit. But what I hate the most about take-home assignments is that when the employer expectations are not met, they just send out a rejection email (standard template) without explaining the candidate about what went wrong, and how the candidate can improve, etc.
Software Engineer
4yEntire interview system is TERRIBLE to say the least. We interview people for Computer Science, while we need Software Engineers. Very much like the difference between Data Engineering Vs Data Science, we need to differentiate between Software Engineering Vs Computer Science.