Overview
We believe that the technical interview should serve both of us as we get to know each other better and determine whether there’s a fit. We’re not looking to necessarily test the depths of your knowledge about esoteric programming concepts or language quirks. We do not conduct LeetCode interviews. What we are looking for are the very brightest engineers who can learn effectively, think quickly, communicate clearly, and solve problems elegantly.
Our technical interview seeks to provide us an opportunity to see how you approach day-to-day programming in a collaborative environment. It consists of two sections across two 60-minute interviews:
- Reading a specification document and implementing code to match
- Reading code that was written by someone else, understanding how it works, fixing problems, and adding new features
Our assessment is designed to closely mirror actual work and provide opportunities for us to collaborate together on the exercise.
How we conduct the interview
We’ll conduct the interview over Zoom. We’ll ask that you remain on-camera and remain unmuted during the entirety of the interview. We may ask that you use your webcam (without any simulated background) to show us your surroundings and ensure that there are no other people in the room with you.
We will record the call for review by additional Visor team members. On the call, you’ll be asked to open a browser window to a CodeSandbox link, where the exercise will take place, and share your screen via Zoom so we can collaborate together.
The interview will be entirely in JavaScript. You should have familiarity with all ES6 language features, as some may be necessary to complete the exercises. There will be no HTML or rendering components to these exercises — they will just print their results to the console.
Section 1: Writing code according to a spec document
The first section of the interview will assess how well you can read a spec document and implement the module described. In this section, you’ll build a javascript class that represents a utility module with certain behaviors. This section is split into 5 parts, each of which builds on the last. You’ll need to complete each part before proceeding to the next. The parts grow more difficult as the interview proceeds. All 5 parts of this section can be completed within 60 minutes, but occasionally more time will be needed and spill into a potential second round technical interview. During the entirety of this section, you’ll be asked to speak aloud as you’re solving the exercises.
The first round of the technical interviews will be complete after this section is complete (or the end of the first 60 minutes, whichever comes first). Your interviewer may review the recorded call with additional colleagues before providing feedback on the interview. We will get back to you within 2 days. At this time, the interviewer will confirm if you’ll be asked to participate in the second round of the technical interview.
Section 2: Reading code written by someone else and improving it
The second section of the interview will assess how well you can read code, understand it, and build on it. During this exercise, you’ll be presented with a Javascript file that is poorly documented. You’ll be asked first to read the code and explain what it does to the interviewer. The goal isn’t for you to explain what the code actually does but rather what the function of this module seems to be. From there, you’ll be asked to identify and fix bugs in this code. And then you’ll be asked to add new functionality to this.
How you should prepare
How you’ll be evaluated
We’re looking for the following:
- How well we communicate together during the exercise
- How well you can think and learn
- How well you can follow the specifications of the exercise
- How quickly you can write code
- How well you can understand abstractions and object-oriented programming
- How well you write code (accurate, free of errors, simple)
- How comfortable you seem writing Javascript