Just finished the Apple senior SWE loop last month. Sharing what I know about the system design round because I couldn't find good recent info before I went in.
First: Apple doesn't use the same L3-L8 ladder naming publicly, but internally they do level. If you're being interviewed for a "Senior Software Engineer" role, you're probably targeting ICT4 or ICT5. The recruiter won't tell you the level number upfront in most cases, but you can ask directly and they'll usually confirm.
The system design round was 60 minutes. One interviewer. The prompt I got was pretty open-ended: design a notification delivery system at Apple scale. Nothing exotic, but the breadth of what they wanted to cover was real.
What they weighted: Requirements scoping. They want you to lead. Don't wait to be given constraints. I spent the first 8 minutes asking clarifying questions and the interviewer clearly liked it. Failure modes. This is where Apple differs a bit from, say, Meta. They leaned hard on what breaks. Fanout bottlenecks, retry storms, idempotency on the consumer side. If you've read about APNs internals, that context helps. Trade-offs, not just answers. Every choice I named, they asked why not the alternative. Kafka vs. SQS, push vs. pull at the device layer, strong vs. eventual consistency for notification state.
I didn't get a deep dive into capacity math, but I had rough estimates ready and dropped them naturally. I don't think they penalized me for not going super granular on numbers.
One thing that surprised me: they asked a follow-up about privacy considerations for notification content. This is Apple. Of course they care about that. Think about end-to-end encryption, what data leaves the device, what lives server-side. If you're interviewing for any role that touches user data, bake that lens in.
Total loop was 5 rounds: 2 coding, 1 system design, 1 behavioral, 1 hiring-manager call. This post is just about the design round. Happy to answer questions.