Structure your interview to emulate what it’s like to work together on your team.
How technical interviews are conducted today
Why developers don’t enjoy the current process
Why the current process isn’t great for companies
Mage’s technical interview process
Why developers enjoy this process
Why this process is great for Mage
Most technical interviews today involve a few coding challenges. These coding challenges can be take home assignments, on-site interviews, or coding in real-time via screen sharing or services like HackerRank. These coding challenges usually involve building an algorithm that solves an esoteric problem. The purpose of these types of challenges is to test the individual’s logical ability to understand a problem and code a general solution that solves it.
In addition to coding challenges, technical interviews can include architecture design. This interview tests the ability of the developer to design something from a technical perspective. For example, design a key-value store like Redis.
Take home coding challenges require the developer to spend their own personal time taking a test. Developers don’t have time for that. It also tells them that the company is too busy to interview them in real-time. This isn’t a great experience for the developer.
Ask any developer what book they read when preparing for interviews and most will tell you Cracking the Coding Interview. Why is that? It’s because algorithmic coding challenges feel like taking a standardized test like the SAT or ACT. Developers dread the technical interview process because it has been reduced to memorization instead of creativity.
Testing developers on how well they can memorize algorithms isn’t a strong indicator of whether or not they will be able to build end-to-end features. There can be great test takers that don’t adapt well to fast moving environments.
Reviewing a take home coding challenge doesn’t reveal much about how well the developer can collaborate with others and their thought process when problem solving. There are developers who can build their own apps very well, but may struggle building things in tandem with other developers.
If the position is for an intern (L2), junior developer (L2), or new graduate level (L3), there are 2 parts. The 1st part is a coding challenge where the developer is asked to define a class with multiple methods. The problem is simple, but the devil is in the details. The 2nd part of the technical interview is for us to watch the candidate build a small portion of an existing feature. What they write doesn’t need to be complete or production ready.
If the position is for a level with 2 or more years of work experience (L4 and above), then there are 2 parts. The 1st part involves a technical design. The candidate will be asked to walk us through how they would design an existing feature from a technical perspective. In the 2nd part of the interview, the candidate will build a small portion of their technical design. What they write doesn’t need to be complete or production ready.
Unlike taking a test that tests your memorization, the ideal technical interview tests the candidate’s creativity. There is no right or wrong answer to the coding challenges, there is only a sliding scale of effort and innovation. This interview process removes the necessity to “study” for it and allows the developer to do what they do best: code and build things. This creates a more natural environment where the candidate can express their thought process and how they approach building features. There is no studying, there is just doing.
The 1st coding challenge of building a class with methods is something that Mage developers do regularly day-to-day. Most people can finish a majority of this challenge. However, the assessment isn’t whether they can finish but how they defined the methods and whether they applied basic software engineering practices while doing it.
The 2nd coding challenge of building a feature is something Mage developers do everyday. Watching the candidate build a small portion of a feature reveals how they would operate as a team member sitting next to you on any given day.
The technical design challenge is something Mage developers do with their team before any coding starts on a new feature. Having the candidate walk us through their plan reveals how they share ideas with other people, how they ask questions, how they collect feedback, and how creative their problem solving process is.
The goal of this technical interview process is to emulate a day in the life of a developer at Mage. Crafting your interview process to best emulate a typical work day at your company can make the interview process for the candidate both enjoyable and gives them a better sense of what they’re getting into. In addition, it helps you assess whether or not the candidate can perform their responsibilities under the same conditions as reality.