How we find good engineers

Gijs Nelissen
8 min readSep 6, 2017

--

During the last months I’ve spent a lot of my time finding talented people to join our company. As we’re rebooting parts of Prezly we have a list of positions to fill.

Update: In the last months we’ve been getting a number of bad reactions to the whole process not being humane (see comments below). In an attempt to defend ourselves we wrote an article.

In the last 12 months I tried to tune the recruitment flow to make it easy to manage, largely automated and gives me a solid understanding of the candidate’s engineering skills as well as the culture match with the company.

Here are a few tips that worked for me:

Company Profile

No matter if you’re finding people through your own website, LinkedIn, StackOverflow or Angel, you need a good company profile.

Spend enough time on explaining the vision and culture to make sure people apply and understand what the company is trying to achieve.

I’m not saying it’s perfect but here is our stack overflow page and the careers page on the website.

Publish and promote the job

First of all I try to find as many talented people as possible and thus publish the job on a number of sites. Considering that most engineers already have a job you need a little luck to run into someone that is currently available or will be soon.

When I ask the really good candidates why they’d consider switching job the most common reason is: the startup I work for ran out of money.

To maximise visibility I post our jobs on Angel.co (free), Stack Overflow (paid) and our own website. In the past I have tried a number of free and paid services and this is what came out on top.

Reach out to interesting candidates

In addition to incoming applications I try to reach out to engineers in startups or environments in my network.

When an awesome engineer is available right away something is up. The best engineers already have a job.

Before reaching out to potential candidates I compile a list of top targets based on targeted searches on github or going through issue/code contributors on projects we use in our stack.

With that list I start an email sequence or send them a direct message or tweet trying to convince him/her to hear me out.

Hi [first name],

I bumped onto your github profile (browsing for [tech keyword] people). I am looking for an awesome ([tech keyword]) developer to join our team.

Just to give you an idea what is cool about prezly

1) we don’t have timesheets and unlimited holiday policy
2) we deploy 10+ times per day
3) build a SaaS product for companies like IKEA, Samsung,…
4) we have remote work culture (trello, slack, invision,…)

Interested? I know you currently work @ [company] but I want to convince you by showing you our product and team!

Make sure to send it in the timezone of the receiver (good marketing automation software can do that) and auto follow-up if the person doesn’t reply.

Another way for you to search for people rather then having them come to you is use Angel.co profile browsing and click ‘get intro’ to tell them about your job.

First Qualification

If you do all of this right you’ll get a decent amount (hitting +70/day right now) of inbound applications as well as a smaller number (3–5/day) of outbound applications where you convinced the person to hear you out.

Crazy interview evening

As time is precious and a video interview can easily take 30 minutes I use a number of exclusion criteria to keep the available video interview slots for the best applicants.

I qualify the applications using the following rules:

  • “Dear [recruitment manager]”, -> Dismiss (not enough time spent reading about the company size/culture)
  • “I am an expert in .NET, python, AWS, bash, GO, Drupal, postgres” -> Dismiss (too much shit you can never be good at), also failure to highlighight the skills relevant to the job
  • Mention of wordpress as primary skill -> Dismiss
  • Over-emphasising degree (I have an MBA in) without significant achievements-> Dismiss
  • Applying for the wrong job -> Dismiss
  • No link to github profile or a good CV with achievements/tech used -> Dismiss
  • Bad english -> Dismiss

While sifting through applications I hide the applicants name, gender, picture and country to prevent me from being biased. After the qualification round I will be left with about 20% to 30% or a total of about 10 people per day I would consider hiring.

People that send me a really cool and personalised application note explaining why I need to hire them over everyone else immediately move to the video interview stage. Sadly most intro notes are crap/very generic.

You can’t believe how many people don’t follow simple instructions like “please add a link to your github profile” or “include your email address in the application”.

If they can’t follow simple instructions before they get the job, imagine what they’d do once you hire them ?

Second qualification

For the second qualification round I ask everyone to fill in a google form (switched from typeform) with a list of about 10 technical and personal questions.

Hey [first name],

