Recruiting for a small, fast-paced software team comes with unique challenges. Here’s how I approach the process to find the right fit for our dynamic environment. Challenges are ongoing, and we are constantly tackling new tasks. However, in some cases, our colleague goes to another team or prefers to go to a different company. In these cases, we start a new recruitment process.
We usually make small adjustments to a ready template and publish the ad. After that, the waiting process begins. Our hiring manager reviews the resumes one by one and creates a list for us to look at. I review each resume one by one according to certain criterias and state my thoughts and whether it should be tested or not.
So what are these criterias - 1?
“Details matter. It’s worth waiting to get it right.” — Steve Jobs
- A clear and well-organized CV is essential. It doesn’t need to be professionally designed, but it should highlight key strengths without overwhelming the reviewer. Some CVs are so complicated that I cannot focus on the points I should focus on.
- Demonstrating passion and commitment to the field is crucial. Studying in a school does not make you good at that subject. It also does not indicate that you really want to do that job. What matters is how eager you are for this profession.
- Show your code. Perhaps this is one of the most important things for me. Because the code you write shows you what you can or cannot do the most. Especially how well-written and organized the latest codes are gives a lot of information to that person. So, do not hesitate to develop or contribute to open source projects.
- The relevance of a resume to the job posting is a key factor. Everyone can learn anything, but whether the job posting requires the desired features is a priority. Since we are a small team, the less time we spend teaching, the more we can focus on other jobs. Of course, it is possible to give privileges in some resumes.
These are just the criterias to pass the first stage. After that, I send tests to our candidates and start examining the test results. Of course, I also examine them according to some criterias here.
So what are these criterias - 2?
“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” — Martin Fowler
- Ensuring that the code successfully passes all Unit Tests is a priority. Our testing tool automatically runs predefined Unit Tests and displays the results.
- Is the code simple and readable? How we solve a problem is as important as solving it. Nobody wants to deal with complex and hard-to-read code. That’s why simplicity and taking the shortest path to a solution are important. In fact, in some cases, I can even ignore the fact that not all Unit Tests pass.
- It is important how creative and different a path you follow. There is more than one solution to a problem and what matters is which path you follow. For example, if the problem involves algorithm optimization, I look for evidence of logical thinking and efficiency in the solution.
- Finally, it is important whether you solved the problem yourself or copied it from the internet. It is not important to get some parts of the code from the internet, because it is not possible to write everything from scratch by ourselves, but it is necessary to avoid finding and using the entire solution from the internet.
Based on test results, we invite shortlisted candidates for interviews—ideally in person, though online options are available when necessary. In the interview, I first provide information about the company and team, then I provide information about the job content. After that, I ask the candidate to provide information about themselves. Then comes the Q&A section. When all of this is over, I decide whether or not to make a job offer to this person based on some criterias.
So what are these criterias - 3?
“Hire character. Train skill.” — Peter Schutz
- Did the candidate take the time to research our company and the role beforehand? It is normal to apply to many different places during the job search process, and often people apply for jobs that are outside of their interests or skills. But I think it is important for people who come to the job interview to do some research beforehand.
- Did the candidate engage with thoughtful questions about the role or the company? Challenging and insightful queries demonstrate intelligence and genuine interest.
- How open the candidate is to learning new skills and adapting to challenges is a key consideration. We cannot be expected to know everything, but we need to be willing to learn new things. We need to learn new things constantly throughout our lives and we need to make this a habit.
- The ability to collaborate effectively within a team is perhaps the most important criterion. As I mentioned before, we are a small team. Working in harmony with the team is perhaps the most important criterion. Candidates who can understand the internal dynamics of the team and act accordingly, who will not disrupt the harmony of the team and strengthen it are always the priority.
There are many criterias here, but each criterion can sometimes take precedence over another criterion. This may vary depending on the person, how urgently we are looking for a new employee, and the status of other criterias.
“The only way to do great work is to love what you do.” — Steve Jobs
I have never examined any resumes so far, and I have never looked at which school they went to, which department they graduated from, or what score they received. These only show how good they are in the education system. However, they do not reflect who they really are or what they can do. In fact, I have even sent tests and interviewed people who were very enthusiastic but had no work experience and no training in this field. Therefore, understanding one’s shortcomings and striving for improvement is essential.