Because we all want to work with the best people for the job!
Part of my work as the Technical Lead/Manager is to help recruit new-hire for my company. I have interviewed others dozens of times and been interviewed so many times as well.
Here are the things that I wish to do in my interviews.
This is the first thing I would like to build in an interview. A conversational interview is where a candidate and interviewers actively join into a conversation. Through the conversation, we are trying to understand each other, to see if we are providing things that each party needs.
An interview should never be an interrogation, where questions are being asked and the candidate must answer them all in a passive manner.
I would start with a scenario that would help the candidate to expose their understanding of the technical insights to help solve that problem. For example:
“We had a report of laggy effect when the user starts scrolling on our news screen from Google Play store review. Can you help us to troubleshoot this issue? any question is welcome”
This scenario is so common from the perspective of the app developer. What we want to see from the candidate is the methodology to troubleshoot it. What question/hypothesis he is having on the subject and how he proceeds to validate such a theory. It’s a process of thought that I want to see from the candidate. Along the way, I may provide hints or more clues to narrow down the script to specific cases.
The scenario question when being addressed could be led to other interesting deep technical questions that could be raised.
For example, when I asked about the design for a simple newsfeed screen, the caching problem is usually at the core of the conversation to help provide a seamless experience for our users. I can ask about the strategy of caching in this context or the implementation detail of the caching algorithms. I can also ask about reactive programming usage if the candidate mentions it, for example, to help merge multiple data streams (local, network, etc) to display/refresh the content of newsfeed.
Sometimes, because of anxiety that may come from the atmosphere of the interview itself, the candidate may become a bit overwhelmed with the progress of the interview (we were all in that position before). It’s good to help them to calm down a bit and start talking about something else(their hobby projects, for instance, to help them ease and find the confidence in how well they have done in such a project, or things that make them proud).
Some people seem to have huge energy that can take the conversation for eternity.
Captain America can have an all-day-long interview!!!
But, unfortunately, it’s not all of us. So it’s better to keep the agenda (with backup time) for my interview and focus on the things that I really looking for from the candidate. That would keep the interview process effective and time-boxed.
I’m interested in this kind of question as it’s a way to strip down all the big wording, just focus on an idea of a certain concept. It’s a nice-to-have question, not a minus point for me when the candidate performs really well overall. An example, explain the concept of “Dependency Injection” like I’m five.
This is the experience I have when I have the interview on Android scope as you can see from my examples. But this should be relevant to any other fields of software engineering.
Do you have any sharing/preference on how an interview should be conducted and you wish to change? Share with me in the comment section below? Love to hear from you all ❤ ❤ ❤
Previously published at https://medium.com/@toantran/android-interviewing-from-the-other-side-of-the-interviewer-b4dc9f22cd1e