First had a phone screening with a recruiter. As usual, was asked about my past experiences and a few questions a bit like "How do you collaborate in a team ? How do you communicate in a team ?".
A week later, I had a phone interview with two very friendly Data Engineers. Talked quickly about my background and their jobs at Spotify. Then got asked a lot of trivia questions about CS concepts, data modelling, MapReduce, Spark, probability, probabilistic data structures, machine learning, Unix stuff... They basically want to see the breadth of your knowledge, but also its depth on each domain. It's OK not to know a few answers here and there.
Then we switched to a shared online editor and got asked :
- A simple recursion question plus a follow up on how to optimise the time complexity of my solution.
- A few SQL queries and a follow up on what would happen if the data would not fit in memory
- Transform one of the SQL queries into a MapReduce job
Got a few minutes to ask questions at the end
Got invited for the on-sites in Stockholm two weeks later. They paid for the whole trip.
There I had 2 interviews in the morning, 1 lunch and then 2 more interviews (each interview was w/ 2 engineers and lasted 1 hour with 10 minutes for you to ask questions):
- Interview 1 was the "Case interview": you are given an architecture and a production problem that really happened at Spotify to solve. You can ask details to your interviewer as if he was your computer (check log files, HDFS file sizes, etc.). Be methodic, ask questions and be clear about what your thinking and the assumptions you're making. This was an extremely fun interview !
- Interview 2 was the "Programming interview": basic coding questions. Questions about API design, unit testing and solving an ETL problem using a data processing framework (no need to know the exact API, at least the big picture)
- Interview 3 was the "System design interview": Simple question at first, but you have to ask a lot of questions to clarify the problem and make reasonable assumptions. Don't be afraid to go to the whiteboard early. Solve the problem for simple cases and then think about scale and how you would spread the data on a few machines. CtCi system design questions definitely helped for the general way of thinking in that kind of interview, also Jackson Gabbard's video on system design. Read about data architecture and realtime data processing
- Interview 4 was the "Culture fit interview" with 2 managers: Interesting conversation about your background and your vision about teamwork, conflict resolution, interest in your job, what your proud of, times when you failed, etc. They go deep into details so make sure to think about these subjects and have an example for each one of them (a time when it happened during your career and how you handled it, successfully or not). Check out Jackson Gabbard's video on behavioural interviews (yeah I really like his videos)
Heard back the week after and accepted the offer.
Overall smooth process and very nice people. It seems to me that Spotify focuses more on culture fit and collaboration than other companies I've interviewed at.