Apple | SWE | Hyd | Screening
sweApple ICT5 - Phone Screen
ICT5Apple Phone Screen
Apple Interview Experience
Reliability Engineering IS&T InternApple | Junior Software Engineer (ICT-2) | Offcampus
Junior Software Engineer (ICT-2)10 more experiences below
Summary
I recently had a 45-minute screening interview for a Software Engineer role at Apple's Ads Delivery Team in Hyderabad. The round focused primarily on my resume, past technical experiences, leadership principles, and a deep dive into my current projects, with no DSA questions asked.
Full Experience
I applied for a Software Engineer position with the Ads Delivery Team in Hyderabad, India, through Apple's careers portal. The screening round, conducted by another SWE, lasted 45 minutes. This interview primarily revolved around my resume and a detailed discussion of my technical experiences across various companies and teams, highlighting my learnings and key takeaways. We also delved into my current project, which is related to Ads, and the interviewer seemed particularly interested in it. A significant portion of the interview also involved answering several leadership principle-based questions.
Interview Questions (6)
How do you resolve conflicts with your peer?
Tell me a time when you proposed a design to your lead and had to convince him/her that it would fulfill the usecase? How do you pushback when someone is not convinced?
How do you give feedback to your junior team members?
What GenAI tools do you use in your day-to-day life? How does it improve your efficiency?
How do you upskill yourself?
Describe any recent project that you worked on, where you had to implement the feature using a technology that you were not familiar with? How was the learning curve?
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.
Summary
I interviewed for a Junior Software Engineer (ICT-2) role at Apple. After successfully completing the Online Assessment, I proceeded to a technical interview where I demonstrated my DSA skills on problems like Coin Change I and II. Ultimately, I decided the role and team weren't the right fit for my career path, and therefore, wasn't expecting an offer.
Full Experience
I applied for an off-campus Junior Software Engineer (ICT-2) role at Apple in July and soon received an Online Assessment (OA) link. The OA consisted of two coding problems, both of which I solved successfully:
- A variation of the knapsack problem, specifically referred to as 'Double Knapsack' or 'Maximum Weight in Two Bags'.
- A grid traversal problem on a 15x10 grid where I had to follow a unique path made of '*' and lowercase letters, collecting the letters to form a string.
The interview focused on a Java backend role. It began with some cross-questions on my resume and fundamental Java concepts. Then, I was asked to solve 'Coin Change I' and 'Coin Change II', which I solved optimally with correct time complexity. Further questions covered Operating Systems (OS), Object-Oriented Programming (OOPs), and System Design, which I answered to the best of my ability. Throughout the interview, I conveyed my reservations about the specific work this team was engaged in, which led me to not anticipate a callback.
Interview Questions (4)
Given a 15x10 grid containing a unique path made of '' and lowercase letters. The path starts at (0,0), moves only in the four cardinal directions (no diagonals, forks, or loops), and ends at some point. I needed to follow this path, collect all lowercase letters (ignoring ''), and output the formed string.
Given an array of coins with different denominations and a total amount of money, compute the fewest number of coins that are needed to make up that amount. If that amount cannot be made up by any combination of the coins, return -1.
Given an array of coins with different denominations and a total amount of money, compute the number of combinations that make up that amount. It's assumed that an infinite number of each kind of coin is available.
Preparation Tips
My preparation for this particular interview was not as thorough as it should have been, mainly due to the short notice and my ongoing travel plans. Based on my experience, I would strongly advise anyone applying off-campus to:
- Ensure you have a clear understanding of the team's specific work and how it aligns with your career goals.
- Dedicate sufficient time to brushing up on Data Structures and Algorithms (DSA).
Summary
I interviewed for an IC3 Frontend Engineer role at Apple, which included an online assessment, a recruiter call, and a technical interview covering React, Data Structures & Algorithms, and web security. Despite my efforts, I was not selected for the position.
Full Experience
Application & Online Assessment
I've been applying to Apple on and off for the past 2–3 years. This time, I finally received an online assessment link for the IC3 Frontend Engineer role.
Assessment Format:
- Duration: 1 hour
- 2 Coding Questions (DSA + JavaScript): These were a mix of JavaScript and Data Structures & Algorithms — designed smartly to test both areas in tandem. The difficulty was easy to medium, but the time constraint made it challenging.
- 20 Multiple Choice Questions: Covered core JavaScript, React, and Frontend Engineering concepts.
Overall Assessment Difficulty: Medium to Hard, primarily due to the tight time limit.
Recruiter Call
About a week later, I received a call from an Apple recruiter.
What we discussed:
- My reason for looking out
- Why Apple?
- Compensation expectations
The recruiter was friendly and professional, and after our chat, I was moved to the next round: the technical interview.
Technical Interview (Screening + Coding)
This was a 60-minute video interview with an Apple engineer.
- React Output-Based Question
The interviewer showed a small React code snippet involving the useContext API. I was asked to predict the output and explain the reasoning. Follow-up questions on React hooks:
- useContext: its use in prop drilling and state management
- useMemo & useCallback: optimizing performance in React components
Tip: Be crystal clear with hook behaviors under different re-renders and props changes.
- Nested Tabs Rendering Problem (Coding Round)
This was the main coding challenge — and also the most interesting one.
Problem Statement: Given a flat array of tab objects with id, name, and parentId, render a nested tab or accordion structure in React where each tab appears under its parent.
Sample Input JSON:
[
{ "id": 1, "name": "Parent 1", "parentId": null },
{ "id": 2, "name": "Child 1.1", "parentId": 1 },
{ "id": 3, "name": "Child 1.2", "parentId": 1 },
{ "id": 4, "name": "Parent 2", "parentId": null },
{ "id": 5, "name": "Child 2.1", "parentId": 4 }
]Objective: Transform this into a nested UI structure, like:
- Parent 1
- Child 1.1
- Child 1.2
- Parent 2
- Child 2.1My Approach: Converted the flat list into a tree-like structure using a map and used DFS to render tabs recursively.
I was able to solve it and explain my logic clearly. The interviewer seemed satisfied.
- Web Security Basics
Finally, I was asked a few questions on web security:
- How can we secure a website?
- Topics like HTTPS, Content Security Policy (CSP), CORS, and securing cookies came up.
Outcome
After 4 weeks, I heard back from the recruiter:
“Someone else has joined for this position. We'll reach out if similar roles open up.”
Yes, I felt a little disappointed. But I was also genuinely happy knowing someone else just got their dream job. That's life.
Interview Questions (3)
The interviewer showed a small React code snippet involving the useContext API. I was asked to predict the output and explain the reasoning. Follow-up questions covered React hooks: useContext (its use in prop drilling and state management) and useMemo & useCallback (optimizing performance in React components).
Given a flat array of tab objects with id, name, and parentId, render a nested tab or accordion structure in React where each tab appears under its parent.
Sample Input JSON:
[
{ "id": 1, "name": "Parent 1", "parentId": null },
{ "id": 2, "name": "Child 1.1", "parentId": 1 },
{ "id": 3, "name": "Child 1.2", "parentId": 1 },
{ "id": 4, "name": "Parent 2", "parentId": null },
{ "id": 5, "name": "Child 2.1", "parentId": 4 }
]
Objective: Transform this into a nested UI structure, like:
- Parent 1
- Child 1.1
- Child 1.2
- Parent 2
- Child 2.1
How can we secure a website? Topics like HTTPS, Content Security Policy (CSP), CORS, and securing cookies came up.
Summary
I interviewed for a Software Engineer role at Apple IS&T in Hyderabad, completing five virtual rounds that covered Data Structures & Algorithms, System Design, behavioral questions, and Java/Spring Boot concepts. Despite receiving positive feedback initially, I was ultimately ghosted after the final round.
Full Experience
Hi Folks, Applied for Java,Spring Boot, Microservices role. PS: This is my first FAANG experience. :)
YOE: 5.9 College: Tier-3 Currently SSE @ Walmart
OA Experience: Link
After 2 weeks, recruiter scheduled 2 elimination rounds back to back. Both the rounds were virtual.
Round #1: Taken by a ICT3 (4 YOE) DSA: Trapping rain water problem. (30 min) Java/Spring Boot (Theoretical): (30 min)
- Multiple questions on Spring Cloud components and use cases.
- Default method in interface
- Spring MVC vs Spring Boot
- Comparator vs Comparable
- CAP theorem
- Lambda expressions
- Microservices resiliency aspects. (ratelimiting, circuit breaking)
- explain Factory design pattern with example
Round #2: Taken by a SSE (12+ YOE, Guy was from Wipro, later converted his contract) System Design: BookMyShow (end to end) (40 min) Focused on various aspects: Booking Flow, Onboarding of shows, Search of nearby cinema halls, analytics. $$Advice:$$ Go through the codekarle videos. Java/Spring Boot (Theoretical) : (20 min)
- Spring Cache related questions
- BeanFactory vs ApplicationContext
- Concurrent collections : I explained ConcurrentHashMap.
- whats a Future?
Feedback is positive and 3 further rounds were scheduled next week on consecutive days.
Round #3: Taken by a EM (15+ YOE, Again a Wiproite) (60 min) 15 min intro. All sorts of behavioral related questions were asked. Tell me a time when you innovated. Tell me a time when you had a disagreement with peer. Tell me a time when you delivered in short time and reprioritized work. Tell me a time when you used some new technology in the project. Tell me a time when... All answers given in STAR format.
This guy was sitting in US timezone (8am PST) and slept through the entire interview. I could literally see his eyes closing down. IS&T org is truly filled with mediocrity.
Round #4: Taken by a SWE (15+ YOE, A wiproite, not surprised) (60 min) 5 min intro.
- Create an immutable class. Full working code is expected.
- TinyURL design discussion. Explained 2 approaches: Base62 and MD5 Hash, and its pros and cons.
- Given an array with repeating elements, return K most frequent elements.
Round #5: (after 1 week, got rescheduled)
- implement LRU Cache. Full working code is expected along with test cases. (Used HashMap and Doubly LinkedList)
- Make the above code thread safe. (Used ReentrantReadWriteLock and used ConcurrentHashMap instead of HashMap)
- Complexity of above code.
- What is string intern?
- Why do we override equals and hashcode method?
I felt that the interviewer was not paying attention to what I was saying. He kept arguing that LRU cache could be implemented with just map and DLL was not required. I explained my thought process twice but he was not ready to accept. I dont think this old guy (40+) had adequate knowledge.
Its been a week, no update. Got ghosted i guess. Overall my take is that Apple doesnt have a clear interview process, as you can see HM was 3rd round instead of last for me. And even recruiter also doesnt know the order of the rounds. So, you need to be prepared well for anything.
#apple #faang
Interview Questions (24)
Solve the 'Trapping Rain Water' problem.
Explain default methods in Java interfaces.
Differentiate between Spring MVC and Spring Boot.
Explain the difference between Comparator and Comparable interfaces in Java.
Explain the CAP theorem.
Explain Lambda expressions in Java.
Discuss microservices resiliency aspects, specifically mentioning rate limiting and circuit breaking.
Explain the Factory design pattern with an example.
Design the BookMyShow system end-to-end, focusing on booking flow, onboarding of shows, searching nearby cinema halls, and analytics.
Differentiate between BeanFactory and ApplicationContext in Spring.
Discuss concurrent collections. I explained ConcurrentHashMap.
Explain what a Future is in Java.
Tell me a time when you innovated.
Tell me a time when you had a disagreement with a peer.
Tell me a time when you delivered in a short time and reprioritized work.
Tell me a time when you used some new technology in a project.
Create a full working code example of an immutable class in Java.
Discuss the design of TinyURL. I explained two approaches: Base62 and MD5 Hash, along with their pros and cons.
Given an array with repeating elements, return K most frequent elements.
Implement an LRU Cache with full working code and test cases.
Make the implemented LRU Cache code thread safe.
Analyze the time and space complexity of the LRU Cache implementation.
Explain what String.intern() method does in Java.
Explain why we override the equals() and hashCode() methods in Java.
Preparation Tips
I prepared for System Design by going through CodeKarle videos. For behavioral questions, I consistently used the STAR format to structure my answers. During coding rounds, I approached the LRU Cache implementation using a HashMap and a Doubly Linked List, and made it thread-safe by applying ReentrantReadWriteLock and replacing HashMap with ConcurrentHashMap. For TinyURL design, I discussed and contrasted Base62 and MD5 Hash approaches. I also detailed ConcurrentHashMap when asked about concurrent collections.
Summary
I applied directly to Apple's careers website for an SWE role in IS&T in Hyderabad and received a Coderpad Online Assessment. The OA consisted of two Java-based data structures and algorithms questions, with a 70-minute time limit, and I have provided my solutions below.
Full Experience
YOE: 5.5 College: Tier-3 Currently SSE @ Walmart Applied directly at Apple's careers website.
Coderpad Link was shared which had 2 questions (Java based) with 70 min time limit.
Interview Questions (2)
You're given a list of strings representing a 2D grid. The first character of the first string is the upper left side of coordinates(0,0). The grid always has the same size: Width = 15 (each string contains 15 characters) Height = 10 (10 strings in the list)
The grid contains a unique path, made of stars(*) and of lowercase letters. The path always starts at the coordinates(0,0) and does not contain any forks or loops. It moves in the four directions (up,down,right,left) but not diagonally. You must follow the path and record the letters in the order as you encounter them (do not record the stars). At the end of the path, output the string made with the letters. The path may immediately start with a letter and may end with a letter too. The path has a minimum length of two characters and contains at least one letter.
Finding the maximum combined weight of items that can be packed into two suitcases with given weight limits (w1 and w2)—you need to implement a variation of the 0/1 Knapsack problem, but with two knapsacks (suitcases).
Implement a method maxWeight(weights, w1, w2) which takes as input
- an array of positive integers weights representing the weights of the items.
- two integers w1 and w2 representing the maximum weight that can be put in suitcase 1 and suitcase 2 respectively.
e.g
weights=[10,8,3,8] w1=5, w2=17Answer: 19
Summary
I interviewed for an ICT3 role at Apple in India, completing six rounds covering technical skills in Spark, SQL, DSA, System Design, and React. Despite providing solutions for some problems, including a LeetCode problem with a twist, I received a generic rejection email.
Full Experience
I received a message from a linkedin recruiter . Recruiter was looking for people who have worked with Spark .
1. HM - hiring manager round focused on prior experience . 1 technical question . If you have an SQL query which is taking a lot of time . how will you debug . WHat all will you check i said location of the DB server . Check SQL plan . Check indexes.
2. HM- Another similar round focused on prior experience . 1 technical question . Why use columnar DBs over other database . What excites you to come to work everyday . 3. DSA round- similar to this https://leetcode.com/problems/remove-duplicates-from-sorted-array/description/ . with the twist that max K similar is allowed . 4. HM Another work experience round - Some questions on spark and alternatives . All work history rounds were in depth questions to check if you have really worked on them Questions like . What all alternatives were there . Why did you choose this . How does it help to scale etc etc . 5. Full stack round- I wasn't prepared for questions on react since haven't worked on it for 3 years . Frontend questions on react like use effect , hooks . Some of them went above my head :) . then a question . Given a function which returns a shallow copy of a object in json format . Take an oject as input and return a deep copy of the object . you can only use the function . DSA question - https://leetcode.com/problems/meeting-rooms-ii/description/ . I was seeing this for the first time . gave the correct solution using Priority Queue but then the interviewer said that the hours are fixed from 1 to 24 . Wasn't able to come up with the exact solution but came close . 6. System design round - How to scale an application from 100 to 1 million requests per second
No feedback . Generic rejection mail
Interview Questions (7)
If you have an SQL query which is taking a lot of time. How will you debug? What all will you check?
Why use columnar DBs over other database?
What excites you to come to work everyday?
Similar to LeetCode's Remove Duplicates from Sorted Array, but with the twist that a maximum of K similar elements are allowed in the array.
Given a function which returns a shallow copy of an object in JSON format. Take an object as input and return a deep copy of the object. You can only use the given shallow copy function.
The problem is Meeting Rooms II, but with the additional constraint that the hours are fixed from 1 to 24.
Design a system to scale an application from 100 requests per second to 1 million requests per second.
Summary
I underwent an interview process for a Full Stack Developer role at Apple's Hyderabad office, which included an online assessment and two 1.5-hour technical rounds. The interviews covered React.js for frontend and Java for backend, involving specific coding challenges on hierarchical data display and grouping anagrams. Despite my efforts, I received a rejection.
Full Experience
Hello guys,
Recently got shortlisted for a full stack developer position for Apple Hyderabad office. Here's how the interview went
Firstly, there is an online assesment on coderpad which needs to be done. The test has roughly 25 questions, a mix of MCQs and coding problems. It is very difficult to finish the test on time, and its okay if 2-3 questions get left out.
After that a recruiter will reach out to you to schedule interviews. I gave two interviews , each lasting for almost 1.5 hrs.
For frontend, I was given option whether I'd like react or angular questions and since I've been working on react lately, I opted for it.
The question was given a dataset of employees which have attributes as id, name, department and reportees which is a list of employees again, implement a file structure kind of system where on clicking one employee you must see it's data and reportees.
Did a basic working implementation of the same using functional components. Dont focus much on styling or css.
Follow up question to this was what if any employee has no reportees? Make sure to handle edge cases carefully.
Provided a working solution with all edge cases handled.
Second round was on same day for Java. Same coderpad setup which was for frontend round too to code.
Question was given an array of words determine which words are anagrams and return them
ex. I/P : ["bat", "tab", "eat", "tea"] O/P: [["bat","tab"],["eat","tea"]]
Did a brute force method approach first, then with a few hints optimized it by using hashmap where key is the word and value is 26 length integer of 1s and 0s representing the count of alphabets with a delimiter like # after count of every alphabet.
Missed out on edge case handling of blank sting in input. Couldn't complete an executable code. Interviewer also deep dived into time and space complexities of the appraoches and asked working of hashmap, what happens when there is collision, deep dived into red black trees and its concept.
Final verdict: Rejected, no feedback, just an auto generated email saying thanks(wtf?) Feeling really dejected
Interview Questions (2)
Given a dataset of employees which have attributes as id, name, department and reportees which is a list of employees again, implement a file structure kind of system where on clicking one employee you must see it's data and reportees. Follow up question to this was what if any employee has no reportees? Make sure to handle edge cases carefully.
Given an array of words determine which words are anagrams and return them. Example: I/P : ["bat", "tab", "eat", "tea"], O/P: [["bat","tab"],["eat","tea"]].
Preparation Tips
I opted for React questions since I had been working on React lately.
Summary
I interviewed for a Java Backend Engineer SDE 2 L4 role at Apple in Hyderabad. The interview process involved multiple rounds covering Java fundamentals, Spring Boot, coding, multithreading, and system design, with a strong focus on real-world problem-solving and scalability.
Full Experience
My Apple Interview Experience - Java Backend Engineer
I recently interviewed for a Java Backend Engineer role at Apple and would like to share a detailed breakdown of my experience.
Round 1: Java, Spring Boot, and Coding
Java Fundamentals
- I discussed why Java is platform-independent.
- I compared Java with platform-dependent languages and explained the reasons for the difference.
- I elaborated on the difference between ArrayList and Map.
- I addressed why a Map cannot be used for all purposes.
- I differentiated between Map and Set.
- I detailed what inheritance is, along with its types and examples.
- I explained the static keyword, its usage, and provided an example from my project.
Spring Boot Questions
- I discussed the use of Beans in Spring.
- I explained the differences between Java and Spring.
- I articulated why we use Spring.
- I provided explanations and examples for commonly used Spring Boot annotations.
Coding Questions
For each coding question, I presented two solutions and coded one when requested.
Round 2: Spring Boot, Multithreading, and System Design
Spring Boot Basics
- I discussed where Spring Boot and Node.js run.
- I identified which file is used for downloading dependencies (e.g., pom.xml for Maven).
- I mentioned other available dependency management tools besides Maven.
- I also answered additional Spring Boot questions, though I don't recall them in detail.
Multithreading Question
I was asked to implement a countdown timer.
System Design Question
I was presented with a scenario to design a robust system for a large-scale application.
Final Thoughts
The interviewers were very engaging and focused on practical, real-world problem-solving. It was clear that deep dives into Java fundamentals and Spring Boot were expected. The system design round emphasized scalability and effectively handling large-scale users.
Interview Questions (20)
Why is Java platform-independent?
Which languages are platform-dependent, and why?
Difference between ArrayList and Map
Why can’t we use a Map for all purposes?
Difference between Map and Set
What is inheritance? Types of inheritance with examples.
What is the static keyword? Where do we use it? Provide an example from your project.
Why are Beans used in Spring?
What is the difference between Java and Spring?
Why do we use Spring?
Explain a few commonly used @Annotations with examples.
Given two sorted arrays, merge them into a single sorted array.
Find the K most frequent elements in a given array.
Find the longest common prefix string amongst an array of strings.
Given n platforms and two main railway tracks (for both directions). Each train has three values: Arrival Time, Departure Time, Required Platform Number. Some trains stop at the station (require platforms), while others pass through the main tracks. Objective: Find the maximum number of trains that can be accommodated for stoppage.
Where does Spring Boot run? Where does Node.js run?
Which file is used to download dependencies?
Other than Maven, what dependency management tools are available?
Given a file containing a time value in the format H:M:S, implement a countdown timer from that value to 00:00:00. The file may contain: Only H (Hours), Only M (Minutes), Only S (Seconds). Ensure the timer displays in HH:MM:SS format and updates every second.
Design a robust system for 'Women Who Code' to circulate a subscription form that needs to handle access from billions of people and process subscription fees, ensuring wide-scale usage and scalability.
Preparation Tips
My preparation involved focusing on core Java fundamentals, diving deep into Spring Boot concepts, understanding multithreading principles, and practicing system design for scalable architectures. These areas were crucial for tackling the real-world problem-solving scenarios presented during the interview.
Summary
I successfully navigated multiple interview rounds for a Senior Software Engineer (ICT3) position at Apple, including comprehensive coding, system design, and behavioral assessments across two separate interview cycles in 2022 and 2024, ultimately receiving and accepting an offer.
Full Experience
How My Profile Got Shortlisted:
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 for me 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, which was my experience in 2024.
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 definitely help.
Interview Questions (2022 Cycle):
Due to NDA, some questions are slightly modified.
- Online HackerRank assessment: I faced two easy-medium questions with a time limit of 45 minutes.
- DSA round: I was asked to create a phone directory where, given a phone number, I had to return the name (and vice versa). I initially considered a Trie, but a simple two-hashmap approach worked just fine.
- Systems design round: This was probably the most challenging and interesting round. Instead of 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 various 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, they asked a few behavioral questions about challenges I've faced at work and disagreements with leadership.
- Leadership round: This was more of a discussion about the company's vision, conducted by a skip-level manager.
Interview Questions (2024 Cycle - for several positions simultaneously):
-
Online HackerRank assessment: The format was the same as in 2022, with two medium-level questions.
- Stickler thief in a circular array (with modifications: toys and fun units instead of houses and money)
- Remove adjacent duplicates in string
-
Coding round: This round was quite diverse.
- In an open-ended question, I was 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 I 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 structures and ensuring quick, scalable access to the stored information.
- Longest common prefix: I initially used a Trie, but the interviewer asked for an alternate approach, so I switched to iterating through the array character by character.
- Reverse linked list within a range
- Depth of a binary tree
- Design snake game
- I was asked to 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 demonstrate my adaptability.
- SQL-related questions were asked, including querying top employees with the highest salary from each department.
- 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; }My suggested optimizations were:
- Avoid using
Long(Object) instead oflong(primitive) to prevent memory issues. - Use
Iteratoror switch toArrayListfor better performance withget(index)inLinkedList.
- Avoid using
-
Systems design: This round had multiple distinct problems.
- Design an online block diagram maker app, including real-time updates for multiple users and infinite canvas size management.
- 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. My 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.
- Develop an app similar to DigiYatra.
- We discussed concepts like Kafka vs. SQS, microservices architecture, circuit breakers, and quorum.
- HM round: This was similar to the 2022 round, focusing on my past projects and behavioral aspects.
Offer:
The entire process took me 1–1.5 months. Apple's offer may not have the highest cash component, but I found the stock component to be very attractive. In my opinion, the culture, perks, and stock performance make it a great offer, which I happily accepted.
Interview Questions (21)
Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. An input string is valid if: Open brackets must be closed by the same type of brackets. Open brackets must be closed in the correct order. Every close bracket has a corresponding open bracket of the same type.
Design and implement a phone directory system where, given a phone number, you return the corresponding name, and vice versa. The system should support bidirectional lookups.
Design a payment system that can function reliably even when internet connectivity is unavailable. Key considerations included security, distributed authority, and avoiding a single source of truth. We discussed concepts related to blockchain.
Explain how I would crawl URLs from a webpage and build a map of URLs to their corresponding HTML content, utilizing a Breadth-First Search (BFS) approach.
I was asked behavioral questions covering my experiences with challenges encountered at work and how I handled disagreements with leadership.
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed. All houses are arranged in a circle. That means the first house is the neighbor of the last one. Meanwhile, adjacent houses have security systems connected, and it will automatically contact the police if two adjacent houses were broken into on the same night. This problem was given with modifications: 'toys and fun units' instead of 'houses and money' in a circular array setup.
Design a system that listens to messages from a data source related to various events (e.g., movie releases, sports events). Event types have different structures, requiring a flexible message format like JSON. The challenge is 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. Focus on creating optimal data structures and ensuring quick, scalable access to the stored information.
Build a React web page to display GDP data. This was an open-ended front-end development task where I was allowed to use Google, demonstrating adaptability, even though I hadn't worked with React previously.
I was asked SQL-related questions, specifically how to query the top employees with the highest salary from each department.
Given a Java code snippet for summing integers in a LinkedList<Integer>, identify and suggest optimizations to improve performance and prevent potential memory issues. The original code was:
LinkedList<Integer> list;
Long sum = 0;
for (int i = 0; i < list.size(); ++i) {
Long value = list.get(i);
sum += value;
}Design an online application for creating block diagrams. The system should support real-time updates for multiple concurrent users and manage an 'infinite' canvas size efficiently.
Design a system for managing and propagating asset price changes. Changes in one asset's price should trigger updates in related assets based on predefined, weighted dependency relationships modeled as a Directed Acyclic Graph (DAG). The system must efficiently propagate updates across dependent assets with low latency and consistency, similar to a stock trading platform.
Develop the system design for an application similar to DigiYatra, which focuses on providing a seamless, paperless travel experience using facial recognition technology.
I was asked to discuss and compare various distributed systems concepts, including Kafka vs. SQS, microservices architecture, circuit breakers, and quorum.
This hiring manager round focused on discussions about my past projects and various behavioral questions, similar to the 2022 hiring manager round.
Preparation Tips
For my preparation, I utilized various resources and methods. I specifically found a Google interview experience blog post helpful for detailing my study approach, which you can find here: Google interview experience blog.
Summary
I recently interviewed for an AI/ML - Language Engineer position at Apple in Barcelona, which spanned from November 2023 to January 2024. The process involved multiple rounds covering project management, ML/NLP, and technical problem-solving, including coding challenges like 'Contains Duplicate' and 'One Edit Distance'. Although I felt I performed well on most aspects, I was ultimately rejected, as Apple chose to move forward with other candidates, possibly due to a perceived lack of professional experience relevant to the role.
Full Experience
I applied for an AI/ML - Language Engineer position at Apple in Barcelona. My background includes a BS in Computer Engineering and Mathematics, and I am currently pursuing an M.Sc, with 6 years of experience as a Software Engineer. The interview process, which took place between November 2023 and January 2024, began with an introductory phone call.
Following this, I had three main interviews:
- Interview A: Project Management and Scripting (60 minutes)
- Interview B: Machine Learning and NLP (45 minutes)
- Interview C: Tech Learning & Problem Solving (45 minutes)
Interview A was more structured and included specific questions and a coding challenge. The questions in this round (first 40 minutes) focused on:
- Explaining what a Hash Table/Map is, how to implement it, and strategies for dealing with collisions, including methods without using extra space.
- Based on my CV and previous experience with C#, I was asked about the difference between dynamic and static libraries.
- Explaining the difference between Depth First Search (DFS) and Breadth First Search (BFS).
- My understanding of DevOps and my experience with it.
- GIT-related questions:
- What is the difference between git rebase and git merge?
- How would I investigate a breaking change introduced between a high quantity of commits?
- What is my favorite git command and why?
- Contains Duplicate (LC easy)
- One Edit Distance (LC medium)
Interview Questions (9)
Explain what is a Hash Table/Map. How would you implement it? How to deal with collisions? How to deal with collisions without using extra space?
Based on my CV/previous experience with C#, what is the difference between dynamic and static libraries?
Explain the difference between Depth First Search (DFS) and Breadth First Search (BFS).
Explain what you understand as DevOps and your experience with it.
What is the difference between git rebase and git merge?
How would you investigate a breaking change introduced between a high quantity of commits?
What is your favorite git command? Why?
Summary
I interviewed for an Embedded Software Engineer role at Apple Munich, completing a hiring manager round and a technical coding round. Although I successfully passed the first stage, I was ultimately rejected after the second, less communicative technical interview.
Full Experience
I recently went through the interview process for an Embedded Software Engineer position at Apple Munich. Having over 1 year of experience, I applied through their careers portal and received an invitation for a hiring manager round approximately two weeks later.
Hiring Manager Round (Virtual)
This was a very pleasant and engaging 45-minute virtual interview. The manager started by explaining his team's role, the process, and the next steps. The interview was divided into technical and non-technical questions. We began with the technical segment:- Semaphore vs. Mutex?
- Difference layers of 4G and 5G, how do they differ? What's new in 5G?
- Carrier aggregation concept and which layer does it affect?
- Explain all layers in detail.
- What is the main role of the RLC layer?
- Other general communication engineering questions.
For the non-technical questions, I was asked:
- When can you start?
- Explain a bad situation with your team members and how you resolved it.
- Explain a mistake you made at work and how you fixed it.
Second Interview (The challenging part, 1 hour)
For a role in Munich, this interview was conducted by someone from the US. The interviewer seemed less friendly and immediately started with in-depth questions about semaphore vs. mutex and other OS concepts, without any introduction.He then moved to a Coderpad session:
- Implement a linked list, insert at head, and then reverse it. I honestly didn't expect such a question for an embedded role at Apple, but I tried my best, although I didn't fully meet his expectations.
- The second question was more straightforward and expected: bit manipulation, specifically setting and getting bits.
Two weeks later, I received the rejection mail.
Interview Questions (8)
Explain the differences between a Semaphore and a Mutex.
Discuss the differences in communication layers between 4G and 5G, how they differ, and what new features 5G introduces.
Explain the concept of carrier aggregation and identify which communication layer it affects.
Describe the main role of the Radio Link Control (RLC) layer in communication systems.
Describe a difficult situation you experienced with team members and how you successfully resolved it.
Share an experience where you made a mistake at work and explain the steps you took to fix it.
Implement a singly linked list, including an operation to insert a node at the head, and then reverse the entire linked list.
Implement basic bit manipulation functions to set a specific bit to 1 and get the value of a specific bit (0 or 1) within an integer.
Summary
I recently completed an onsite interview at Apple, which included two specific LeetCode problems and discussions on computer science fundamentals. Although I ultimately received an offer from Google, my experience at Apple was valuable.
Full Experience
During my onsite interview at Apple, I was presented with two coding challenges: Course Schedule (LeetCode 207) and Pacific Atlantic Water Flow (LeetCode 417). Beyond the coding, a significant portion of the interview involved in-depth discussions on core computer science fundamentals and various debugging methodologies. While I ultimately accepted an offer from Google, I gained valuable insights into Apple's technical interviewing process through this experience.
Interview Questions (2)
There are a total of numCourses courses you have to take, labeled from 0 to numCourses - 1. You are given an array prerequisites where prerequisites[i] = [ai, bi] indicates that you must take course bi first if you want to take course ai. For example, the pair [0, 1] indicates that you have to take course 1 before course 0. Return true if you can finish all courses. Otherwise, return false.
Given an m x n integer matrix heights representing the height of each unit cell in a continent, your task is to find a list of grid coordinates (row, col) where water can flow to both the Pacific and Atlantic oceans. Water can flow from a cell to an adjacent cell if the adjacent cell has a height less than or equal to the current cell's height. Both the Pacific and Atlantic oceans touch the border of the continent.