Whether you are an owner of a software product or a technical specialist working on one, at some point in time you will inevitably face the need to interview software engineers to work on your project.
The main trick here is to test not only one’s technical skills but to get an overall impression of what kind of person a developer is, whether he will fit on your team, and what value he might bring to the company.
In this article, we assembled the main to-dos of interviewing software engineers. We hope these practices will help you conduct technical interviews in an efficient manner and pinpoint the most suitable candidates for the needed positions.
- Prepare for the interview
- Tech skills assessment
- Soft skills assessment
Prepare for the interview
The first step in conducting an interview is to actually prepare for it in advance. In this way, you set the base for a smooth interview process and make sure both you and the candidate are well prepared and the expectations of both sides are met.
Define your goals
Obvious as it sounds, but before screening the candidates, you need to very clearly define your goals. Why do you need a developer in the first place? What kind of specialist do you need exactly and what are your long-term goals?
For example, you might simply need some assistance with the front-end part of the application or you might need a person who will be able to take on a management role after some time. Such thighs need to be considered and defined by you in advance so you know exactly whom to look for.
Make sure the vacancy description is accurate
One of the biggest problems that arise during a technical interview is when a developer finds out that the vacancy is not exactly something he was hoping for (or vice versa). This is the issue of miscommunication when you were not able to properly communicate your expectations to the candidate.
When such situations arise, the candidate usually declines the offer since it’s not something that a person was hoping for. So it’s your responsibility to ensure the vacancy description is as accurate and corresponds to your needs as possible.
Tech skills assessment
The biggest and probably the most important part of a technical interview is the assessment of technical skills. The easiest way to do so is by providing a test task to a candidate and asking them specific questions related to their field of expertise. And while the process itself is complex enough, there are also certain hidden rocks to be aware of.
Do not limit one’s knowledge by narrow questions
If you have a specific problem and want the candidate to solve it, try avoiding narrow questions like “How do you do this in .NET?”. Instead, ask “How would you solve this problem?” and let the candidate show their creativity and the way they approach such issues.
You can always narrow the question down if needed, but it’s highly recommended to start with a broad question first and look at the candidate’s thinking process and approach towards an issue.
Do not demand in-depth knowledge of a specific technology
It may sound strange but do not rush to judge one’s technical knowledge based on how well they know a specific technology. Of course, a good technical specialist should know their way around tools they work with, but it rarely happens that a person has a solid, in-depth knowledge of a tool.
If you want to test how well a person understands a technology, ask questions that will show their understanding of the semantics and fundamentals. A question may be “What can possibly go wrong in this case?” or “What’s the best way to perform a certain action for this specific use case?”
Allow candidates to express creativity
When it comes to software development, there is no universal way to solve a certain problem. Hence, do not expect a candidate to answer your question in one way only. Instead, give them room for maneuver and see how creative they get.
Also, do not view a complex approach in a negative light. Remember that developers (well, most of them) love challenges? Sometimes complexity is not a flaw, especially if it provides an efficient solution.
So if a complex approach brought additional value or showcased one’s expertise in the best way, these are valid reasons to allow it.
Soft skills assessment
The second part of technical interviews that often gets overlooked is the assessment of soft skills. It is important to assess not only how well a person knows the required technologies but also how well of a fit he can become for your team.
After all, if you hire a rockstar engineer and their ego is out of hand, your project might suffer due to the inability of a rockstar to work as part of the team.
Learn about the candidate’s career path
One of the best ways to learn about one’s motivation to learn, grow professionally, and mentor others is by asking a candidate to talk about their career path.
In this way, you will easily see how a person progressed through time, what kind of challenges they were willing to take, and how they coped with them.
This is especially useful if you plan to promote a person in the future and overall need a strong leader to take place of a team lead or project manager.
Assess the willingness to learn and invest in client’s problems
One of the most important soft skills for any software developer is enthusiasm towards their work and willingness to learn. Because software engineering is an incredibly creative field, developers are more than welcome to play around and come up with new ways to common issues.
Of course, it doesn’t mean one shouldn’t follow well-established and proven patterns but enthusiasm is a great asset when it comes to coding.
Enthusiasm is also valuable when it comes to understanding the client’s problem. If a developer is willing to take a few extra steps in order to find the most efficient solution and provide valuable business advice, this is a great quality of theirs to cherish and encourage.
Assess communication skills and EQ
Communication skills and emotional intelligence are other important soft skills that are essential for software developers. Since a software developer always works as part of a team, it is essential that he knows how to communicate his own thoughts, listen to others, negotiate, and express his opinion in a proper manner.
As well, developers often communicate with stakeholders and discuss the implementation of new features or adjustments of current ones – all that requires great communication skills too.
As for emotional intelligence, this relates to one’s ability to be empathetic and understand others. This is especially important under the conditions of tight deadlines or sudden emergencies (that frequently happen during software development) so try assessing whether a candidate displays a high EQ level.
A technical interview, if conducted correctly, can be a great way to find the best developer for the needed position. On the other hand, if mishandled, an interview can be a disaster and will bring stress not only to the candidate but to you as well.
Therefore, we highly recommend investing some time and effort in preparation for the interview and assessing both technical and soft skills equally.