How to Approach Writing a Take Home Coding Challenge
While behavioral interviews will always have a place in evaluating soft skills, take-home coding challenges have become very popular components in technical interviews over the past decade. And even though there’s plenty of information available on how to do take home coding challenges, the method in which employers develop a challenge is sparse.
Because every role and company is unique, there’s no precise formula for constructing a take-home challenge, but these general tips will get you started.
Define Goals Up Front
Is there a particular skill you are trying to assess? Are there multiple capabilities the candidate must have? Are you particularly interested in how they respond to specific tasks?
Begin with the end in mind; . Eestablish clear expectations on what it is you are trying to evaluate. You might also make sure these are aren’t already covered in other elements of the interview process. That will allow you to remove redundancy and get the most actionable information from the process.
Here are some things you can learn about candidates through a take-home coding challenge:
- Can they write code? (Yes, this should go without saying. But, unfortunately, sometimes it doesn’t.)
- How do they approach a problem?
- What do they do when they get stuck?
- Are they methodical? Aggressive? Meticulous? Experimental? Cautious?
- Do they leave documentation that aids in collaboration?
- Do they run QA tests?
- Are they reflective?
Make Results Quantifiable
Keep in mind some of these skills you’re measuring might be subjective: “Candidate knows React” is not a binary outcome. Create an interviewing scorecard so you will be ready to measure candidates and fairly compare their result on architecture, clarity, code quality, UX, or whatever criteria is applicable. Laying out the success metrics up front will make sure you aren’t compromising when you reach your decision process.
Make it Applicable to Your Business
Candidates are trying to evaluate you as much as you are evaluating them. Show them what it is like to really work there with a realistic example of something they might incur in the job.
Many companies will fork an existing repository and allow the candidate to build a feature on top of a real product. Others will provide a description of a real problem they faced (or are facing) using real or mock data that relates to their business. No matter what you do, be sure to provide the candidate a clear README with context of the business as well as the problem they are working on.
Remember, you‘re trying to understand how a candidate thinks rather than if they can completely solve a problem.
A multiple-step-solution should ensure that missing one step doesn’t hinder the candidate’s performance on what follows. This approach will result in a better outcome for them and a more clear picture of their capabilities for you.
Consider a Soft Skill Requirement
An important element of the process is understanding how the candidate will interact with others on the team. Bake in some time for them to walk you through their work.
Why did they approach the problem a certain way? Can they verbally present their process in a clear and concise manner? How do they handle questions from others?
All these things can help you further ensure the candidate is the right cultural fit for your team/company. It also may help to prevent a false-negative by learning why they approached the challenge in a particular way (maybe they discovered a better approach than you thought possible!).
Most anyone could solve a problem with enough time, but in the real world, deadlines abound. You want candidates who can quickly think on their feet. Impose a finite period of time for the challenge.
A common way to do this is to send the challenge with a specific due date and time. The amount of time should be reflective of what is expected for the job and depends on the challenge.
Keep the work needed to be done under 8 hours (that they do not need to do consecutively.) You want to be respectful of their time and make it fair. After all, they’re still evaluating if they want to work for you as well!