Ola | SDE2 | Feb 2021 | Pune | Offer

ola logo
ola
SDE IIPuneOffer
February 28, 202122 reads

Summary

I recently interviewed for an SDE2 position at Ola in Pune during February 2021 and successfully received an offer. The interview process spanned multiple rounds, including problem-solving, system design, and a rigorous hiring manager discussion covering a wide range of technical and behavioral topics.

Full Experience

Interviews Breakdown

I was initially contacted by a recruiter from Ola who was incredibly flexible with scheduling all the interview rounds, providing excellent support throughout the process.

Problem Solving Round 1

This round consisted of two easy Data Structures questions, primarily related to arrays and strings. Unfortunately, since it was about a month ago, I cannot recall the exact problem statements, but they were comparable to LeetCode easy problems.

Problem Solving Round 2

This round, which was 15 days prior, was scheduled for one hour but concluded in about 40 minutes after I addressed both questions successfully.

  • Question 1: Given an array, I had to determine if it could be sorted by reversing any single subarray within it. For example, in [1, 2, 3, 4, 8, 7, 6, 9], reversing the subarray from index 4 to 6 would result in a sorted array.
  • Question 2: This was a variation of the Two Sum problem. I needed to find pairs of numbers in the array [1, 2, 3, 4, 8, 7, 6, 0] that sum up to 6. It was assumed that numbers were positive and distinct, with expected output like [[2,4], [6,0]].

System Design Round

This round took place three days before the offer. It began with a discussion about my current project, where I was asked to draw a block diagram of its various components. Following that, the main task was to design a seat booking system similar to BookMyShow.

  • GetSeatsInfo: This involved designing how to fetch seat information, including grid details, screen layouts, seat categories, and color coding for the UI. I discussed storage mechanisms in the database and the structure of request/response payloads.
  • BookSeats(User u1, array of SeatsNumbers, ScreenId, TheatreId): The core challenge here was managing concurrency and consistency issues during seat booking. This discussion went very smoothly, and it felt like a collaborative effort in building the solution.

Hiring Manager Round

