The aviation industry has invested in extremely realistic flight simulators to test pilots’ skills. Doesn’t the tech industry deserve the same? After all, developers rely on a “cockpit” of powerful tools: an IDE to write code, a filesystem to put together larger projects, a terminal to install and run programs, and (for frontend projects) a browser or emulator to view the results. And like pilots, they live in these tools every day. That is, except for interview day, when developers are suddenly asked to write code in a completely new and artificially limited environment: on a whiteboard, in a static file, or in a REPL shell.
Using assessment tools that aren’t realistic leads to a less-than-comfortable experience for the candidate—and for a hiring team, it introduces noise into the process and limits what you can measure. You can’t install any package or library you want. You can’t import your GitHub repo. You can’t work on a full stack application with a database, service layer, and frontend. In other words, you can’t test some of the most common things that developers do.
At CodeSignal we believe that making coding interviews feel more like a flight simulator is one of the biggest challenges to solve in technical hiring today. It’s a hard problem, because the tools software engineers use every day run on dedicated hardware: the programmer’s laptop or desktop machine. We needed to support the same functionality in the cloud—and on top of that, support live collaboration, proctoring, video, keystroke recordings, prebuilt tasks, and a variety of other features.
We’ve been working towards our mission in stages. We built a cloud-based IDE that’s essentially indistinguishable from VSCode, the most popular IDE developers use locally. We launched interactive emulators that are actually running code on a browser or a device, just like a developer would do at home. And we released a terminal for a subset of our tasks.
Today, we’re announcing a major step forward in creating a true flight simulator for technical interviews. CodeSignal is now the first interview tool where it’s possible to work unconstrained on a full-stack application interacting with databases, APIs, and frontend layers. We’re the first tool to offer interviewers and candidates access to a terminal and shared, collaborative filesystem. And with the ability to install any tool or framework on the spot, we’re also the first tool allowing teams to seamlessly import their own projects from GitHub to use in an interview.
This is all possible because of a major infrastructure upgrade: we’re now running every interview session in a persistent Linux environment where the candidates and interviewers have full reign. For a non-engineer, this all might sound a bit technical. So let’s break it down by taking a close look at how most interview tools work compared to the new model that we’re launching today.
Here’s what a typical interview tool looks like under the hood:
On traditional technical interview platforms, the candidate and interviewer do not have access to the environment where the code is actually being run (also called the runtime environment). As a result, it’s simply not possible to access files, services, databases, or install packages and libraries. The interview is essentially taking place in a fenced-off area. Code goes out to get run on a machine, and results come in—but that’s it.
Now let’s compare this to how CodeSignal works after our new infrastructure upgrade:
We’ve broken down the fence entirely between the interview and the machine where the code’s being run. And we’ve given the candidate and interviewer complete access to that environment so they can set it up any way they like. Without any restrictions, candidates can do pretty much anything they could do on their local machine.
What does this mean for hiring teams?
- For full-stack developers, you can now measure a candidate’s ability to work on a full-stack web application with a front-end, service/API layer, and database.
- For backend developers, you can now measure a candidate’s ability to work on a back-end server application that involves running a project with a build tool, whether that’s Ruby on Rails, Django, Node + Express, Go, or any other framework.
- For frontend developers, you can now measure a candidate’s ability to work on a front-end web application that uses a build tool like Webpack and a package manager like NPM or Yarn.
- For data engineers, you can now measure a candidate’s ability to work on a project that involves an application interacting with a database.
- For data scientists, you can now easily run data science projects that install whatever dependencies or tools you need along with downloading or creating data, especially in languages like Python or R.
- For DevOps, you can now create content that measures a candidate’s ability to interact with a live Linux system.
- For every developer, you can now measure a candidate’s ability to use essential source control tools like Git, Mercury, or Subversion.
With this upgrade, we’re taking CodeSignal to the next level of powering realistic technical interviews. Recruiters and hiring managers now have the best “flight simulator” out there for developers—and in fact, it’s so real that it’s more like handing them the keys to the plane.