This is a really great question and I've found a lot of inspiration in the answers below.
Our company has about 130 employees, so we have a lot of effort to make our process smooth and effective.
We are doing both direct contacts to potential candidates through LinkedIn and also listing our open positions on our website, social media and other platforms.
Our HR doing a great job finding new developers, but we also have recommendations from our fellow colleagues.
If it is possible, HR makes a short phone call to the candidate, asking a few general question (starting date, salary, current job etc.) and explaining our recruitment process.
At this point, candidate should receive a link to our online test for developers.
This questionnaire consist of general questions about software development, a few "what is this code doing" puzzle and some questions about the technologies we use.
If most of the answers were correct, we ask the candidate to join us for a personal interview which takes usually one hour.
This turn has two parts: one is HR-related and one is about topics related to software development. Beside the candidate, there are three participants: one colleague from HR, one developer and me, the team lead of devs.
In the first part, HR ask some questions about their previous projects and experiences and some of the "classical HR questions" and just in case we are ask the candidate about salary one more time in person.
In the second part, we ask some questions about software development and other skills (we are interested if the candidate would be a great mentor or lead developer as times passes).
At the end, we talk about company culture, teams, products etc.
Sometimes we use a second round of personal interview if we are not sure about the candidate's personality or if someone from the designated team would like to meet with the candidate. The second interview is way more casual than the first one, we usually just talk about general questions, our company and the possibilities within it.
After this we talk about the candidate and make a decision.
If the candidate turns out to be applicable, HR makes a phone call about the exact salary and other options. If the candidate accept our offer, we agree on starting date and deal is done: we have a new developer in team!
If we wouldn't like to work with the candidate, HR makes a phone call explaining why we decided so. We call or e-mail every rejected candidate.
I think this is an important step of recruiting new employees. We have a complete programme for new developers and it works perfectly because in their first week, they slowly walk through the many project and departments at our company.
We have some fellow developers who are mentoring others. This mentoring is mostly about general stuff around the office, like: "How can I print?", "How can I ask my days out?", "I have a problem, to whom can I go with it?" and so on.
We are using JIRA for recruiting which is connected to the online questionnaire system. We comment every question and decision. I just wanted to share this with you guys, because trust me, a ticket with every useful information about a candidate could be life saver when you are making a decision.
I really like to make interviews a casual, personal experience rather than asking questions about unsolvable problems. I'm going to interviews as well mostly by curiosity and to enhance our process, and I don't really like interviews when I feel myself embarrassed as a candidate. You should never bully the developer in front of you in any way, because he became stressed and will forget everything about his profession.
I know, this should be fundamental, but I've seen a lot interviewer holding this wrong.
That would be it. I really like our process because in the last two years, we only hired really talented and great developers who are fit the team and the company.
Thanks for the chance to share our process and my thoughts about the topic! I'm open to questions and further discussion as I browse your fantastic posts. :)
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.