When it comes to conducting technical coding interviews, there have been many changes in the way they are conducted, but the end goal has always remained the same. There is not a wrong or right way to conduct the technical interview, but the 7 tips in this article are the best ways to find the best developer resource for your team.
Let’s be honest, if you are an employer, software developers are not the cheapest resource, so it’s extremely important to find the most qualified resource to get the most value of your investment. If you are a software development team lead or manager, finding the best-qualified resource can be the difference between days filled with headaches or days filled with extra time to complete the important tasks needed to drive efficiency and quality within your teams.
By the end of this article, you should have a good understanding of how to find the best software developer resource during your technical interviews using the 7 tips addressed in this article. If you would like more information about conducting technical interviews after reading these 7 tips, I recommend reading Conducting The Programmer Job Interview by Shroff or the Udemy course called Interviewing Skills: How To Recognize And Hire The Best by Mark Fiveman.
Who Are These Tips For?
These tips are made for any employer or team leader who is currently holding or planning to hold interviews for a software developer position. To elaborate, this article is for anyone who is looking to hire the best way to find the most qualified software developers. If this does not describe you, please do not let it discourage you from continuing to read this article if you want to still view these tips.
What About The Interviewees?
I’ve been on both sides of the interview table many times and I’ve found that both sides can be daunting. Rest assured, I plan on providing tips to the interviewees of technical coding interviews within another article, but improving the interviewer side through the tips provided in this article is the starting point to help the entire process for both sides. With this said, if you would like a specific topic covered in the next article related to technical coding interviews, please leave a comment below.
The 7 Most Important Technical Interview Tips
These 7 tips are the amalgamation of years of experience with interviewing and being interviewed with a wide array of techniques. If you have other tips or general comments, please comment below this article.
1. Research Exercises
One of the favorite quotes a professor said to me is that the only piece of software that was written from scratch was the very first piece of software. So often, when going through a technical interview, I am given some rudimentary exercises and told to code a solution without using any resources. Since the only piece of software that was written from scratch was the first piece of software, then why would any interviewer not allow the interviewee of a technical interview not use other resources?
I have been told by many team leads and managers that I am very quick when it comes to completing coding tasks. To be completely honest, I’m not a better coder than anyone else, but one thing I have worked on perfecting is how to be as efficient as I can be when it comes to knowing what I don’t know and finding the answers to what I don’t know quickly.
Despite many common beliefs, most of the time, developers are not actually coding. Unless a developer is being told exactly how to code a piece of software, software developers are using most of their time troubleshooting, debugging, and most importantly, researching how to write the code. On most days, I will spend around 60% of my time researching issues and menial coding logic and 40% of my time actually writing code.
What Is The Point?
So, why have I spent this time explaining what developers spend the majority of their time doing on a daily basis? The reason is to explain that one of the most important tests you should give to a software developer during a technical interview is a research exercise. This isn’t exactly like writing a research paper though.
How To Conduct Research Exercises
When giving research exercises, you should ask the developer to code a piece of software that is extremely difficult, but he or she can use any resource needed (short of just asking the interviewer for the answer). The other caveat should be that the interviewee should talk the interviewer through each step he or she is taking to figure out how to code this piece of software.
Good examples of difficult types of software to code are ones that require integration, have very little documentation, and are domain-specific. Unless the developer has already coded the exact type of software with the same technology in the past, the developer will likely need to perform some research to derive the solution.
The important parts of this exercise are for the developer to explain the steps he or she is going through to figure out how to code the software and allowing the developer to use any resource necessary, even if it is calling a friend for help who has the domain experience. As far as a time limit, it is completely up to you, your schedule and the difficulty of research exercise.
What Are The Benefits Of Research Exercises?
Research exercises allow the interviewer to actually see how the interviewee troubleshoots difficult issues while under pressure. You, as the interviewer, will also be able to get a first-hand look at the resources the interviewee has up his or her sleeve. Lastly, you’ll be able to see how well the interviewee can articulate and rationalize his or her thought process during troubleshooting.
2. Ask For Feedback
Just because we, as interviewers, may know the answers to all of our questions, but that does not mean we are expert interviewers. We should not assume that our interviewing process is the best it could be. We may feel that the interview went one way, but the interviewee may feel it went another way. The best way to understand the faults in your interviewing process is through feedback.
What Is The Point?
Remember that your interview process is extremely important to get right because it’s the process that vets your most important resources. The more you know how to improve your interviewing process, the more likely you will attract and acquire the best talent. This feedback will also help to codify your interviewing process, which we’ll talk about a little later.
How To Collect Feedback
I’m not going to tell you how you should collect feedback, because I don’t think there is one best way to do it. It will likely depend on your interview process and the information you want to collect. I can provide a few recommendations that will help you get the most out of your feedback though.
My first recommendation is to make a standard form or layout for the feedback. Having that standardization will allow you to start noticing trends and make reasonable changes to improve your process. This will also help save time so you don’t need to think of feedback questions to ask every time.
My second recommendation is to make the feedback form anonymous. There are multiple reasons to keep your feedback anonymous. The first advantage is the removal of any bias that may come with knowing who the feedback is from. You should try to provide equal opportunities for all opinions to be considered to make the overall feedback process effective.
The next advantage of keeping the feedback form anonymous is it will aid in the interviewee’s comfortability with being honest. Just because the interview is over, it doesn’t mean the interviewee will be any more at ease. On the contrary, the interviewee will likely be more nervous because he or she is now reflecting on how the interview went and how he or she can continue to make a good impression to gain additional marks.
Since immediately after the interview is when the interviewee will be contemplating how everything went within the interview, this will be the ideal time to get the feedback from the interviewee. Additionally, the interviewee will be less likely to forget specific details of the interview.
One of the most obvious ways to get feedback is by asking the interviewee if he or she would take the time to fill out a physical feedback form at the end of the interview and drop it into a drop box when he or she leaves. It is absolutely pertinent that you provide the interviewee enough time and privacy to fill out the feedback form to allow for absolute candid responses.
You can use an electronic version of a feedback form and ask the interviewee to fill it out on his or her own time, but you will run the risk of the interviewee misremembering some key aspects and events during the interview. All of these recommendations are not required and the interview process is completely up to you, but these recommendations will only enhance your chances of creating the best interview experience.
3. Create Coding Tests For Each Level And Position
I cannot tell you how many times I’ve gone into a technical interview for a senior-level development position only to be greeted with the same type of string manipulation tasks that I was expected to code at a very junior-level technical interview. Every time I am faced with these rudimentary exercises, I say to myself, “I hope this is not the type of work they give to their senior developers”.
What Is The Point?
When you progressed through grade school, you weren’t retaught the same concepts every year. If we were retaught the same concepts, we would be extremely proficient at the alphabet, but we wouldn’t have any other knowledge. The point is that as professionals progress within their careers, they will likely learn new and more complex concepts and these are the concepts we should be testing these individuals on during technical interviews.
How To Create Multi-level Coding Tests
I recommend having a separate technical interview process and questions for each level of each position. The complexity of these questions/tasks should be relevant to the level of the interviewee and the type of work he or she will be conducting on a day-to-day basis. This will likely require a lot more work and thought processing to set up, but just remember that this will have a direct effect on the efficiency within your teams and company.
4. Have The Interviewee Code With Other Developers
When athletic scouts look for talent, you will hardly ever see them only evaluating athletes when they are practicing or training by themselves. Scouts who are evaluating athletes will attend team practices and games to see not only how a star athlete performs individually but also how he or she performs with his or her respective teams.
This should be the same approach the interviewer takes during a technical interview. It’s true that a good part of the day, developers will have their heads buried in their computer screens with little interaction, but there are many times throughout the day developers will interact about requirements, issues that arise during development, or even simple anecdotes or jokes.
What Is The Point?
Most developers will work on teams unless the software is a very simple piece of software or the developer is an individual outside contractor. The majority of development teams within any organization will need to collaborate on a daily basis. Since interacting is a vital part of any developer being hired to work on a development team, that is how technical interviews should be performed as well.
How To Code With Other Developers
There are multiple ways in which an interviewer can assess how an interviewee interacts with development teams. One way to assess the interaction is by having multiple interviewees interview together. This is actually a common practice when a company has multiple interviewees interviewing for the same position.
I don’t find anything wrong with this approach, but I personally prefer to have interviewees code next to actual team members he or she will likely work with within the actual environment he or she would work in if he or she was hired. This will help assess how the interviewee will actually work in the team in the environment you expect him or her to work.
For instance, if you expect the interviewee will work in a war room with a production support team, it’s important to assess the interviewee in that war room next to the support team. What would be really ideal is to have the interviewee work on a current or future task of the team to not only promote efficiency and prevent loss of time but also possibly gain a new perspective on how to complete the task and future tasks. This can be extremely beneficial when interviewing architects to get a new perspective on how to architect a future project.
5. Have More Than one Interviewer
I have gone into many coding interviews where I am only greeted by one interviewer. There are many reasons why there may be only one interviewer in an interview such as a lack of personnel, not enough technical experience, or just existing company policy. I believe it is still best to have more than one interviewer within any interview.
What Is The Point?
Having more than one interviewer within an interview is more than just a way for a company to legally cover itself. When having more than one interviewer, you prevent an interviewer missing key parts of the interview because he or she is taking notes or setting up an exercise. You also gain multiple perspectives for an interview for a more robust interviewer review.
How To Include Multiple Interviewers
The obvious way to have multiple interviewers is to have more than one person in the room during the interview. You can have more than one interviewer asking questions, but even if one of the interviewers is only an observer, it will at least provide more ears to fully hear what the interviewee may be trying to explain.
If there is absolutely no way to have more than one interviewer during an interview, you can always ask the interviewee if you have his or her permission to record the interview to review later with colleagues. The downside of this approach is that if the interviewee declines, then you will have no option but to only have one interviewer.
6. Have A Standard Codified Interview Process
I know that everyone has his or her own style of interviewing and some believe their interviewing tactics are better than others. No matter what a company feels is the best practice for interviewing, the procedures and best practices should be codified and available for any employee to view.
What Is The Point?
I’m a huge believer in codifying all standard processes within a company for many reasons. One reason is what I just mentioned regarding having something available for employees to reference. Another reason to have a standard process is if the only employee with the interviewing process best practice domain knowledge leaves the company so does the domain knowledge.
Additionally, standard interview processes provide the ability to more easily make improvements since everyone will understand the process. This will also provide expectations so that employees will know if they are deviating from the process. This will ultimately lead to hiring the most qualified candidates.
How To Create A Standard Codified Interview Process
The first step to creating a standard process is to have a team come together to decide how each stage of the interview should be performed. This should include the types of participants, the topics, exercises and questions that should and should not be utilized, and the key traits/answers the interviewer should be looking for within the interviewee.
Once the team has decided on what the standard process should be, the team should work on codifying the process. Many companies feel the word codifying means printing the procedures out and placing them in a binder on a shelf somewhere. That is perfectly fine, but not required. Codified could mean that it’s saved in a shared repository in a company shared drive or source control.
7. Be Mindful Of The Interviewee’s Time
I have been many different coding interviews where the expected interview duration was much longer than anticipated. On one hand, it’s a good sign that the interviewer is interested in your responses, but on the other hand, it can be frustrating if you have other commitments such as work or other interviews to attend.
To add to the frustration, I’ve had the recruiter who referred me to the client call me in the middle of the interview to see how the interview went because he or she expected it to be over. I know first-hand that it may be difficult as an interviewer to stay on schedule when you cannot anticipate how detailed the interviewee’s responses will be, but having the standard process can definitely help.
What Is The Point?
When it comes to interviewing, it’s just as important for the interviewer to make a good impression on the interviewee as it is the other way around. As an interviewee, when all things are considered equal among job offers, the deciding factor can be the impression given by the interviewer and time consideration around an interview can weigh in on the decision.
Generally, the interviewee will not care too much if the interview exceeds 20-30 minutes over the anticipated duration, but there should be no reason to go past that threshold. If you want to hire the best candidate, then you must show consideration to time expectations.
How To Be Considerate Of the Interviewee’s Time
The best way to be considerate of an interviewee’s time is to have one of the interviewers act as a timekeeper to keep the interview moving in a timely fashion. As mentioned before, having a standard interview process can also help with keeping the interview within an expected timeframe.
It is perfectly reasonable to ask the interviewee about his or her flexibility regarding the duration of the interview. Regardless, make sure you let the interviewee know his or her time is valuable to you and the company and assure him or her that you will try to keep the interview prompt. Most reasonable technical interviews I’ve conducted or participated in ranged from one to three hours. Anything more than three hours can lead to fatigue and angst from both sides.
Hopefully, these tips have provided you with some advice with conducting the best technical interview. The better technical interviews we all conduct, the more qualified candidates we’ll acquire for the future of development. If you have any expert tips with conducting technical interviews, please leave a comment below.
If you like the shirt below, you can view more about how to get it here.