Using Codesandbox for coding interviews
At Mantle, we’re growing our team, including engineers! I was the hiring manager responsible for hiring a Support Engineer to help balance the support workload. Currently, everyone contributes to supporting our customers in one form or another, but our growing customer base has reached a tipping point where we can justify hiring someone dedicated to supporting this growth and focusing on customer-driven product improvements.
Since we’re interviewing external candidates instead of hiring people we already know, it’s essential to build confidence in the candidate by understanding their skills and their fit for both the role and the company. Being solely responsible for the technical screening meant I needed to assess their coding skills, along with other engineering-related qualifications. I needed to be able to pair-program with them as they wrote their code. Having previously conducted dozens of interviews for technical roles at Shopify, we had a well-oiled process and set of tools at our disposal. These enabled any interviewer to gain enough confidence by the end of the interview to determine whether the candidate would be successful or not.
At a startup, however, you don’t have any of that. You start from scratch, or, if you’re lucky, you can improvise based on a process someone else documented. At this stage, you just have to figure out what works—and if you don’t have to spend any money doing so, all the better.
Assessing coding abilities is relatively easy if you’re able to share the same screen and keyboard as the candidate. You present a problem and work with them to solve it, giving nudges along the way and asking questions to explore their abilities. In the remote-first interview world, you’re likely on a video call with the candidate, so you need to either share their screen or use an online coding tool to write and ideally execute the code. At Shopify, we used Coderpad, which is an excellent tool. You select a language, write code on the left-hand side, and see the code execute on the right-hand side. Both the interviewer and candidate can modify the code simultaneously. However, this is a paid tool, so, driven to find a simple and free alternative, I started poking around on Reddit. That’s when I came across Codesandbox.io.
Codesandbox.io
Based on a recommendation from Reddit, Codesandbox offers an excellent multi-person IDE and code execution environment for a wide variety of languages. Its assortment of templates makes it very easy to get an environment up and running with any language or framework to print “hello world.” When you go to create a new coding project, you can choose to use a Devbox—a small VM to run your code in. This provides a full VSCode-esque experience, allowing you to run client- or server-side code for many different languages. After just a few clicks, I had a React frontend and backend running and printing “Hello world” in seconds. By default, the window opens with the directory listing in a panel on the left, code in the centre, a browser running the app on the right, and a terminal along the bottom—everything you could ever need. Depending on the language or template you’re using, the layout can vary.
Starting and sharing a live coding session appears to only be possible with Devboxes. Once a Devbox is running, you can easily share the current session with the candidate via a link. The candidate will need to create an account to use Codesandbox, but it’s otherwise quite frictionless. Once the interview is over, you can stop sharing the Devbox to prevent anyone, including the candidate, from accessing it. One caveat is that the Devbox runtimes consume credits while they’re powered on, but the free plan is quite generous. Each month, you get 400 credits for free, which provides about 57 hours of Devbox time per month if you use the lowest resource specs—perfect for simple programming challenges. Just make sure to hibernate the Devbox after use, or it could consume all your credits.
Does it work?
As of finishing this article, I’ve conducted a couple of technical interviews using Codesandbox to test candidates’ coding skills. Codesandbox was successful! Once the candidate gained access to the Codesandbox, it was easy to focus on the coding. I’d highly recommend this tool for others looking for a quick and effective solution to running technical interviews!