Take home coding assignments that everyone loves

InterviewParrot
3 min readApr 3, 2019

--

I have been researching take home assignments as a medium to assess candidates for coding interviews.

I can see the following interview methods being replaced with a well designed coding assessment:

  • Pair programming
  • White-boarding
  • Live coding

Above methods work well for some companies, but are often time consuming and meaningless if used without the right context. Companies should strive to give developers a good interview experience and not throw some random algorithmic challenges.

In my conversations with developers I found that many have mixed feeling about coding assessments.

Here is why developers love them:

  • Offline element of the assessment means there is less pressure. As opposed to live coding or whiteboard assessments.
  • It presents a lot of opportunities for the developer to show case their skill. Not just programming, but ability to design, think about various edge cases, test cases, and a lot more.
  • It takes away the boring and sometimes time taking admin of scheduling interviews.

Here are some reasons why developers hate them:

  • Some assignments take too long to finish.
  • Unpaid work — some companies ask candidates to do work like adding a new feature or fix a bug on their repository, that often takes days and not just hours, which seems like unpaid labour.
  • Vague requirements. Some assignments are just vague and are completely unrelated to what developers do in their day to day work.

Personally, I regard the take home assignments to be really good way to assess a developer. The tests however, need to be designed properly and should be apt for the job role in question.

A well designed take home assignment also provides the developer with an excellent interview experience as they are more confident in displaying their skills — by coding and solving a real world problem. Good experience means companies can attract better talent as well.

So, no more on-site interviews ?

I think on-site interviews are a good way to meet a candidate face to face and give both parties an opportunity to get a real feel about each other. However, I hate long on-site interviews that some companies often schedule. A full day of interviews packed with programming tests is frankly too much of a cognitive load for any candidate to bear.

Companies should use this opportunity to assess things like personality, attitude and cultural fit. Some people argue that working under pressure is something bigger companies like Amazon et al like to test, but I am sure there are other ways to assess that.

How long should be an assignment ?

It depends on the role. But the assignment should take hours not days, certainly not weeks. The candidate should have the flexibility to finish the assignment in one sitting or more.

Success criteria

This is the most important bit if a take home assignment has to be an effective way of assessing a candidate, and a potential replacement of other time taking and impractical alternatives like live coding and whiteboard interviews.

I can think of some useful criteria that can apply to most assessments:

  • Completeness: Does it fulfil all requirements in the assignment ?
  • Tests: Have any tests been added ? Do existing tests still pass ?

Anything else ? Do comment if you can think of some more.

I would love if more companies use coding assignments as a way to assess candidates when hiring. Developers love coding, and that should be the way to assess them.

We at interviewparrot.com are innovating new ways to assess developers for programming interviews. If you have any feedback about the above do get in touch at info@interviewparrot.com, even if it just to say Hello.

--

--