I've found it costs about $2,000 to take a candidate through our interview process. Only half of the developers to whom we give job offers accept. It is expensive to make mistakes. We have three principles that guide this process: mutual interest, don't waste time, and have high standards.
We schedule a 15 minute call with the candidate. The purpose is to get to know each other. We begin by talking about BlueLine Labs and then we ask the candidate to talk about themselves. After that we open it up for questions. We end by emphasizing that we want mutual interest to move on. We reject 80% of candidates at this point. If we have reasonable reservations we don't move them on.
In person interview
This interview is 2 hours. It has two parts: cultural and technical. The first half hour is cultural. We explain our mission statement and core values. We ask questions. We answer questions. Really, this is for the candidate to learn about us. The technical portion is where we evaluate the candidate. We ask tough questions and have them code. We expect three things: knowledge, speed, and creativity. Know the answers to the questions, finish the coding challenge quickly, and be able to think creatively. If those expectations are met, we ask to move on to the code challenge - usually at the end of the interview.
We want our hires to stay with us for a long time. This only happens if both sides like working together. For the code challenge, we contract the candidate to do 6-10 hours of work on a real project. We add them to our slack team and project management software. Some are able to work in our office for a day, others work remotely. We pay them for their time and bill for their hours. The contract work isn't perfect. Sometimes it is hard to evaluate the quality and speed. But working together is worth the imperfections.
If the contract work is done in our office this interview takes place at the end of the day. We review the contract work and the experience working together. Then we discuss details. Salary, benefits, PTO, etc. Our goal is to make an offer and have it accepted during this interview. However, often there is time needed between an offer and a response.