1. Candidate learns about the company and the tech during a set of 2-4 interviews with our engineers. We don't tell them to learn as much as they can because we want to see how inquisitive they are. Interviewers are coached to be fairly open and talk about our products and tech. If there are no red flags, the candidate receives a take home coding assignment. We give them 6 to choose from. There is no time limit, but we are interested in how long they take and which of the assignments they choose. The assignments are all relative to the type of code we develop.
2. Candidate returns with their code. We're looking for only 50-100 lines, as we don't want to ask for a lot of their time. They start the interview by hosting a code review of their code in front of 3-4 engineers. We expect them to be able to explain their coding choices and answer questions that show that the code is more or less their own authorship and that they know what they are talking about. After the code review, they will have 1-1 interviews.
3. If it goes well to this point, we have them back for more introductions to other company management to see if anyone notices anything concerning. We might take them to lunch.
With luck, we get 2 or 3 candidates through this process and then meet to discuss which gets the offer.
It's a new process and seems to be going Ok so far, but I'm curious if anyone else has tried this type if approach and if so, what was the outcome?
EDIT: Interviews are 2 hours each step. 1-1 interviews typically 1/2 hour. The code review is usually 1/2 - 1 hour, we don't put a time on it.