Our process is a bit different from what is common in the rest of industry.

We do 3 things of which the first 2 are standard.

* CV screen
* Phone screen, asking what, why, what is missing on CV
* Interview -> starting by a presentation done by the candidate, then classic discussion/interview

The 3rd step is what is uncommon, we always ask a potential candidate to present a bit of code. Their own if possible, open source otherwise. The candidate selects the code and makes a small presentation powerpoint style or walk through.

We always learn a lot of this. What code was selected? What do they like/dislike about. Do they have opinions, and do they consider tradeoffs are they willing to read other peoples code?

I think that for us, having some kind of taste in code and be willing to work with and improve code written by others is a crucial part of our job. We can't afford rewrites, we are willing to do migrations.

For the interviewing team it is always nice to have such a small presentation because we always learn something new. It is never a waste of time! The candidates seem to enjoy it too because they have something concrete to talk about. In our very limited sample since doing this we have had less stuttering/sweating by potentials. White board coding just didn't work for us.

Then of course we have the 15 minute selling of the organisation/job to the candidate. No point in interviewing a great candidate and then lose them because you can't sell them on working for you. For that reason one of the developers will be waiting at reception for the candidate, and will walk them in, offer a coffee/thee/water show the conference room and tries to make the candidate as comfortable/relaxed as possible. Key is we try to show to the candidate that we appreciate their time.

For a candidate, you will not spend more than 3 hours total in the process.
30 minutes phone screen.
60 minutes interview with some extra time
60 minutes admin/contract details

Between each step there is a go no go decision and we normally make that the same day.

A no-go in the phone call might be 6 years of experience but never used CVS/Git or similar. Interview no-go tends to be voicing out loud that you are not willing to dig into a problem. e.g. DB perf issue, won't touch it DBA job.

Contract issues is when we can't afford you ;(

Of course we hire once every 18 months on average because we are a small team working on a very stable project.

Of course this is under Swiss law so there will be a probationary period but we have not used it in the last 10 years and I hope that continues. There is at will employment here but as in the US what is 'at will' can become
a very expensive legal issue if not handled well. Also the negative morale on a small team on letting people go without a clear why is terrible.

Thing is we don't have 100's of candidates nor 10's of positions so what works for us might not work for you.
So we tend to get 50 CV's, with 10 potentials, and 2 clear candidates in that pile.

Of yes, we always check at least one of the character references people put on their CV. But never someone in their current work environment (unless we know that will be OK, e.g. people leaving due to fixed term contracts at research institutes)