I have a PhD in Computer Science from a top school, and was referred by a friend. The process was as follows:
- Talked to a cofounder over the phone about the company (vision, status, interview process, etc)
- Phone interview
- Onsite interviews (gave a talk about my PhD research, followed by 5 sessions including lunch)
- Coding assignment
The hardest interview question I got in all my interviews was from Databricks. There was one question that started innocently simple, but expanded into fancy algorithms, computer architecture, cache locality, and API design.