The hiring manager round, held the day after the design round, lasted about 1 hour and 45 minutes and was the most intense. The questions were spontaneous, and the interviewer delved deeply into every detail I mentioned, thoroughly examining my resume.

  • I was asked about the most challenging project I've worked on, including the specific challenges, how I overcame them, and the tech stack used.
  • The interviewer inquired about the rationale behind choosing that particular tech stack and, hypothetically, if I were to rebuild the project from scratch, what new tech stack I'd select and why.
  • Since I mentioned microservices, I had to justify that choice, describe how microservices would be implemented in my current project, and specify the tech stack for each.
  • We discussed flaws in my current project and the problems with NoSQL databases that might lead one to switch to relational ones.
  • A complex scenario involved designing an analytics approach for my project without using a relational DB. I proposed a data pipeline and was then asked to design its workings.
  • Numerous questions followed on messaging systems (RabbitMQ, Kafka, their differences, components, necessity, and real-world use cases), Redis (what it is, if it can be used as a message queue), and caching concepts.
  • My experience with application monitoring tools like Kibana and Grafana was explored, including their internal workings, how I would design such a system, and appropriate database choices (especially Cassandra for write-intensive scenarios).
  • Integration of logging tools, container-specific details, and log pushing mechanisms to Kibana were also discussed.
  • Fundamentals of load balancing, proxy vs. reverse proxy, ZooKeeper, and sharding (when and why it's needed) were covered.
  • Finally, several behavioral questions were posed, such as conflicts with managers/peers and their resolution, best and poor performance feedback received and how I handled it, and my motivation for joining Ola.
  • I also had the opportunity to ask questions at the end.

Interview Questions (31)

Q1
Sort Array by Reversing Single Subarray
Data Structures & Algorithms

Given an array, determine if it can be sorted by reversing exactly one subarray. For example, in [1, 2, 3, 4, 8, 7, 6, 9], reversing the subarray from index 4 to 6 results in a sorted array.

Q2
Two Sum (Specific Target)
Data Structures & AlgorithmsEasy

Find pairs of numbers in the array [1, 2, 3, 4, 8, 7, 6, 0] that sum up to 6 (X). Assume positive numbers and distinct elements. Expected output example: [[2,4], [6,0]].

Q3
Design BookMyShow Seat Booking System
System DesignHard

Design a seat booking system similar to BookMyShow. Key requirements included:

  • GetSeatsInfo: Fetch seat information with grid details, screen, seat categories, seats layout, color coding for UI. Discuss storage in DB, request/response formats.
  • BookSeats(User u1, array of SeatsNumbers, ScreenId, TheatreId): Manage concurrency and consistency issues.

Q4
Most Challenging Project
Behavioral

Discuss the most challenging project you've worked on, detailing the specific challenges and how you overcame them.

Q5
Project Tech Stack
Other

What tech stack did you use in your most challenging project?

Q6
Rationale for Tech Stack Choice
Other

Explain the rationale behind choosing the specific tech stack for your project.

Q7
Rebuilding Project with New Tech Stack
System Design

If you had to recreate this project from scratch, what new tech stack would you choose and what would be your approach? Justify your choices. (My answer involved Microservices)

Q8
Justification for Microservices
System Design

Explain your reasons for choosing a microservices architecture.

Q9
Microservices in Current Project
System Design

Identify and describe the potential microservices within your current project.

Q10
Tech Stack for Each Microservice
System Design

Specify the tech stack for each microservice identified in your current project.

Q11
Flaws in Current Project
Behavioral

Discuss the flaws or shortcomings present in your current project.

Q12
NoSQL to Relational DB Migration Rationale
System Design

Discuss problems encountered with NoSQL databases that would lead you to consider switching to a relational database.

Q13
Designing Data Pipeline for Analytics (without Relational DB)
System DesignHard

Given a project requiring analytics, and a constraint against using relational databases for analytics queries, how would you approach the database design? If a data pipeline is proposed, how would you design and implement it?

Q14
RabbitMQ vs. Kafka and Message Queue Internals
System Design

Explain what RabbitMQ is. Discuss the differences between RabbitMQ and Kafka. Describe the core components of a message queue system.

Q15
Need for Message Queues and Use Cases
System Design

Explain the necessity of message queues and provide scenarios where you have used them in your current project.

Q16
Redis: Capabilities and Message Queue Use
System Design

Explain what Redis is. Can Redis be utilized as a message queue?

Q17
Caching Fundamentals
System Design

Define caching and explain how it contributes to system performance.

Q18
Application Monitoring Tools Experience
Other

Discuss your experience with application monitoring tools like Kibana and Grafana.

Q19
Internal Workings and Design of Monitoring Tools (Kibana/Grafana)
System DesignHard

Explain the internal mechanisms of tools like Kibana and Grafana. If tasked with designing a similar monitoring system, how would you approach it?

Q20
Database Choices for Monitoring Tools
System Design

What type of database would you choose for implementing systems like Kibana and Grafana, and why?

Q21
Cassandra for Write-Intensive Monitoring Systems
System Design

Discuss the suitability of Cassandra for monitoring systems, particularly its advantages in scenarios with extensive write operations.

Q22
Integration and Log Ingestion for Monitoring Tools
System Design

Explain how logging tools are integrated into an environment, how they acquire container-specific details, and the process by which log messages are pushed to systems like Kibana.

Q23
Load Balancing: Concept and Necessity
System Design

Define load balancing and explain its importance in distributed systems.

Q24
Proxy vs. Reverse Proxy
System Design

Distinguish between a proxy and a reverse proxy.

Q25
Apache ZooKeeper Mechanics
System Design

Explain the internal workings and principles of Apache ZooKeeper.

Q26
Sharding: Definition, Need, and Rationale
System Design

Define database sharding, explain when it is necessary, and justify its use.

Q27
Conflict Resolution with Manager/Peers
Behavioral

Describe any conflicts you've experienced with team managers or peers and how you effectively resolved them.

Q28
Best Manager Feedback
Behavioral

Share the most positive feedback you've received from a manager during a performance review.

Q29
Handling Critical Manager Feedback
Behavioral

Describe any constructive or critical feedback you've received from a manager and how you addressed it.

Q30
Why Ola?
Behavioral

Why are you interested in working at Ola?

Q31
Candidate Questions for Interviewer
Behavioral

Do you have any questions for us?

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!