Apple | ICT2/3 | Seattle | May 2020 [Reject]
Anonymous User
6503

Now my turn to give back to the LC community...

Status: 6 years of data engineer experience in a pension fund (Canada)

Phone Screen
Bypassed as I was matched through TripleByte fast track. Also because I was matched through TripleByte, I'm not sure what level I was evaluated at. My guess is ICT2/3 based on the difficulty of the coding problems.

Virtual Onsite (6 rounds)

Round 1 (1 hr)

  • Introduction
  • Why Apple?
  • Coding question: Implement HashMap
    • Similar Problem: https://leetcode.com/problems/design-hashmap/
    • I implemented it with array with Linked List as value to handle hash collision.
    • A few follow-up questions were asked regarding pros/cons of my implementation, when to resize, test cases to cover, etc.
    • In general, I think I did well in this round.

Round 2 (1 hr)

  • Introduction
  • Why Apple?
  • Design question: Design Find My Friends
    • I started off badly in this round and went all over the places with design in the beginning.
    • The interviewer was super nice and asked many follow-up questions, which helped me organize my design.
    • In general, I think this round didn't go very well, and could be one of the reasons of my rejection.

Lunch Break (1 hr)

Round 3 (1 hr)

  • Introduction
  • Favourite project. This question took a bit longer than I intended as the interviewer asked me many follow-up questions, which didn't leave much time for my coding question.
  • Coding question: Implement Tic-Tac-Toe

Round 4 (45 min)

  • This round was interesting as the interviewer was a product manager instead of a software engineer.
  • Introduction
  • Situation where I convinced a product manager to prioritize tech debts over business requests.
  • Scenario question: Given a business request to include movie ratings from Rotten Tomatoes in the Siri search results, how would I proceed to break down the request and deliver it to Production?
    • I broke this project down into backend and data sourcing implementation, application layer implementation, and frontend design and implementation.
    • Each part can be an epic/phase and be delivered to Production on its own without breaking or impacting other user functionalities.
    • In general, I think this round went well too.

Round 5 (1 hr)

  • Introduction
  • Deep dive into a few points in my resume. Questions asked around my opinions in code reviews and Agile delivery methodology.
  • Coding question: Implement a function to produce random results of N-face dice with a 6-face dice (sugar coated with game Dungeons & Dragons), i.e. assuming I only have a helper function int randomInt1to6() to produce random integers between [1, 2, 3, 4, 5, 6], implement a function int randomInt1toN(int n).
    • Similar Problem: https://leetcode.com/problems/implement-rand10-using-rand7/
    • To be honest, I'm not good at math type of problems at all, so I totally bombed this question.
    • I got stuck for a few min and the interviewer simplified the problem for me and made the helper function to produce a random double value between 1 and 6, i.e. double randomNum1to6() instead.
    • In the end, I was able to finally implement the simplified version with many trials and errors, but didn't have time to implement the original problem statement at all.
    • My C# solution for the simplified problem:
      public static int randomInt1toN(int n)
      {
          return (int)Math.Floor((randomNum1to6() - 1) / 5 * n) + 1;
      }
    • In general, this round went horrible, and is likely the main reason of my rejection.

Round 6 (45 min)

  • This round was the hiring manager round and a purely behavioural round.
  • Introduction
  • Challenging project
  • Situation where I was not able to meet timeline of a project.
  • Situation where I had prioritization discussions with product managers.
  • In general, this round could go either way as I'm generally not too sure about behavioural rounds.

Result: Reject

Preparation:

  • Coding and Algorithms (~6 months):
    • LeetCode (no premium purchased):
      • 483 practice questions (150 Easy, 254 Medium, 79 Hard)
      • 22 contests (I treated contests like mock interviews)
    • Free weekly practice questions from Interview Cake
    • Problem Solving Certification (Basic and Intermediate) on HackerRank
  • System Design (~1 week):
  • Behavioural (~2 days):
    • I mainly prepared 4 responses and they were all used during this interview:
      • Introduction
      • Why Apple?
      • Favourite project
      • Challenging project
    • Practiced them out loud with my wife.

I don't find a lot of good Apple posts here, so hope my experience here can be helpful for others :)

Comments (6)