When hiring outstaff developers, clients want to find professional and responsible individuals with a high level of training and reputable soft skills. However, sometimes people who lack sufficient knowledge and experience are brought into certain projects for the wrong reasons.
This situation is actually very easy to avoid. Previously, we said that outstaffing means that the client takes an active role in choosing the staff. In this article, we have prepared for you some recommendations for interviewing techniques and for which kind of questions you should ask potential developers in order to most effectively determine if the candidate is suitable for your project or not.
How should the selection process work for choosing a software engineer?
Having strong developers is going to guarantee a high-quality and timely completion of a project. Every team member will need to take it upon themselves to pull the weight of their work and understand their own impact and significance. Personal qualities also play a role in who to hire, and it’s important that a person will be able to effectively communicate with colleagues and clients. There have been many cases where a technically skilled programmer can not get along with the rest of the team, and he has to be let go.
Therefore, a comprehensive selection process is carried out in stages. These stages help the recruiter and the client to accurately identify a specialist who has the suitable professional and personal qualities.
The selection process itself usually involves several steps, starting with the initial narrowing down of resumes and a test assignment, followed by interviews with the recruiter, a technical specialist, and the client.
Of course, the client is the one who knows their project best, and therefore, outstaffing necessarily involves their communication with the applicant.
So let’s begin:
1. Selecting the best resumes
Why is this necessary? To narrow down the list of candidates. This is going to save you time and weed out the people who don’t have the appropriate knowledge, experience and personal qualities. Accordingly, after familiarising yourself with the resumes, about 50% of the applicants can be screened out. Since the hiring process is open to the client, they can personally take part in choosing the resumes of the specialists who will be contacted for the next stages.
2. Setting a test assignment relevant to the vacancy
At this stage, the candidate is given a typical assignment, for example, to write a simple code to find the maximum element in an array (7 lines for junior specialists) or create 1 or 2 pages of a website (for web developers). The specifics for the terms of reference should be defined according to the requirements of the vacant position.
3. Interviews with your participation
This is a key stage in hiring specialists, and it is important to understand how to interview developers in such a way that you can be sure if you have found someone who meets your expectations or not. Therefore, our advice from here onwards will be directly concerning the interview process. Let’s consider in more detail what to focus on during an interview with a software engineer.
4. Find out how passionate your applicant really is about programming
Ask the candidate what they find interesting and pay attention to their intonation and emotion when talking about their work and previous achievements. Experience shows that this is going to be a good indicator of their professionalism. It is unlikely that you will find a developer who talks enthusiastically about his work, but writes bad code.
Additionally, you can look at the candidate’s social network accounts and their pages in professional communities. This will help you understand their degree of involvement in IT.
5. Define for yourself, which of the candidate’s skills you are interested in the most
Software engineers cannot excel in all areas at once, so you need to understand exactly which range of skills is going to be suitable for your project. The following questions will help you define this for yourself. We recommend that you go through them in advance of the hiring process.
- Do you need a developer who is very meticulous and attentive to detail, or someone who can be interactive and is good at multitasking?
- Do you want to find someone who is motivated more by creating new products or by solving technical problems?
- Do you need a programmer who knows a specific language, for example, PHP, or do you want someone who is learning and ready to refine their skills during the work process?
- Is academic knowledge of things such as mathematics, programming or algorithms important for you?
And remember, there are no “right” black and white answers to these questions. For each project, the set of desired skills is going to be different.
6. Check their code skills
This is one of the key aspects of an interview with a developer. This is going to help you determine how well the applicant can get to the core of a problem, which problem solving approaches they use, how they interact with others, and whether they can work quickly and to a high standard.
7. Only a good programmer will recognise a good programmer
Software development is a job that requires specialist knowledge and skills, and cannot be carried out by just anyone. Therefore, it is a very good idea to have a tech-savvy person to help you conduct the interview. If that person is you, then even better! Hiring an outstaff developer will be even simpler.
8. Ask questions that are of maximum relevance to the work
Or to the skills that you are trying to evaluate. That way, you will understand faster whether or not the candidate is suitable for your vacancy.
9. Prepare multifaceted questions (two or more questions in one)
These are questions where the interviewee cannot simply respond with a quick answer. The drawback of simple, typical questions is that they repeat themselves in interviews, and the candidate can prepare short simple answers to them in advance.
Therefore, it’s worthwhile to create a chain of questions made up of several sections, where each section follows on from the previous one. This way you will get to know the logic behind their thought process. If the applicant hesitates on one of the questions, you can help them, whereas needing help for a typical, simple question immediately indicates a developer’s incompetence.
10. Avoid tasks and questions that are too complicated
It’s not worthwhile to make the interview more stressful than it needs to be for the candidate. Therefore, you do not need to ask them to write a parser for arithmetic expressions during the interview or ask them about little-known structures or skip lists.
11. The same questions for every candidate
The whole point of the interviews is to compare the applicants according to identical parameters. The goal is to find the person who will be most capable of working on the project in a high quality manner. Therefore, asking them different questions is illogical.
12. Don’t focus on the resume during an interview
Experience shows that focusing on somebody’s resume during a personal interview is not particularly helpful. After all, you are looking for a candidate with a specific set of skills and experience, and not for someone who pointed out in their resume that they graduated from a top university.
13. Don’t forget about personal qualities
Even a brilliant programmer will not be of much benefit to a project if they cannot get along with people and work in a team. Therefore, ask them about their previous work place, their impressions of it, how they interacted with their colleagues, whether or not they participated in corporate events. You can always teach somebody more about programming, but you can’t change a person’s personal qualities.
14. Use the experience of other companies
Take an interest in how other companies conduct interviews, find out what methods they use for discovering worthy candidates and adopt similar strategies.
15. Make decisions based on their top skill
There’s no point in trying to deduce the average level of a candidate’s knowledge or to analyze the minimum outcome. You should choose a developer on account of the skill that they have demonstrated the most during the interview. You can help them to tighten their other skills during the work process.
Of course, it’s very difficult to identify all the qualities of a programmer in just an hour and a half. And interviewing is not an easy process. To simplify it, we have a surprise for you – a list of bonus questions for an interview with a PHP developer. These questions will help you to understand whether or not a candidate is suitable for the position.
- What would you like to improve in your favorite programming language or platform?
- Do you have your own projects that you develop in your free time?
- What, in your opinion, is something that you are very good at or understand extremely well?
- What data structures do you know?
- Find the error in this piece of the code.
- Tell us what this code is needed for.
- Evaluate the writing style of this code.
- What are short tags and how are they used in PHP?
- What are ways of escaping from HTML? Why is it necessary?
- What is $this and self in PHP? How do you use comments in code?
- How many data types are there in PHP and what are they?
- What is the difference between require(), require_once(), include() and include_once()?
- What is the difference between GET and POST?
- What kind of statements are there? (Describe several statements that you could choose from)?
- What is goto and how does it work?
- What are break and continue statements for and what are the differences between them?
- What is the difference between echo and print?
- What are functions, what different types are there, and why are variables needed?
- What are namespaces and what problems do they solve?