Preparing for your round 1 & 2 interviews (Engineering roles)

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:

  1. Reading a specification document and implementing code to match
  2. 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

⚠️
Please prepare in advance of our call to ensure we can get right into coding together.
Have a computer with a webcam and microphone
Ensure you have a strong internet to keep your camera on at all times while sharing your screen
Be in a quiet location by yourself where you can focus and keep your microphone unmuted
Sign up for a free CodeSandbox account in advance of the call and familiarize yourself with how it works.
Record your CodeSandbox username, which is available on the profile page. In this case, “myaroshefsky” is the username. Once you get on the call with your interviewer, they will ask you to share this username with them via Zoom chat so they can invite you to the workbook, so please have it handy to copy-paste.
image
⚠️ Important: Confirm CodeSandbox fully works Ensure that you can run a sample sandbox without errors. In particular, you want to make sure you don’t see this error in the screenshot below. This error is caused by your browser settings being so restrictive that CodeSandbox can’t use localStorage to communicate between frames in the page. If this error occurs at the start of your interview, it might take too long to resolve the issue and leave us with too little time to conduct the full interview in one setting. Unfortunately, we’ll ask to reschedule to another time if we get on the call and this error comes up and we can’t resolve it within 5 minutes.
image
Ensure you are familiar with the Javascript language and all ES6 feature — even less common parts.

How you’ll be evaluated

We’re looking for the following:

  1. How well we communicate together during the exercise
  2. How well you can think and learn
  3. How well you can follow the specifications of the exercise
  4. How quickly you can write code
  5. How well you can understand abstractions and object-oriented programming
  6. How well you write code (accurate, free of errors, simple)
  7. How comfortable you seem writing Javascript