Hiring the most suitable developers is not an easy job. That is why, in technical interviews, it is vital to not just evaluate the technical skills but the personal values of the candidates as well to easily integrate them into the company culture.
Code is written by people, so recruiting the ideal developers should be one of the main goals of every company’s hiring process. There is not just one way or a set of hard rules to follow to reach that goal.
In this article, I will introduce you to a set of areas to be evaluated that can help every hiring process to get the appropriate people. This could be followed to get the right staff, regardless of what technologies the employee knows and the seniority they have. It does not matter if you are looking for a junior java developer or a full stack net/react developer with vast experience in Mongo DB, as this method could easily be applied to all of them.
It is really important to remark that I will be focusing only on technical interviews, leaving all the other aspects out. Evaluating not only the technical skills but the personal values of the candidates as well is vital to easily integrate them into the company culture.
What should be validated in technical interviews?
Technical interviewers are expected to discover the candidate’s technical knowledge, potential, analytical capacity, interpersonal skills, and English level, among other factors.
I would like to highlight four important aspects to take into account.
We should assess the level of the candidate’s technical knowledge with some questions. What is their expertise in Object Oriented Paradigm (OOP) or any other paradigm? How much do they know about different architectures? What languages, frameworks, and libraries have they worked on and used? How much do they know about databases?
It is really useful to ask the candidate to explain the architecture of their current project and what technologies they are using in each part (backend and frontend, as well as each layer on each application). With all this information, the interviewer should be able to go deep into each aspect.
One potential division on this topic could be:
- OOP (or another paradigm): Paradigm pillars, design patterns, SOLID principles.
- Architecture: Knowledge of different architecture (MVC, SOA, etc.), architecture patterns, communications, and responsibility of each layer.
- Technology: Programming languages, frameworks, libraries, and BD.
A candidate’s potential is probably one of the most important but hardest topics to be evaluated, as well as one of the least often evaluated.
What we are trying to know about the candidate is how smart they are and how fast they are when it comes to learning new technologies. We also want to know how they perform when faced with new technical and non-technical challenges. It is critical to find out if they are able to acknowledge their own mistakes and what they will do in the future to avoid them.
We can also split up this topic into 3 important factors:
- Analytical capacity: Are they considered a smart person, or are they able to analyze a problem and develop a solution? Having the candidate solve a programmatic and logical exercise could be an easy way to evaluate their analytical capacity.
- Algorithms: Data structures and the creation of an algorithm to solve a problem.
- Critical ability: Ability and willingness to analyze and detect previous errors either on their or third party’s code and propose better solutions.
Determining how much the candidate knows about methodology, process, diagrams and continuous integration tools is essential.
This could be split up into:
- Methodology: Agile or traditional frameworks.
- Software Engineering: Documentation, ER Model, diagrams, continuous integration tools, version control softwares, etc.
- Testing: Knowledge related to testing, unit and integration testing, Test Driven Design, Moking, etc.
The interviewer will also need to know the candidate’s behavior as a team member, how proactive they are, their ability to manage their own tasks, and their leadership skills.
Another important aspect that must be evaluated in technical interviews is their English level — a fundamental skill in a globalized world since our co-workers, clients, and stakeholders could be anywhere in the world. Besides, the newest technical articles are first written in English until they are translated to other languages.
- Interpersonal: Teamwork, proactivity, self-management.
- Leadership and client relationship: Leadership skills and direct communication with the client.
- English: Especially conversational English.
To sum up
Divide and conquer! The goal of this article is to help the interviewers analyze all the candidate characteristics in detail by dividing up all aspects.
Hiring the most suitable developers and placing them in the right level of seniority is not an easy job. It requires more than one interview with different roles, and the success of this process directly impacts the hierarchy of the company, which then impacts the product quality.
Having each developer doing the correct job with the correct tasks assigned to them affects the performance of other employees. One developer in the wrong level of seniority could cause demotivation, quality issues, project time delays, reworking, among other consequences. There are many reasons to make the effort to find the perfect developer for your company.
Comments? Contact us for more information. We’ll quickly get back to you with the information you need.