Interview process was thorough and consisted of several steps, described below:
1. Phone screen, 20-30 minutes. This was just an initial phone screen with the person from HR who contacted me. Basic questions about projects on my résumé, how I respond to criticism, and similar. Basic things you'd expect from a phone screen.
2. Assessments, 90 minutes. These consisted of an IQ-style test, a grammar test, and a personality test. I know that I got a few questions wrong on both the IQ test and the grammar test, so I'm assuming they just want you to reach a certain standard. To my knowledge, they make every prospective hire take these. These probably create some false negatives in terms of screening out people who would be good at the jobs for which they're applying, but I think the goal of the assessments is to create an overall culture of quick-thinking people no matter what the job position. I don't think the standards are impossibly high because I know that I got a few wrong and moved on just fine.
3. In-person interview, 45 minutes. This interview was with the same person who conducted the phone screen, plus the hiring manager who leads the team for which there is a job opening. Consisted of similar questions to the phone screen, but more in depth. Before this step, I was asked to fill a Java developer challenge on a Google form that tested on basic understanding of how Java works, some basic principles of OOP, how loops work, and the like. I was scared going in, but it's not high-pressure. I was also asked to submit a Github project for the development team to review. I don't know how important it was, but I definitely manicured my code a lot to make it pretty for them.
4. In-person interview, 30 minutes. More informal interview, served more to tell me about the role and make sure it was what I wanted, rather than for me to tell the company about myself and see if they wanted me. During this step I met the CEO briefly. He seems like a nice guy.
5. Offer and negotiation. Offer was extremely competitive--this company seems to value its development team very highly. There wasn't much to negotiate.
Some notes:
The assessments are a bit controversial among other interviewees, but I think they are reasonable. The questions aren't terribly difficult as long as you relax and don't let the pressure affect you. During one of my interviews, I was discussing a project and the interviewer from HR was able to accurately summarize and clarify some technical aspects of the project to the hiring manager, complete with understanding of pattern recognition and specific (and correct) mention of Bayesian priors. I was very pleasantly surprised by her breadth of knowledge for someone outside a technical role, and I believe that this type of culture is at least in part a result of the assessments.
The interview process is pretty long, but I think this reflects the company's desire to build the right team. I liked everyone I met while interviewing there. It seems like they want to test your aptitude and experience through the assessments, looking at projects, and other quantitative means, and then the actual interviews are purely to learn about your mindset and whether you'll fit well on the team--little actual skill or aptitude testing in the interviews.
I was late to one of my interviews, but they did not hold it against me. This tells me that the process is more holistic than based on a hard checklist of criteria to meet.