winzo logo

Winzo Interviews

1 experience3 reads
Winzo | SDE-2 | Delhi | Reject
winzo logo
Winzo
sde-2delhiRejected
May 21, 20243 reads

Summary

I interviewed for an SDE-2 position at Winzo in Delhi, which involved two rounds: DSA and Low-Level Design. Unfortunately, I was rejected after these rounds.

Full Experience

My Interview Experience at Winzo (SDE-2)

I recently had an interview experience for the SDE-2 role at Winzo in Delhi. The process consisted of two main technical rounds.

Round 1: Data Structures and Algorithms

The first round focused on Data Structures and Algorithms. I was presented with two questions:

  1. The first question was directly from LeetCode, specifically Smallest Range Covering Elements from K Lists.
  2. The second question was similar to Jump Game II and involved determining if a frog could cross a river given stone positions and specific jumping rules.

Round 2: Low-Level Design (LLD)

The second round was an LLD round. The interviewer's expectation was a comprehensive discussion covering database design, API design, High-Level Design (HLD), and Low-Level Design (LLD). We delved into various topics, including:

  1. Fundamental concepts like what Kafka is, database transactions, and how transactions ensure ACID properties in databases.
  2. A detailed system design problem for a chat application. I had to consider both functional and non-functional requirements, including one-on-one and group chats, message delivery acknowledgments, media sharing, chat storage and deletion, push notifications, and a premium subscription feature for extended message deletion.

I also had to consider non-functional aspects such as scalability (100K messages/second, 10KB avg. msg), consistency (message order), high availability, low latency, and end-to-end security.

Interview Questions (4)

Q1
Smallest Range Covering Elements from K Lists
Data Structures & AlgorithmsHard

You are given k lists of sorted integers. Find the smallest range that includes at least one number from each of the k lists.

The range [a, b] is smaller than range [c, d] if b - a < d - c or b - a == d - c and a < c.

Q2
Frog Jump
Data Structures & AlgorithmsHard

A frog is crossing a river. The river is divided into some number of units, and at each unit, there may or may not exist a stone. The frog can jump on a stone, but it must not jump into the water.

Given a list of stones positions (in units) in sorted ascending order, determine if the frog can cross the river by landing on the last stone. Initially, the frog is on the first stone and assumes the first jump must be 1 unit.

If the frog's last jump was k units, its next jump must be either k - 1, k, or k + 1 units. The frog can only jump in the forward direction.

Example 1:

Input: stones = [0,1,3,5,6,8,12,17]
Output: true
Explanation: The frog can jump to the last stone by jumping 1 unit to the 2nd stone, then 2 units to the 3rd stone, then 2 units to the 4th stone, then 3 units to the 6th stone, 4 units to the 7th stone, and 5 units to the 8th stone.

Example 2:

Input: stones = [0,1,2,3,4,8,9,11]
Output: false
Explanation: There is no way to jump to the last stone as the gap between the 5th and 6th stone is too large.

Constraints:

  • 2 <= stones.length <= 2000
  • 0 <= stones[i] <= 2^31 - 1
  • stones is sorted in a strictly increasing order.
Q3
Kafka, Database Transactions, and ACID Principles
System Design
  1. What is Kafka?
  2. Explain database transactions.
  3. How do transactions make ACID databases ACID?
Q4
Design a Scalable Chat Application
System Design

Functional Requirements:

  1. Should support one-on-one chat as well as group chats.
  2. Message delivery acknowledgement - sent, delivered, read.
  3. Sharing media files.
  4. Storage of chat as well as deletion functionality.
  5. Push notifications and SMS in case a user is inactive for a definite period of time (e.g., 1 day).
  6. Subscription for special features (premium feature) - only premium users can delete their messages at any time or an entire chat. Regular users can only delete for, let's say, 5 minutes.

Non-functional Requirements:

  1. Scalable.
  2. Consistent (messages shouldn't be in random order).
  3. Highly available (consistency > availability).
  4. Low latency.
  5. Security - end-to-end encryption.

Scale:

  • 100K messages per second.
  • Average message size - 10kb.

Have a Winzo Interview Experience to Share?

Help other candidates by sharing your interview experience. Your insights could make the difference for someone preparing for their dream job at Winzo.