Thoughts on interviewing
One thing I didn’t anticipate spending so much time on when I joined a startup was interviewing people. Previously, I’d done some interviews for teacher candidates, which mostly consisted of a sample lesson and then some behaviorial questions. In grad school, I helped interview a few postdoc candidates, but as somebody whose research was outside the mainstream of the lab, I was never really a central participant. So now that I’ve been doing interviews for machine learning, computational biology, and protein scientist positions for 8 whole months, here are my thoughts.
I like to approach the interview process with two goals: gathering information to make an informed decision about the candidate, and convincing the candidate that they want to join us.
Interviewing as inference
We want to hire people with strong scientific and technical skills in addition to certain values and soft skills. The goal of the interview process is to gather data and then to infer the candidate’s capabilities in each of these areas. The scientific and technical skills are position-specific, but values and soft skills are more universal. I’ve been interviewing as if those values and soft skills are:
- Adaptability and problem-solving: Can the candidate adjust to changing situations? Can they systematically apply their technical skills and knowledge to solve problems?
- Computational- and bench-science as equal partners: Does the candidate understand the value of both? Can the candidate work across the divide?
- Clear and open communication: Can the candidate clearly communicate what they’ve done and why it’s important as well as what areas they may need support in?
- Equity and inclusion: Does the candidate value the contributions of all sorts of people?
For ML scientists, I look for a combination of ML/DL/statistics/math skill, biological knowledge, and software engineering skill, in that order of priority. Very few candidates will be strong in all three areas.
When I interview candidates for other teams, I primarily assess their values and soft skills, although I do like to ask an occasional protein engineering question or ML question, depending on their background. The best practice here is to seek guidance and clarity from the hiring manager on what they would like me to assess during the interview.
Process
My company mostly uses a 3-stage interview process, although for candidates without the experience to give a research seminar usually have an additional take home test. The goal at each stage is to gather evidence and to convince the candidate that they want to work with us.
Resume screen
The goal of the resume screen is to see if there is sufficient evidence of our desired technical skills in ML, biology, and software engineering to move on to a phone interview. I focus on projects performed in previous roles and first-author publications as the best indicators of the ability to do these things at a research scientist level, with each of the three areas getting a rating of no evidence/some evidence/strong evidence. There must be strong evidence of ML research abilities to proceed to a phone interview.
Phone interview
The goal of the phone interview is to decide whether to proceed to an on-site and to persuade the candidate that they want to proceed to an on-site. During the phone interview, I try to gather evidence of the following:
- Technical skills (ML/bio/software)
- Problem-solving ability
- The ability to communicate those skills
- Desire to work at a protein engineering company
In addition, I want to communicate to the candidate that we are a company that
- Has a worthwhile mission
- That they would enjoy working at
- Treats their employees well and fairly
I generally structure my phone interviews in the following way:
- An overview of what to expect.
- Quick introduction to my background and role.
- Quick overview of our company and our goals and values, which should turn into a conversation. This gathers evidence for 4 and hopefully convinces the candidate that this is someplace they want to work.
- Ask the candidate to explain a project from their resume, and we then have a conversation about it. This gathers evidence for 1, 2, and 3.
- Time for the candidate to ask questions. This may gather evidence for 1, 2, 3, or 4 but is primarily meant to convince the candidate that this is somewhere they want to work.
On-site
The on-site will generally include lunch or dinner, a seminar, and a series of one-on-one or two-on-one meetings with the candidate. The goal is to gather evidence of the following skills as well as to convince the candidate to accept an offer should they receive one.
- Technical skills
- Problem-solving ability
- The ability to communicate those skills and their problem-solving process
- Their desire and ability to communicate across disciplines
- Ability to adapt to a dynamic environment
The seminar, if there is one assesses 1, 2, 3, and 4. I’m really looking to see that they explain their ideas and conclusions in ways that are accessible to a mixed audience of computational and biological scientists, that they can answer reasonable questions about their methods, and that the science is sound.
The outline of the small meeting is similar to that of a phone interview:
- I give an outline of how we’re going to use the time
- I introduce myself, my background, and my role
- I ask 1-2 technical, situational, or hypothetical questions
- I give the candidate time to ask questions
I like to bring 1-2 questions to my one-on-one with the candidate. These questions should be coordinated with whoever is running the on-site to ensure that we are gathering orthogonal evidence. When I’m running the on-site, I give everybody at least one suggested question or topic to ensure that we’re efficiently exploring the question space. I also do have standard technical and behaviorial questions that I want asked of all ML candidates to ensure a fair comparison and to build up informative baselines over time.
Afterwards, I also prefer to have each person share their feedback with me privately so that they are not unduly influenced by what others think. Once I’ve heard from everybody, I share the feedback and conclusions with everybody involved in the process.
Some advice for candidates
There’s lots of places online to find general interview advice, but here are some things I’ve come across as an interviewer that I didn’t read about when preparing for my own interviews a year ago.
- If you’re giving a seminar, make sure your talk is accessible to people with different backgrounds.
- If you’re giving a seminar, do not go over the time. Especially do not continue to talk for 10 minutes after being told you’re out of time.
- If you mention something like “Bayesian optimization,” “active learning,” or even “feature selection” in your talk or your resume, be prepared to talk about it. There will be curious people in the audience (me) who will ask not because they want to skewer you but because they got excited to have found a fellow nerd, and they’ll be disappointed if it turns out you don’t even know the definition of the thing.
- Don’t be worried in your one-on-one if your interviewer keeps asking follow-up questions to initial technical question. I’ve somehow gained a reputation for being a tough interviewer because I try to go down all the rabbit trails that the candidate’s response suggests. Ironically, it’s the strongest candidates who think I’m the toughest, because if you obviously can’t answer the initial question it’s actually much more difficult to ask follow-ups.