Apple | Senior Software Engineer (ICT3) | Offer accepted
Anonymous User
5614

Note: Questions are slightly modified due to NDA.

How My Profile Got Shortlisted:

  1. 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.

  2. 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.


Interview Questions

2022:

  1. Online HackerRank assessment:
    Two easy-medium questions were asked, with a time limit of 45 minutes:

  2. 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.

  3. 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.

  4. 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.

  5. Leadership round:
    This was more of a discussion about company's vision, conducted by a skip-level manager.

2024:

I interviewed for several positions simultaneously, and here’s how it went:

  1. Online HackerRank assessment:
    Same format as 2022, with two medium-level questions:

  2. Coding round:

    1. In this open-ended question, you were asked to design a system that listens to messages related to various events (e.g., movie releases, sports events) from a data source. Each event type had different structures, so you had to decide on a flexible message format like JSON. The challenge was to design an efficient in-memory storage solution for real-time queries and aggregations, such as retrieving the next upcoming movie or the score of an ongoing match. The focus was on creating optimal data structure and ensuring quick, scalable access to the stored information.
    2. Longest common prefix: Initially used a Trie, but the interviewer asked for an alternate approach, so I switched to iterating through the array character by character.
    3. Reverse linked list within a range
    4. Depth of a binary tree
    5. Design snake game
    6. Build a React web page to display GDP data, even though I hadn’t worked with React before. I was allowed to Google during the interview to show my adaptability.
    7. SQL-related questions were asked, including querying top employees with the highest salary from each department.
    8. Optimizing Java code for summing integers:
    LinkedList<Integer> list;
    Long sum = 0;
    for (int i = 0; i < list.size(); ++i) {
        Long value = list.get(i); 
        sum += value;
    }

    Optimizations:

    • Avoid using Long (Object) instead of long (primitive) to prevent memory issues.
    • Use Iterator or switch to ArrayList for better performance with get(index) in LinkedList.
  3. Systems design:

    1. Design an online block diagram maker app, including real-time updates for multiple users and infinite canvas size management.
    2. Design a system for managing asset prices, where changes in the price of one asset (e.g., Asset-A) would trigger changes in related assets (e.g., Asset-B, Asset-C) based on predefined relationships. The problem was modeled as a Directed Acyclic Graph (DAG) with weighted edges representing the price change dependencies. Your task was to ensure that when a price change occurred, the system would efficiently propagate the updates across the dependent assets while maintaining low latency and consistency, similar to stock trading platforms.
    3. Develop an app similar to DigiYatra.
    4. Kafka vs. SQS, microservices architecture, circuit breakers, and quorum concepts.
  4. HM round:
    This was similar to the 2022 round, focusing on past projects and behavior.


Offer:

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.


Preparation:

For details on how I prepared, check out my Google interview experience blog.

Comments (4)