Based in San Francisco, Remote Branch is a blog by Todd Larsen. His posts suggest Management best practices for Hiring and Mentoring software engineers.

Conducting the Ideal Technical Screen

How do you optimize the technical screen, most critical stage of the hiring process?

Let’s focus on the step of the interview process after an initial phone call to describe the role and before they come onsite to dive deeply and broadly into their professional skills. For this phase, we want to get as much information about the candidate as possible in a short amount of time.

Create a situation that will let you quickly look for strong signals — both good and bad. These signals might not be deal-breakers in and of themselves, but note them and keep tally as the interview progresses. An accumulation of red flags is a good indicator that the candidate isn’t a good fit for the role and shouldn’t continue down the hiring funnel.

Preparation


It’s important to design a question that as closely mimics aspects of the actual job as possible. Keep it practical and stay away from whiteboarding or pseudo-coding algorithms to get the fullest picture of how this person builds a software product that other humans actually use.

You should already have a clear picture of the key duties of this role from the job description. Use this to distill a day-in-the-life of this role into a User Story that is:

1. achievable in a short amount of time
2. nuanced enough to allow for a variety of solutions
3. requires as many skills outlined in the job description as possible

Will this person be reviewing code regularly as part of their job? Ask them to do a live code review on a pull request!

Will this person be synthesizing feedback to gather requirements on technical implementations? Give them a hypothetical business problem and get them to design and build a feature to solve it.

Will this person be building pixel-perfect landing pages? Ask them to build a functioning page from a mock-up.

Keep it real, keep it focused, and use this opportunity to demonstrate how clearly your company defines and delegates work.

Coordination


Candidates will be judging everything from the handoff between recruiter and interviewers to how smoothly the remote interview itself process goes. 

I like to use Calendly to let the candidate book the time that works best for them. Using a scheduling tool like this eliminates the painful emailing back-and-forth just to coordinate a time to meet and you can use it as an opportunity to further set expectations for the candidate.

Ensure they know what they should prepare ahead of time (a ruby development environment? Or a past project to show-and-tell?) as well as what to do when the meeting time comes. Make sure they know they should expect a phone call from you or meet you in a Google Hangout, so there are no surprises or missed connections.

During the Interview


I spend the first few minutes thanking them for their time, doing a quick intro on my background at the company and any other friendly banter that makes sense and can break the ice.

It's also a good idea to get right to the pitch, and save any questions that the candidate might have until the end of the interview. Save the questions for the end because they're likely to come up with more as you work through the coding challenge and if it's not going well and you end the interview early, you can skip the questions altogether.

The clarity of how you prompt the question is key. Practice pitching the question succinctly so you give the right amount of information to the candidate to set them up for success. Choose language that is clear but doesn't overtly lead them towards the answer.

In addition to the specific technical skills that I'm assessing, here are some general questions I try to answer in the 1 hour that I spend with someone:

Are they thoughtful up-front? A strong engineer will ask questions and talk through possible solutions before they ever write a line of code. 

Do they keep it simple? Some candidates will try to over engineer a solution to impress you with their architectural prowess. A product engineer needs to quickly build features that solve the core problems and iterate or optimize as necessary.

Do they have deep user empathy? A product engineer needs to put themselves in the shoes of the user to build a feature that not only meets the acceptance criteria for the business, but also optimized the UX.

Do they quickly adapt as their solution becomes clearer? Expect them to adjust their approach as they zero-in on the final solution. Make it work as simply as possible, then make it work optimally as time allows.

Closing


Check in with yourself at the half-way point of the interview to decide how well it's going overall. Have they made enough progress to make you confident they'll finish the exercise in the given time?

If it's not going well, you should end the interview early. Time is our most precious resource so you should be sure to value theirs as well as your own. If the interview isn't going well, they've surely felt the struggle and shouldn't be shocked if you decide to end early.

Do this with empathy and kindness; they've been generous with their time and are likely emotionally invested in this interview session. Make sure to give them some actionable feedback on areas that could be improved, so they get some sort of benefit out of your time together. Use this as a chance to quickly mentor them and give them candid feedback on how to grow.

Even if the interview goes well, I try to identify some aspect that could have been improved even more. The best candidates want to join a team they'll learn from, so do your best to suggest an alternative solution or optimization that's useful. Show them joining your team means they’ll be surrounded by excellence.

Giving them live feedback, good or bad, is important. End this interview with a clear decision for the candidate so they aren't left wondering if there will be next steps or not.

If the interview goes well, now is the time to switch your gears from assessment to selling them on why this role is best for them. Why would they be a great fit for your team? Tell them how excited you’d be to work with them day-to-day. Answer any questions they have and do your best to get them excited about the idea of being on your team.

The remote technical screen is a key moment to stand out amongst the myriad opportunities a candidate has when looking for a new job. Buck the industry status quo by asking practical questions, demonstrating your own excellence and making them feel right at home.

Player/Coach or Coach/Player?

The Most Critical Stage of the Software Engineer Hiring Process