One of the hardest, riskiest things we do at Fyndiq is recruiting developers. It is hard because the number of people out there who fit our demands are few, and a lot of other companies want to hire them.
It is risky because a mistake will usually take a long time to discover and solve, and it will cost a lot of money. Not only in terms of salary, but in time spent by other team members.
Our recruitment process has gradually changed as we have learned new things, and it will continue to change over time as we grow and as our needs change. The introduction of external consultants that help us with recruitment, plus in-house dedicated HR staff in our company, will also probably change what would be the optimal process.
But the below process has worked really well for us so far. It is efficient time-wise, and it brings out high quality candidates at the other end.
The reason we have heavier technical focus towards the beginning of the funnel is because this is where most people will not have what it takes. It is more likely that a person is nice and easy to communicate with, than that the person has excellent technical craftsmanship.
1. Screening of resume
This step is really quick. 1-2 minutes. I usually look mostly at relevant work experience, what kind of companies the person has worked at before. Usually I don't care that much about educational background. A warning sign for me is if the person has spent a long time working with other things than being a developer. All really good developers we have hired so far share the trait that they have continually been programming in some form since their teens. What I love seeing here is links to hobby-projects or github profiles. Tangible work samples always tell me a lot more than a fancy education.
2. Short phone call
This is where we filter out people who do not have the basic technical knowledge required. We ask some basic technology questions. A lot of people fail here because they have claimed in their resume that they for example are experts in SQL but cannot even explain what a JOIN is. I am still blown away by how many people we have to cut off already here, because they write stuff in their resume that they don't know well enough.
3. Technical interview
During the interview we focus on technical knowledge. The interview is typically performed by two technical team members. We ask a lot of knowledge related questions within the areas where the person will work. We do this not because we think it is important that people memorize a lot of details about everything, but because we know that people who are driven and good at what they do and spend a lot of time doing it, will as a consequence collect a lot of knowledge. We usually also ask them about the current real problems we are facing in Fyndiq at the moment and how the candidate would solve these.
If the person performs well on the interview we send over an assignment. This usually is a simple coding assignment that can be completed in maybe 4-5 hours. The purpose of this assignment is to make sure the person can structure code in a good way, make it readable, follow best practices - but also to test that they can read an assignment, interpret it and solve it in the way requested.
5. Last interview
If all lights are still green we will perform a last interview where we dive deeper into the personality and philosophy of the interviewee. Here we will invite our CEO as well to get more feedback. The main purpose of this interview is to make sure that the candidate will fit culturally into Fyndiq.