The technical interview for a software developer position should give you a clear picture of the candidate’s ability to perform the most important aspects of the job: writing quality code and fixing broken code.
Beyond these general knowledge questions, hiring managers need to ask technical interview questions that determine the candidate’s understanding of software development itself.
The following three questions can help hiring managers uncover top technical talent. Keep in mind that these three questions are initial technical questions hiring managers might ask candidates; potential peers will most likely ask even more in depth technical questions.
1. Please describe the architecture of your most recent project.
Ask candidates to describe a recent project in depth. Invite them to use a whiteboard or a large pad of paper to draw diagrams, if needed.
You’re looking to accomplish two specific things with this type of question. First, you want to look beyond what is listed in the candidate’s resume and confirm that the developer truly understands the work. This process will also help you determine just how active the software developer was in the example project and give you a good idea of that person’s level of decision-making.
The other goal is to see how well a programmer can present a technical concept. Evaluate the developer’s answer as if that person were presenting to both technical and nontechnical business leaders and project stakeholders. Would every person in the audience walk away with a solid understanding of how the application works and why things were done in a certain way?
The ability to communicate well with nontechnical colleagues is a critical skill if you want someone who can be a lead developer or software architect.
Hiring? We can help:
2. What lessons have you learned from your current project?
Every project presents an opportunity for a software developer to expand skills and knowledge. A candidate who has the curiosity and open-minded nature required of a top programmer can take away something valuable from every project they work on.
One of your technical interview questions therefore should be designed to give candidates an opportunity to share what they have learned on previous projects. Another version of this question is “What do you like about your current assignments and what would you improve?” The candidate you want to hire will be able to answer this in a way that shows the ability to learn from their experiences, whether they were positive or negative.
3. Let’s see some code.
Many interviewers fail to ask technical interview questions that require candidates to prove that they can do exactly what the software developer job entails: write code.
So, be sure to have the candidate write a few simple pieces of code. Two or three small code samples (about the size of a function, roughly 5-10 lines of code) should tell you very quickly if the candidate actually knows what he or she is doing.
One popular version of a short programming test is FizzBuzz. You might want to give a time limit on this test or the results could be misleading. HireVue shows how long it takes candidate to complete challenges set up by the hiring manager. Another example of a test is to ask the candidate to write a function that finds the maximum value in an array of integers.
These tests do not merely help you identify unqualified applicants, they also can provide insight into how a particular candidate thinks. Does this person launch into a problem without proper planning only to realize he or she made an easily foreseeable mistake? Is the developer’s code clean and demonstrating sound coding practices? Does the candidate listen to instructions and follow them properly to solve the problem?
Try asking these technical interview questions in your next interview with a software developer candidate. You might just be surprised how many professionals with impressive resumes you’ll end up weeding out.