I have done a fair share of hiring in my career spanning at Red Hat, Apigee and Wootric. At Red Hat I was tasked with building a remote software engineering team after I had only been in the industry for couple of years. I was located in Austin, Texas but my team could theoretically be all over the world with preferences given to hiring in Brno, Czech Republic. This usually is one of the “perks” of joining an early stage startup or a growing team in a big company – you could get paid to learn engineering management on the job early in your career. On top of that, as part of Eejot initiative I often guide college students and fresh graduates on their internship search, job search and help prepare for tech interviews.

In a normal situation most of tech companies do initial screening usually over couple of phone calls followed by short online coding sessions. If a candiate performs well they get called for onsite interviews. Given the current shelter in place and travel restrctions because of Corona Virus all tech interviews are fully online. Based on my recent conversations with some of these job seekers I have found that hiring managers have not really adapted to new situation. So here is a short list to consider:

Understanding the new reality

  • If you are able to grow your team in current situation then count your blessings and be grateful. The US unemployment has skyrocketed lately.
  • Only few weeks back these college students were set to enter an amazing job market with historically low unemployment rate. They are probably shell shocked right now so have more empathy for them than you would normally have.
  • This situation is scarier for international students.
  • It’s likely that they live in noisy apartments or at home with kids arounds – younger siblings, nephews and nieces. If you hear noises in the background or someone shows up on video unannounced remind the candidate that it’s okay and you understand.
  • Job interview is stressful in general so do everything you can to reduce stress for them. If you need to be convinced then just remember the times when you were on the other side of table.

Some more concrete recommendations are here. I do most of these regardless.

Initial Screening

Think of it as a take home programming assignment with a generous deadline with no restrictions on help they can get. Ideally, it should not take more than 3-4 hours. They can search their way to solutions using stackoverflow or whatever if they want. But their final solution should be:

  • Committed to a source code repository preferably Github

  • Fully documented on how to build, test and run.

Advantage of this approach is you see how they code in an environment they are comfortable with all the tools they have under a reasonable deadline. You get to see their code style, documentation style, thoroughness on test cases.

Schedule a screen sharing session to have them walk through their thinking process and decisions they made. Go deep as much as you need. This exercise will tell you a lot about a candidate than couple of 40-min code exercise done on the fly would. One of my candiates came up with 3 different solutions and it was interesting to see her thinking process from a basic solution to a more sophisticated solution.

If you are happy with their work and would like to move to the next steps then let them know as soon as possible. Promptness shows efficiency of your hiring process and at the same time gives candidates more transparency and less anxiety regardless of outcomes.

Virtual onsite

  • I often have my team members ask problems related to the ones we are currenly tackling. Because you have likely thought through the problem more than the candidate, you can ask more nuanced questions on pros and cons of certain approaches. This adds fun in my opinion and you often get comments like “Oh, that’s interesting. I did not think about that”. However, a mistake I have made is to expect candidate to have similar understanding of the problem at the get go. This is obviously not fair to the candidate. It is fair however to expect a candidate to give you a better solution if you are guiding them towards one based on your own experience.

  • Give them heads up on kind of problems you will be asking. Couple of my mentees were asked to build a working REST API from scratch. They ended up wasting first 15-20 minutes setting up a new project on the fly and getting right frameworks loaded. I think it’s better to let candidates know that their laptop is setup properly with the tools and frameworks they need. It’s a win-win for both parties.

  • For the problem with same complexity give them more time to come up with a solution than you would have given otherwise for a real onsite interview. There is communication overhead of not being in the same room.

I have purposely not talked about other best practices around reference checks, diversity, compensation etc. There are already tons of good references online.

Stay safe and good luck with your hiring process.