Apple | IS&T | SWE | Hyd | Backend

apple logo
apple
Software EngineerHyderabad5.9 years
June 13, 20254 reads

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)

  1. Multiple questions on Spring Cloud components and use cases.
  2. Default method in interface
  3. Spring MVC vs Spring Boot
  4. Comparator vs Comparable
  5. CAP theorem
  6. Lambda expressions
  7. Microservices resiliency aspects. (ratelimiting, circuit breaking)
  8. 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)

  1. Spring Cache related questions
  2. BeanFactory vs ApplicationContext
  3. Concurrent collections : I explained ConcurrentHashMap.
  4. 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.

  1. Create an immutable class. Full working code is expected.
  2. TinyURL design discussion. Explained 2 approaches: Base62 and MD5 Hash, and its pros and cons.
  3. Given an array with repeating elements, return K most frequent elements.

Round #5: (after 1 week, got rescheduled)

  1. implement LRU Cache. Full working code is expected along with test cases. (Used HashMap and Doubly LinkedList)
  2. Make the above code thread safe. (Used ReentrantReadWriteLock and used ConcurrentHashMap instead of HashMap)
  3. Complexity of above code.
  4. What is string intern?
  5. 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)

Q1
Trapping Rain Water
Data Structures & AlgorithmsHard

Solve the 'Trapping Rain Water' problem.

Q2
Default Method in Interface
Other

Explain default methods in Java interfaces.

Q3
Spring MVC vs Spring Boot
Other

Differentiate between Spring MVC and Spring Boot.

Q4
Comparator vs Comparable
Other

Explain the difference between Comparator and Comparable interfaces in Java.

Q5
CAP Theorem
System Design

Explain the CAP theorem.

Q6
Lambda Expressions
Other

Explain Lambda expressions in Java.

Q7
Microservices Resiliency
System Design

Discuss microservices resiliency aspects, specifically mentioning rate limiting and circuit breaking.

Q8
Factory Design Pattern
Other

Explain the Factory design pattern with an example.

Q9
Design BookMyShow
System DesignHard

Design the BookMyShow system end-to-end, focusing on booking flow, onboarding of shows, searching nearby cinema halls, and analytics.

Q10
BeanFactory vs ApplicationContext
Other

Differentiate between BeanFactory and ApplicationContext in Spring.

Q11
Concurrent Collections (ConcurrentHashMap)
Other

Discuss concurrent collections. I explained ConcurrentHashMap.

Q12
What is a Future?
Other

Explain what a Future is in Java.

Q13
Behavioral: Innovation
Behavioral

Tell me a time when you innovated.

Q14
Behavioral: Disagreement with Peer
Behavioral

Tell me a time when you had a disagreement with a peer.

Q15
Behavioral: Delivering in Short Time
Behavioral

Tell me a time when you delivered in a short time and reprioritized work.

Q16
Behavioral: New Technology Adoption
Behavioral

Tell me a time when you used some new technology in a project.

Q17
Create an Immutable Class
OtherMedium

Create a full working code example of an immutable class in Java.

Q18
Design TinyURL
System DesignMedium

Discuss the design of TinyURL. I explained two approaches: Base62 and MD5 Hash, along with their pros and cons.

Q19
K Most Frequent Elements
Data Structures & AlgorithmsMedium

Given an array with repeating elements, return K most frequent elements.

Q20
Implement LRU Cache
Data Structures & AlgorithmsMedium

Implement an LRU Cache with full working code and test cases.

Q21
Make LRU Cache Thread-Safe
Data Structures & AlgorithmsHard

Make the implemented LRU Cache code thread safe.

Q22
Time/Space Complexity of LRU Cache
Data Structures & Algorithms

Analyze the time and space complexity of the LRU Cache implementation.

Q23
String intern()
Other

Explain what String.intern() method does in Java.

Q24
Override equals() and hashCode()
Other

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.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!