Round 1:
Duration: 1 hour
- 20 minutes per question for the following problems (Total: 40 minutes):
- Return the longest common prefix in a string.
- Return the maximum subarray sum from an integer array.
- The remaining 20 minutes consisted of technical questions related to my familiar technology, which was Java:
- Questions on multithreading (Executor Services, Synchronization, Volatile, Transient).
- Questions related to streams.
- Design patterns I am familiar with.
- Discussion on the CI/CD pipeline of my project, as I indicated I had worked on it.
Round 2:
- Duration: 1 hour
- Focus: Understanding my development experience. Questions covered:
- Microservices, Kafka, Caching, Distributed Transactions, DNS, REST APIs, and Design Patterns.
- I explained the Kafka architecture and the fallback methods we used when the consumer fails.
- Discussed microservice patterns I am familiar with and their implementation in my previous projects.
- Asked to write a POST API for a specific scenario and discussed HTTP error codes and methods.
- Discussed exception handling in Spring Boot.
- Questions on design patterns, including the Strategy pattern and Singleton.
- Questions on API gateways, load balancers, and the Circuit Breaker pattern.
- Discussed distributed transactions and the SAGA pattern.
- Questions on caching, Redis, and relevant use cases I have worked on.
- My understanding of DNS.
Round 3:
- Duration: 45 minutes
- Content:
- Discussion of Java 8 features and their explanations.
- Solving the Anagram grouping problem using streams.
- Understanding HashMaps, Concurrent HashMaps, and their internal workings.
- Indexing and normalization in databases.
- Discussion about the projects I have worked on and the expectations from me.
Result: Selected | Offer Denied