Thanks for being interested in joining Prezly. As a small organisation (without HR department) we have a lean approach to hiring. I hire people based on a first check, answers to a few questions, a video interview and then my personal/gut feeling.

The good news is you made it past the first point! Now the next step is for me to get a better understanding of who you are so can you make/take 20 minutes to answer some questions ?

[link to form]
Hope to talk soon!

I did take the time to make a video explaining the hiring process and why I want 20 minutes of their life to fill in the questions.

Quick video explaining the process

I get an 70% conversion rate from the people that passed the first qualification leaving me with about 5–10 answers per day.

Most applicants fill in the form within a few days after asking them.

Schedule an interview

Every few days I go through the answers and pick the ones I want to go forward with.

The applicants who don’t score well on the questions or write down a ridiculous answer to a specific question get a brief message explaining that the process stops here and why I made that decision.

I try to be honest while being respectful and might use reasons like “The answers you gave on the JS questions (2–5) were insufficient” or “At this point you don’t have enough experience working in a distributed team of engineers”.

Now the ones that do make it through (less than 50% of the people that answered the questions) get an invitation to schedule a video interview. To automate this I use a calendly link allowing applicants to book a slot on my agenda in their respective timezone saving me time trying to find the right time slot.

I have some Alfred text expansion snippets set up that turn `interview2` into a two paragraph message congratulating them and asking to schedule a last interview.

Video interview

We use Zoom.us for video interviews and product demo’s. The link to join is in the instructions of the meeting invite (sent by calendly). Being on time on the meeting and not struggling with audio/video is a first test although most candidates do this just fine.

I try to keep the interview below 20 minutes and start by explaining the candidate that this is a short conversation with the sole purpose of finding out what kind of person they are and if they personally match our company culture.

Most of the qualification has been done at that point so I might use those minutes to ask questions like:

  • What are you working on right now ?
  • What do you do outside of work ?
  • You answered [x] on the question about Redux vs Sagas, can you elaborate a little bit on your first argument [y] ?
  • Explain me a feature you built in the last 3 months and why you think it’s an important update ?
  • Which technology/framework are you learning right now? And how ?

I try to make some jokes and have fun to open up the candidate and make him/her at ease.

While the person is talking I take notes in a trello card together with the persons name, email address, the link to github/angel/stack overflow and a link or export of the answers provided to the survey.

Trello hiring board

I am really bad at remembering names so while we talk I make a screenshot of the Zoom video feed and add that on the trello card allowing me to visually identify the candidate when I am going through the recruitment board. If the candidate doesn’t have video I use whatever profile picture I can find from their online presence.

I organise the applicants in different lists like ‘Interviewed — Not sure yet’ or ‘Talk about trial’ etc…

Pilot project

You can spend as much time as you want on pre-hire qualification and analysis, the proof of the pudding is in the eating.

That’s why I always propose a one month (paid) pilot project where the candidate gets a chance to work in our company. That gives us a great way to evaluate the skills, personality and value of the team member. At the same time it empowers candidates to find out if Prezly is the company they want to work for.

Keep in mind that even the best engineers have a hard time arriving at a new company with different processes, names and technologies. Try to identify an isolated problem/project where the candidate can prove value without having to explain the entire company.

At the end of the month we make a decision to either keep or remove the person from the team. If it’s a ‘maybe’ it’s a no. Don’t be optimistic. Don’t convince yourself that the person will turn out fine in the long run.

Update: We switched from one month trials to coding assignments.

Nurture good ones

Get ready for refusal. When talking to a lot of candidates and trying to convince him to join your company you will encounter a lot of people who are not ready to jump.

Add those people to a special nurture list (in trello) to check in from time to time. Every few months I send them a short update on what the company is doing and what we’re struggling with. The timing of your email might be better and the candidate might consider switching somewhere down the line.

There you go, a few simple tricks on how to find a good engineer a little faster.

P.S. we’re hiring

--

--

Gijs Nelissen

Belgian Techie. Builder. Bootstrapper. Dad x3. Entrepreneur. Smarty pants. Passionate about the web & technology. Founder of @prezly