Celigo Interview Experience for SDE2/3
Summary
I successfully navigated three rounds of interviews for an SDE2/3 role at Celigo Hyderabad, which included Data Structures & Algorithms, System Design, and a Technical Manager discussion.
Full Experience
I interviewed for an SDE2/3 position at Celigo in Hyderabad, and the process consisted of three distinct rounds.
Round 1 - Data Structures & Algorithms
This round focused on my problem-solving skills. I was given the Unique Paths II problem from LeetCode. I initially solved it using a recursive approach within the allotted time. The interviewer then asked me to optimize my solution, which I proceeded to do.
Round 2 - System Design
The second round was dedicated to system design. I was tasked with designing a database schema for a platform similar to LinkedIn. This included discussing various queries and strategies to optimize their efficiency. Following that, I was asked to design a Job Scheduler from scratch and articulate how I would scale it to handle increasing loads. I managed to successfully address both problems and advanced to the next stage.
Round 3 - Technical Manager Round
The final round was with a Technical Manager. Here, the discussion revolved around my past projects, the challenges I encountered during their development, and how I overcame them. There were also several technical questions related to my specific tech stack, along with some behavioral questions to assess my fit.
Interview Questions (4)
I was asked to solve the Unique Paths II problem. The goal is to find the number of unique paths from the top-left corner to the bottom-right corner of a grid with obstacles. I solved it using recursion and was later asked to optimize the solution.
I was asked to design a database schema for a platform similar to LinkedIn. This involved considering various entities like users, connections, job postings, messages, etc., and defining their relationships. Additionally, I had to discuss multiple queries and strategies to optimize their efficiency.
I was tasked with designing a Job Scheduler from scratch. This involved outlining its core components, how it would manage and execute scheduled jobs, and how it would handle various scenarios like retries, prioritization, and distributed execution. I also had to explain how I would scale it to handle an increasing number of jobs and users.
In the technical manager round, I was asked to explain my past projects in detail and elaborate on the challenges I had faced during their development. This included describing the nature of the problems, my approach to solving them, and the outcomes.