Hiring In-House: How to Find a Perfect Match for Your Project
By: Sandra Parker
Tags: Tech, Startup Lessons, Startup, Business, Recruitment

Hiring In-House: How to Find a Perfect Match for Your Project

When looking for a software developer, designer, or QA engineer, what questions do you ask your candidates to figure out if they’re the right fit for your project?

Hiring in-house can be a pretty difficult task to accomplish for an entrepreneur, project manager, or team lead. You always want to get a full picture of whether your candidates possess the tech skills required for the position, as well as understand the way they think, solve problems, and approach particular situations. Howbeit, software engineering interviews take a lot of effort to prepare, and you don’t always have the time to put together a comprehensive list of questions for each candidate.

As an outsourcing company, around 80% of our business involves finding and onboarding the right people to our clients’ software development projects. And throughout many years of revisions and improvements to our search and recruitment processes, we’ve settled on the following interviewing methods, techniques, and questions that can help you make certain you find the right fit for your project.

Technical skill assessment

A hard skill evaluation is a crucial part of any technical interview. It helps you learn about your candidate’s engineering competencies for the particular role you’re offering. And even though the technical interviewing process may seem pretty straightforward, many tech companies out there still manage to turn such interviews into some kind of tech quizzes that don’t really say much for the candidate’s actual coding skills or how well they fit in with your project goals.

It’s better to avoid focusing solely on textbook questions such as on data structure, algorithms, or common logic. The right whiteboard answers may indeed show some extent of the candidate’s technical knowledge that, combined with a small coding test, would be enough to assess the qualifications of a trainee or junior-level specialist. But those answers would never be enough to make certain the candidate qualifies for a more demanding role on your project.

To properly evaluate any of the candidate’s technical skills, you need to tap into their technical background, learn their actual experience, and review at least some code samples from projects they worked on — something quite often overlooked by inexperienced interviewers.

“The best way to assess the tech skills of a candidate is through a case study interview. For that, you need to carefully study their CV before the interview. Ask them about the tech requirements and problems they dealt with on projects similar to yours. Ask about their role and how exactly they participated in solving the given problems. Ask for examples of those solutions and maybe a portion of code for review. In case they can’t show anything from one project, you ask them for a snippet from another. Case studies are the most reliable method of learning how well the candidate applies their technical knowledge and skills to solving a particular task.” — Oleg Sivograkov, COO at QArea

Thus, if you want to get a full picture of the candidate’s hard skills, relying purely on whiteboard questions just won’t cut it. Help the candidate demonstrate their knowledge through actual cases from their past experience. When they can provide at least one or two real-life examples that cover the required skills, you can clearly see if they qualify for the role. If the examples did not suffice, give them a project-related test case to solve on top of that.

Analyze their approach and the way of thinking in the course of solving a given problem. You may find that one candidate offers a more systematic or elegant solution at the level of code design than the other.

Examples of well-crafted technical interview questions:

Among the technologies listed on your resume, which do you prefer the most and why? Speaking of technology X you’ve included in your CV, what do you think about it? What are its best use cases? How and where did you use it before? Do you think it’s a good choice for project Y? Are you familiar with this coding problem? Have you faced it before? How did you solve it then? How would you solve it today? Tell us about your most recent project. At what stage did you join them? What was your role? Were you involved in choosing the tech stack? Why did you go with technologies X, Y, Z? What was your biggest programming success? How did you achieve it? Could you have done it even better today? Are there any programming decisions in your past that you consider failures? What was the problem? How did you approach it? Have you taken any steps to fix it? What could have been done differently? What did you learn from this experience?

Behavioral interview questions

There can be many general and project-specific soft skills that determine if the candidate is a good fit for your project. And the most effective way to evaluate those is to avoid asking generic questions that the candidate has probably rehearsed before the interview. To get detailed and honest answers, experienced managers use a well-established technique called Behavioral Event Interviewing (BEI). This interviewing method involves asking the candidate to describe their actions and experiences in various situations they had in their previous jobs. Situations that are relevant to the position you’re offering them.

Behavioral Event Interviewing is a pretty time consuming (an interview takes around 1–2 hours) yet immensely effective and reliable technique that gives you an in-depth understanding of how the candidate thinks and acts in particular circumstances, conditions, and situations. It is the best way to see how the candidate would go about fulfilling their role in your project.

Let’s have a look at some of the most commonly required soft skills in IT job listings and the questions to help you properly evaluate these competencies.

Attention to detail

For a software engineer, attention to detail ranks very high on the scale of importance, as you probably don’t want your code to be riddled with bugs. It’s also the key soft skill to look for in a quality assurance candidate. Check if the candidate possesses the expected thoroughness and accuracy in accomplishing tasks:

