Company news
Mirek Woźniak

Hiring Developers in a Remote and Distributed Company

27 May 2014 | Mirek Woźniak

Working remotely means hiring remotely. Not an easy feat, to be honest.

That's why we've decided to write an overview of our approach to hiring in SoftwareMill - to save you hassle! Treat this post as a loose recipe - expect little to no marketing.

The Approach

Would you board a plane running on your code? What coding mistake would make you cut the wrongdoer's fingers off? What can we learn from you?

Don't worry, those are the most abstract questions we sometimes ask during the pre-final interview. We don't do it for our own fun - we want to hire passionate pople who think independently and can work in a team with a flat hierarchy and no supervision.

The Method

Disclaimer: we don't have HR. Anyone from the team willing and experienced enough can take part in the recruiting process and decision making.

Firstly, we play fair. After we accept your CV and like your reason to work at SoftwareMill, you get a short survey. The survey itself is quite general (soft/hard skills & motivations) but also explains all the possible Next steps of the recruitment process.

Next, there's a short Skype/mobile call that basically makes sure you can communicate in both Polish and English - although we're all from Poland, all our current clients are from abroad so speaking the language of Shakespeare is a must. Getting to the "call step" also means we'll let you know if we won't want to continue the recruitment.

The remote character of the call is an advantage, for it allows you to go through a (potentially) stressful call in your own, comfortable environment. We're human and understand that the recruitment process may be a hard task for some people, so we try to make it as smooth as possible.

After the call you get a short programming task; there's no short deadline, though we usually worry if the repository hasn't been active for weeks. The task submissions is followed by an extensive, multi-layered code review by two or three experienced developers; we'll send you questions concerning the code and provide feedback even if we decided not to continue your recruitment.

We always give concrete, actionable feedback, so to say, in exchange for your time spent with us and on the task; you'll know what's your strong point and what can be improved. And this approach pays off! A programmer that we refused two years ago has just joined our company, using the past period for self-development in another software company.

With the code review successfuly concluded, we set up a longer (up to 90-minute) technical call with two or three of our experienced programmers. We try to have different people do the code review and the call to ensure maximum impartiality.

Finally, if we like what we've heard, we invite you to a lunch where we confirm that you're a human being and decide whether we really think we want to have you in our team. We don't require any sort of formal attire, especially if it's hot. And that's it!

If everything went fine, as an employee to-be you'll probably drop in to our monthly company meetup and down some beers with us. Because you can't be 100% remote without meeting face to face once in a while.

As you can see, the only actual "formal" moment of the recruitment process is the informal lunch at the very end. And the only one that isn't remote. It's very important, however, for it can tell us if the communication over voice messaging will go smoothly. The lunch isn't a formality - we had to refuse people that went through the whole process because of the communication problems exactly.

The Numbers

Surprisingly, most people drop out because of... inactivity. They don't finish their programming tasks.

The very solution of the task is the next culprit, as well as the longer technical call. But all in all, we take aboard around 20% of the applicants who started the recruitment process.

Plus, the recruited become the recruiters - you immediately gain access to our wiki, where you can check out your entire recruitment history and/or help the current recruitment party do their awesome job.

Should You do it?

We're proud of our recruitment system and greatly recommend it, not only for remote & distributed companies. We tell the applicant that we respect them and that it's only their skills and attitude that matter. And every single one of our developers is able to succesfuly start and lead a product from ground up.

The only problem is that we hear about people not applying to SoftwareMill because... they tend to think we're too good. We think it a good sign if you've got doubts about your skills. Because you're humble!

And humility is what every interview starts with - on both sides.

photo by Robin Benad

P.S. Did you really expect we wouldn't suggest you apply to SoftwareMill? ;)