Apple UK has an extremely long and unnecessarily complicated interview process. In total I had to go through 10 stages, which felt excessive.
Here is the process I experienced:
1) Talent partner interview
Initial screening with a recruiter.
2) Interview with future UK colleagues
A higher-level technical conversation about my background, CV, and how I like to work.
3) Take-home task
A relatively complex assignment. If you want to do it properly, it requires several hours of work. That said, for a company like Apple this expectation is understandable.
4) Pair programming interview
If your take-home task is successful, you walk through your solution and explain your decisions. You may also be asked to extend the solution and add features during the session.
5) Behavioural interview
6) System design interview 1
7) System design interview 2
Up to this point the process was demanding but reasonable.
However, the following stages were described as “just a formality”, which turned out not to be the case.
8) Face-to-face interview at the London HQ
This was described as an opportunity to see the office and evaluate the commute, since the role requires working there three days per week.
In practice, it turned into a 30–45 minute Q&A session where the candidate is expected to ask questions. After already completing seven rounds, it can be difficult to come up with new questions that haven’t been asked already.
That said, this was actually one of the most useful conversations. The interviewer was friendly and open, and I learned more about the role in that 30–40 minutes than during the previous seven rounds.
9) Informal chat with a future team member from the US
This was also described as an informal conversation. However, it included vague technical questions such as:
"What components would you use in a distributed microservice-based system?"
Without further context this question requires many clarifications before it can be meaningfully answered.
10) Informal chat with the future line manager
This was again described as a casual introduction, but it turned into another technical discussion.
One of the questions was how I would design a system that aggregates data from vehicle manufacturers worldwide and provides a unified interface for clients, even though each manufacturer exposes a different API.
I suggested an adapter-based approach, where manufacturer-specific integrations translate responses into a common format.
The interviewer preferred an approach where a separate service would be created for each individual manufacturer. I explained why this felt unnecessarily complex for the scenario.
After the first seven rounds I had received positive feedback and was told that the remaining stages were mostly formalities. They even told me that they would send out an offer proposal, and I should not leave my current workplace just that time. If I accept that proposal, they needed to get it signed off with someone, and when that happens is the time for handing in your notice at your current workplace. In practice, these last interviews changed the course of my process. They had a second thought, and they changed their mind. It was really bad, because, I've only got a one sentence rejection after putting so much effort in the process. I'd expect them to explain why the YES turned to a NO.
Overall, the process felt overly long and unnecessarily complicated, especially given the additional interviews after the core technical rounds had already been completed.