Summary
I interviewed for an SDE-2 role at an AI Healthcare Stealth Startup, completing three rounds that covered DSA, Java concepts, system design, and distributed systems. I am currently awaiting the final verdict.
Full Experience
I recently interviewed for an SDE-2 position at an AI Healthcare Stealth Startup. The process consisted of three rounds, starting with a technical screening and followed by two in-depth discussions with the company's founding members.
Round 1 (Screening Round)
This round primarily focused on Data Structures & Algorithms and core Java concepts. I was given a medium DSA question and asked to elaborate on fundamental object-oriented programming principles and their implementation in Java.Round 2
This round, conducted by one of the founding members, lasted about 30 minutes. The discussion revolved around my past work experience and delved into various distributed systems and API-related topics, including Kafka, REST, OAuth, and GraphQL.Round 3
Also conducted by a founding member, this round was about an hour long. It was heavily focused on system design. I was challenged with both high-level and low-level design questions for a real-world application like Cricbuzz, along with discussions on database choices and design patterns. Even though I fumbled on some tradeoffs, I felt the interviewer was satisfied with my overall approach and provided healthy feedback. I am now waiting for the final result.Interview Questions (12)
Explain the difference between Abstraction and Encapsulation, providing examples of each concept implemented in Java.
Discuss the implementation and use cases of private constructors in Java.
Explain the core OOPS principles (Encapsulation, Inheritance, Polymorphism, Abstraction) and SOLID principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion) with examples in Java.
Discuss fundamental concepts of Apache Kafka.
Discuss various aspects of API security, including RESTful API design, OAuth authentication, encryption techniques, and general security management practices within an application.
Explain concepts related to GraphQL schema design, schema management, and stitching keys.
Provide a detailed comparison between GraphQL and REST APIs, highlighting their advantages, disadvantages, and suitable use cases.
Design the low-level architecture for Cricbuzz, detailing functional and non-functional requirements, and discussing data modeling.
Apply and explain the implementation of design patterns such as Factory, State, Observer, and Strategy within the context of the Cricbuzz low-level design.
Design the high-level architecture for Cricbuzz, focusing on scaling strategies, handling read vs. write operations on the database, ensuring consistency and ordering guarantees, managing latency, leveraging Kafka for event management, utilizing Redis Cache, and ensuring real-time delivery to users.
Discuss the tradeoffs between SQL and NoSQL databases in the context of the Cricbuzz system design, and justify the choice of database for this application.