Note: Questions are slightly modified due to NDA.
Applying on the career site:
It’s commonly believed that just applying on a company’s career portal isn’t very effective. Surprisingly, this was not the case with Apple. Although I reached out to people on LinkedIn for referrals, I also applied for multiple positions on Apple's job portal without asking for a referral, and I still received interview calls. What’s even better is that Apple allows candidates to be interviewed for multiple positions simultaneously.
Referral:
That said, being referred significantly increases the chances of getting shortlisted. If you don’t know someone within the company, reaching out on LinkedIn can help.
Online HackerRank assessment:
Two easy-medium questions were asked, with a time limit of 45 minutes:
DSA round:
I was asked to create a phone directory where, given a phone number, you return the name (and vice versa). I initially considered a Trie, but a simple two-hashmap approach worked.
Systems design round:
This was the most challenging and interesting round. Instead of giving a standard problem, the interviewer picked one of my past projects and asked me to design a payment system that would work even if the internet was unavailable. The focus was on security, distributed authority, and avoiding a single source of truth. We ended up discussing blockchain concepts.
Hiring manager round:
The HM first asked me to explain how I would crawl URLs from a webpage and build a map of URLs to HTML pages using BFS. Then, he asked a few behavioral questions about challenges at work and disagreements with leadership.
Leadership round:
This was more of a discussion about company's vision, conducted by a skip-level manager.
I interviewed for several positions simultaneously, and here’s how it went:
Online HackerRank assessment:
Same format as 2022, with two medium-level questions:
Coding round:
LinkedList<Integer> list;
Long sum = 0;
for (int i = 0; i < list.size(); ++i) {
Long value = list.get(i);
sum += value;
}Optimizations:
Long (Object) instead of long (primitive) to prevent memory issues.Iterator or switch to ArrayList for better performance with get(index) in LinkedList.Systems design:
HM round:
This was similar to the 2022 round, focusing on past projects and behavior.
The process took 1–1.5 months. Apple’s offer may not have the highest cash component, but the stock component is very attractive. In my opinion, the culture, perks, and stock performance make it a great offer.
For details on how I prepared, check out my Google interview experience blog.