Apollo has a long and detailed interview process for engineering roles. In my case, the interviews took around five weeks, and I had to wait another week to receive an offer.
First, I had a screening call with a recruiter. Next, I received a take-home coding task. After that, I had two live coding sessions: one focused on debugging and the other on building a simple React application from scratch. Then, I had a front-end system design interview, followed by a behavioral interview with an engineering manager. After completing these steps, I received an offer.
I spent around 5-10 hours preparing and practicing before each interview stage. They sent emails with tips on how to prepare for each stage, and some of the interview questions matched these tips, especially in the behavioral interview. If you have time, read the emails carefully and practice.
The interview process itself was really interesting and practical, focused on real product scenarios, and not FAANG-like algorithms/data structure challenges. There were lots of open-ended questions that allowed me to demonstrate my general knowledge instead of "trivia questions" that can be memorized.
At the end of the process, when I received the offer, I was given feedback on what to improve, which was great.
However, the recruitment process was quite long. Additionally, before receiving an offer, you need to provide two references, which can be a waste of time if they give you an offer well below your expectations.