The interview process was brutal, but I had a really positive experience. I was told I could choose any programming language (many would suggest using Python). I knew the role I applied for was primarily C programming, so I decided to do everything in C.
The first round was a 45-minute technical screen, equivalent to an easy-level LeetCode question.
The second round was the virtual on-site/on-site interview. It consisted of five or six one-hour-long technical interviews, all one-on-one with team members from the team you are applying to or an adjacent team.
The third round was a short one-on-one with a higher-up manager in the organization you are applying to (i.e., the hiring manager's manager). Based on discussions with friends who work at Apple and the recruiter, it seems if you pass the second round, you probably got the job. The manager asked me about some specifics of projects I worked on, a difficult bug I resolved, and why I want to work at Apple.
I suggest buying LeetCode Premium and studying all questions that Apple is known to ask.
Computer systems questions:
Write a circular queue class.
Medium-level LeetCode question related to arrays and string manipulation.
The following metrics were computed from 9 interview experiences for the Apple Embedded Software Engineer role in Cupertino, California.
Apple's interview process for their Embedded Software Engineer roles in Cupertino, California is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for Apple's Embedded Software Engineer interview process in Cupertino, California.