Both software engineers and tech recruiters know about the infamous algorithm interview questions asked during the interview process at companies. Recruiters, managers, and even senior software engineers tend to ask these types of questions because:
- They have been asked historically
- They believe computer science questions are a good signal for determining a skilled software engineer
This process all started when engineers were asked to write algorithms on the dreaded whiteboard, but there is a good reason for this that can be explained by looking at the history of programming and interviews.
The whiteboard interview is still in effect at plenty of companies today, and the questions range from designing a user interface to implementing a bipartite graph detection algorithm on a whiteboard. This process was improved in recent years by having candidates solve actual challenges online in an editor. A quote by Vivek Ravisankar, the CEO of HackerRank:
Engineers did the best with what they had in the 90s, but today’s engineers should start adopting more technologically advanced ways to screen and test an engineer’s communication skills without a whiteboard and marker. Using a real-time video platform that allows you to view, edit and talk through code challenges remotely is much faster and scalable than in-person whiteboard interviews.
Today there are several tools and platforms that allows companies to easily assess candidates by having them solve algorithm challenges online that are then automatically graded.
Problems with the current interview method
Engineers, managers, recruiters, and others dispute the premise that algorithm challenges are a good signal for determining whether or not a software engineer will do well on the job. Whether done on a whiteboard or in an online editor, plenty of people dispute this premise and it’s quite thecontroversial topic among the software engineering community.
What are some alternative solutions?
There are several leading tech companies that don’t actually put a lot of importance on algorithm challenges, but rather, focus on software engineering skills that would be needed for the job such as:
- Writing an efficient database query
- Server-side vs client-side rendering
- Caching assets for a mobile application
- Distributing work across multiple servers
- Writing an API or general application architecture
- Debugging and improving someone else’s code
Two companies that are changing how engineering interviews are conducted are Stripe and Atlassian. Here is an example of a problem Stripe asks an engineer during the interview process:
During the Bug Squash engineering interview, candidates and interviewers sit side-by-side to solve a real historical bug in an open-source project while working in the candidate’s programming language of choice.
And here is something Atlassian does:
If everything is still going well, we move them onto the second and final coding challenge, the Take Home Project. This is a longer and more intense project. When someone makes it this far, both us and the candidate are pretty committed to making this work… Basically, we want to see how well they can build and deploy a thing for the web.
It’s clear there are leading tech companies that think the interview questions asked should more accurately reflect the actual job of a software engineer. But current online recruiting platforms and services don’t allow candidates to do anything other than solve algorithm challenges online. We provide a solution that some of the companies displayed below have started using.
With Coderbyte, an organization can create application tests which allows them to test actual software engineering skills of a candidate. Then our team looks at their submitted project code, and we assign a score based on their final output and whether or not they met the challenge requirements. Some examples of tests that companies have run on Coderbyte:
- Build a dashboard using AngularJS and Bootstrap
- Create a responsive card layout using only HTML/CSS
- Create a catalog application using Vue.js
- Create a file uploader using Node.js that saves and displays files
We do believe that algorithm challenges are an important way to judge a candidates programming abilities and computer science knowledge which is why we provide this capability on Coderbyte — but companies should also be testing actual software engineering knowledge like Stripe and Atlassian have started doing.