Summary
I recently had a phone screen for an ICT5 role at Apple, where I was presented with a specific board game problem related to capturing stones.
Full Experience
During my phone screen with Apple for an ICT5 position, the interviewer posed an intriguing problem involving a game board. The task was to simulate placing a new black stone at a given (row, col) on a board and then determine the total count of white stones that would be captured as a result of this move. The board itself was represented by a 2D array, with 'e' for empty, 'b' for black, and 'w' for white. I had to devise an algorithm to identify and count all white stones that would become surrounded and captured by the newly placed black stone, alongside any existing black stones.
Interview Questions (1)
Given a game board and a position (row, col) where a black stone is about to be placed, return the number of white stones captured by black. The board is represented as a 2D array of characters.
Example:board = [ ['e', 'e', 'e', 'e', 'b', 'b', 'b'],
['e', 'e', 'e', 'e', 'b', 'w', 'b'],
['e', 'e', 'e', 'e', 'b', 'e', 'b'],
['e', 'e', 'e', 'e', 'e', 'e', 'e']]
If row = 2, col = 5 (where a black stone will be placed next), return the number of white stones captured by black.
Summary
I recently had a phone screen with Apple where I was asked to convert a sorted linked list into a balanced binary search tree.
Full Experience
During my phone screen with Apple, the interviewer presented me with a classic data structure problem. I was given a sorted linked list of integers and tasked with implementing a method to transform it into a balanced binary search tree. The problem statement included a clear example to illustrate the expected output from a given linked list input.
Interview Questions (1)
Given a sorted linked list of integers, write a method(s) to create a balanced binary search tree from the list.
Example:1 -> 2 -> 5 -> 6 -> 8 -> 10 -> 19
Expected Output:
6
/
2 10
/ \ /
1 5 8 19Input :
LinkedList headOutput :
TreeNode rootSummary
I interviewed with Apple for a Reliability Engineering IS&T Intern role, successfully navigating two rounds focusing on technical skills, problem-solving, collaboration, and innovation, ultimately receiving an offer.
Full Experience
I recently had an incredible opportunity to interview with Apple for the Reliability Engineering IS&T Intern role. The selection process was truly enriching, comprising two distinct rounds designed to assess not only my technical proficiency but also my problem-solving ability, collaborative spirit, and cultural fit.
Round 1: Technical (Elimination Round)
This round lasted approximately 50 minutes and focused heavily on Data Structures, Algorithms, and Core Computer Science Fundamentals. It kicked off with a brief introduction and a deep dive into one of my projects.
Introduction and Project Discussion
The interviewer asked me to introduce myself and elaborate on a project, specifically highlighting the technical challenges I faced, how I went about debugging issues, and the overall impact of my work.
DSA Questions (Live Coding)
This was the hands-on coding segment on CoderPad. I was given a few problems:
- Rotate a Matrix 90° Clockwise: I implemented this directly in CoderPad.
- Merge K Sorted Linked Lists: For this, I discussed both the brute-force approach (merging one at a time) and a more optimized solution using a min-heap or priority queue.
- Maximum Length of a Mountain in an Array: I explained my logic and approach to solve this problem.
- LRU Cache: I detailed my design using a HashMap combined with a Doubly Linked List to ensure O(1) operations for both put and get operations.
Complexity and Theory
Following the coding, we moved into theoretical questions:
- What does O(1) space complexity mean?
- The difference between O(log n) and O(n) time, which I illustrated with real-world examples, particularly using database indexing.
Computer Networks Discussion
We then delved into Computer Networks:
- What happens when you search for google.com? I covered both iterative and recursive DNS queries.
- Why are protocols necessary in communication?
- The difference between TCP and UDP, which I explained using an analogy: emailing (prioritizing reliability) versus live streaming (needing speed and tolerating some data loss).
- What is caching, and how does it improve performance? I used DNS caching as an example.
- There was a brief follow-up on L1, L2, and L3 cache levels, which was the only area where I felt less confident.
Within just 30 minutes of completing this round, I received an email confirming my shortlisting for the next stage, which was incredibly fast and exciting.
Round 2: Managerial + HR (Behavioral + Problem Solving)
This 50-minute round focused on values alignment, decision-making, and real-world problem-solving. The interviewer structured the discussion around three key themes: Collaboration, Invention, and Results. Each section involved about 5–6 behavioral questions, requiring me to draw examples from my past experiences and projects.
Collaboration
I was asked about times when I worked in a team without sufficient guidance and how I handled communication gaps to ensure consistent progress. I shared my experiences from large-scale hackathons like Smart India Hackathon and Code with Cisco, emphasizing teamwork, communication, and task division. I explained how I navigated limited guidance by coordinating closely and fostering shared ownership within the team.
Invention
Here, the interviewer inquired about instances where I came up with innovative solutions in any of my projects. I discussed my Second-Hand Car Price Prediction project, where I proposed a novel ensemble-based approach that significantly improved accuracy. I proudly mentioned that this work eventually led to a research paper publication, showcasing how I combine creativity with technical depth.
Results
This section focused on how I dealt with setbacks and ensured successful outcomes despite challenges. I recounted my experience building CollegeQuora, a platform designed to help students collaboratively clear academic doubts. I highlighted how the platform enhanced engagement and knowledge sharing within the department, representing a tangible and meaningful outcome of my efforts.
This round felt less like a typical HR interview and more like a genuine conversation about my journey and mindset. The interviewer was keen on understanding my approach to challenges, how I collaborate, and how I translate ideas into measurable impact.
Verdict: Selected✅
After completing both rounds, I was absolutely thrilled to receive an offer from Apple the very next day. This experience truly stands out as one of the most enriching milestones in my journey.
Interview Questions (16)
Introduce yourself and explain one of your projects in detail, particularly focusing on technical challenges faced, how issues were debugged, and the overall impact of your project.
Implement a function to rotate a given matrix 90 degrees clockwise directly in CoderPad.
Discuss both brute-force (merging one at a time) and optimized approaches (using a min-heap / priority queue) for merging K sorted linked lists.
Explain the logic and approach to find the maximum length of a mountain in an array.
Explain the design of an LRU Cache using a HashMap and a Doubly Linked List to achieve O(1) operations.
What does O(1) space complexity mean?
Explain the difference between O(log n) and O(n) time complexity, providing real-world examples.
Describe the process that occurs when you search for google.com in a browser, covering DNS queries.
Explain why protocols are necessary in communication.
Explain the difference between TCP and UDP.
What is caching, and how does it improve performance?
Discuss L1, L2, and L3 cache levels.
Describe times when you worked in a team without sufficient guidance.
How did you handle communication gaps and ensure consistent progress in a team setting?
Describe instances where you came up with innovative solutions in any of your projects.
How did you deal with setbacks and ensure successful outcomes despite challenges?
Preparation Tips
My preparation focused on a few key areas:
- I revised core DSA topics thoroughly.
- I brushed up on fundamentals of Computer Networks, DBMS, and Operating Systems.
- I reviewed my past projects in detail, preparing to discuss technical challenges and impact.
- Most importantly, I focused on STAYING AUTHENTIC during the interviews.
Keep pushing your limits, because the people who are crazy enough to think they can make a difference, are the ones who do.