Over the past several months we've been running technical interviews for remote candidates for software and data engineering roles. As part of my hiring process, I like to have people do work similar to what they'd be doing in the role. I totally agree that fit, communication and all the other important soft-skills are important, but having confidence a new hire will be able to do the job is a big deal. You might be surprised to know we generally don't do quiz-show or trivial tests, like fizz-buzz, and do try to shake up our interview questions. That said, we do often start with a nice, easy question to get a candidate comfortable (or terrify ourselves, it can go either way).
While my team has been remote since it was formed (well before my time) in the '90s, we haven't had to do as much remote interviewing as we have recently. We've been trying a couple of different approaches since last spring and have finally settled on what works well for us. At the heart of this is our use of Azure Virtual Desktop (AVD) and MS Teams. We evaluated and paid money for a couple of different collaborative code or interviewing platforms, but each had it's downsides for our use-case.
Our Requirements for Tools for Remote Interviews
- Secure access. We didn't want to give our cyber-security team kittens.
- Shared access. We want to be able to see what the candidate is doing and edit code with them.
- Familiar software development tools for the candidates to use. For us, this means Visual Studio Professional, Visual Studio Code, SQL Server along with it's tools, PowerBi and Azure. In my opinion, having odd tooling only makes it harder for a candidate to relax and shine during an interview
- Fast performance from (almost) anywhere in the world.
Our Solution for Remote Interviews
- We created a dedicated AD account for our interviews. This account has MFA enabled and linked to our authenticator application.
- We then enrolled the AD user in the tool we use to rotate passwords. When the user logs in, the password is automatically rotated to a new password. If you don't have a fancy (expensive) tool to do this, there's other ways to accomplish it.
- Created a new Azure Virtual Desktop, locked it down and isolated it.
- Granted the interview AD user and my team access to the virtual desktop.
- Installed all of our software development tooling into the new desktop. We use the same desktop for our data and software development interviews.
- Installed MS Teams on the AVD.
Our Workflow for Remote Interviews
- Email the recruiter and/or candidate the details and link to connect to the AVD. We do not provide a password at this point. This will also include an MS Teams invite for the interview.
- The team may login with their accounts ahead of time to stage test programs, SQL queries or other scenarios.
- Just prior to starting the interview, one of us will log into the AVD with the AD user we created to warm it up. At this point, we'll also join the MS Teams meeting from inside the AVD and share the screen. We started doing this to save time and confusion at the start of the interviews.
- We start our interview over MS Teams with the candidate. They'll generally join the Teams meeting online with their phone or laptop. We use this for voice and video during the call.
- Once everyone is ready for the technical portion, we have the candidate connect to the AVD with the web link. We then provide them with the current password and walk them through the MFA process. The MFA requests goes to our phones, which we accept. This let's the candidate access the AVD and we can see the screen.
- We then run our technical interview, often having code snippets already loaded on the AVD drive or pasting into the Teams meeting chat.
- Once the interview is done, we ask the candidate to log out of the AVD.
- Finally, immediately after the end of the interview we log into the AVD with the same user, to bump all other connections. You could also power-off or reboot the AVD when you're done.
That's all there is to it. Using Azure Virtual Desktops ended up being a simple and effective solution for us. We really appreciated that it didn't require specialized platforms and ultimately made the interviewing process for us and our candidates better.
* You might not have actually have fun. Alternatively, you might find your next awesome teammate.