How do you test your code? What tools and techniques do you use to ensure that there are no mistakes in your work? Tell us about a time you made a mistake. Did you notice it yourself? How? What did you do to fix it? Have you ever worked on a task where it was crucial to make no mistakes? How did you act on it? Did you succeed?

Result orientation

While QA engineers are more process-oriented and don’t really require this skill, focusing on the final result is a very important trait for a software development candidate. Here are some of the questions to help you assess the candidate’s ability to understand a common goal and act on it:

Can you give us an example of an important goal you reached on any of your previous projects? What was your part in achieving it? Have you ever failed to achieve a project goal? What were the circumstances? What stood in your way? How did you handle the situation? Have you ever had to rely on others in achieving a project goal? What did you do to help the situation? How did you feel about it?

Conflict management

Even though a little conflict and healthy disagreements can be a good thing, in most cases, poor conflict management skills can lead to numerous problems, including loss of productivity and failed goals in both the development environment and communication with clients. Make sure the candidate knows how to deal with the negative effects of the issue:

Have you had disagreements with teammates? What was it about? How did you handle the situation? If not, what could you have done differently to either prevent or resolve the conflict? Were you ever paired with a very difficult person? What was the biggest challenge? How did you handle it? Have you ever been a part of a team-wide conflict? Did you do anything about it? How was the conflict resolved?

Adaptability

From changing project requirements and workflows to evolving technologies and methods, developers need to be able to effectively handle change. After all, adaptability is one of the fundamentals of Agile software development practices. Check how the changing conditions and different circumstances affect the candidate’s thinking and productivity:

How do you manage your daily workload? Is there a specific process you follow? How do you adjust it to changes over which you have no control? Have you had experience working on several projects at once? How did you maintain your productivity? Can you describe a situation where you experienced an unexpected project change? What was it? What impact did it have on you? How did you adapt to this change?

Teamwork and communication

It’s absolutely fine if the candidate is a solo player. Depending on the project, they can still fulfill their role very well. But forcing such people into active teamwork or communication won’t do your project any good. So you definitely want to find out if the candidate’s temperament suits the role you’re offering them:

Do you prefer working as an individual or as part of a team? Why? Have you ever been paired with someone on the project? How did you handle it? Can you describe a team experience that you found disappointing? What happened? How did you address the issue? What can you tell us about communication in one of your previous projects? Were there any miscommunications? What caused them? What could’ve been done to avoid them?

Problem-solving

Problem-solving is a very useful skill for a software developer to have. In particular, the ability to ask questions and clarify tasks, which is especially important in Agile and Scrum environments where requirements are almost never ideal and there’s always plenty to figure out yourself. Find out if the candidate is good at it and knows how to avoid unnecessary rework:

Can you give us an example of a situation where you were faced with unclear requirements? What steps did you take to get a better understanding of the task? What was the outcome? Have you ever stopped a small problem from turning into a major issue? How did you go about preventing it? What do you normally do if you get blocked on a task? Can you walk us through the process?

Self-motivation and pace

Knowing what drives the candidate to do things can really help you keep them committed to the project in the long run. Try to find out the internal and external factors that would motivate the candidate to work on your project and perform the tasks at the quality and pace you expect on that role:

How much coding can you do on a daily basis? Do you prefer long or short sprints and why? What steps do you take to prevent burnout? What kind of challenges excite you? Can you describe a situation where you achieved a lot more than what was expected of you? How did you do it? Were your efforts recognized? Do you have a passion project outside of work? How long has it been going on? What prompted you to get started? Does it ever make you feel overworked?

Final thoughts

If you’re looking to hire a trainee or a junior specialist for your project, you shouldn’t exercise such sophisticated interviewing approaches. It’s most likely that those candidates aren’t nearly experienced enough to be able to provide you with the examples and code snippets relevant to your project. In this case, a simple technical knowledge evaluation combined with a test task will do the job just fine.

Hiring Middle-, Senior-level specialists, or C-level executives, on the other hand, involves much higher responsibility and risks associated with their role on your project. The more important the role, the more attention you need to pay to the actual experience and cases from the candidate’s background.

“For example, if you’re looking for a software architect, there’s no way to know if they qualify for the job other than to conduct a comprehensive analysis of their past projects. You need full, in-depth answers on what they built in the past, how they did it, what strategic directions they took, what value it brought to the business, etc. Otherwise, you risk hiring the wrong person for the job and losing a lot of time and money looking for a replacement. This is especially important for fixed cost projects.” — Oleg Sivograkov, COO at QArea

Last but not least, even the ubiquitous “Where do you see yourself in 5 years?” can tell you a lot about a person if you ask it in a more creative way. Say, “What are your career aspirations?” or “What are you looking for in your next team or company?” There are no solid answers to those questions, but at least they show you if the candidate sees themselves as purely a developer or considering taking on a more responsible role in the future such as team lead or project manager. This enables you to provide the candidate with the opportunities they expect and ensure that they are happy to stick around.