Apple | IS&T | SWE | Hyd | Backend
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.