Summary
I recently interviewed for an SDE 2 role at KMB in Bangalore and successfully received an offer. The interview process spanned three rounds, covering Data Structures and Algorithms, Low-Level Design, High-Level Design, and behavioral aspects.
Full Experience
My Interview Journey at KMB
Round 1 (Bar Raiser) - 1 hr 30 min
This round was conducted by a third party. It was split into three sections:
- DSA (30 min): I was asked two medium-difficulty questions.
- LLD (30 min): I had to design the backend components for an online marketplace, considering features like user authentication, product listing, search, shopping cart, and order management. My approach involved creating classes, an ER diagram, and API designs.
- Tech (30 min): This segment covered design patterns, caching (specifically Redis and CDN), Kafka, distributed system concepts, and sharding.
Round 2 (DSA) - 1 hr
This round was taken by an Engineering Manager from Kotak. I was presented with a problem involving a data stream:
/*Stream s = new Stream();
s.add(2);
s.getFirstUnique(); // 2
s.add(2);
s.getFirstUnique(); // null
s.add(3);
s.getFirstUnique(); // 3
s.add(4);
s.getFirstUnique(); // 3
s.add(3);
s.getFirstUnique(); // 4I implemented this using an LRU (Least Recently Used) approach.
Round 3 (Hiring Manager) - 1 hr
This final round included a High-Level Design discussion, which was centered around designing a survey system. Additionally, I was asked some standard behavioral questions.
Verdict: I was selected for the role!
My notice period is 3 months.
Compensation details are available here.
Interview Questions (3)
Design the backend components for an online marketplace where users can buy and sell products. Consider features such as user authentication, product listing, search functionality, shopping cart, and order management.
Implement a data stream structure with an add(int val) method and a getFirstUnique() method. getFirstUnique() should return the first non-repeating number currently in the stream, or null if all numbers have duplicates. Example: s.add(2); s.getFirstUnique(); // 2; s.add(2); s.getFirstUnique(); // null; s.add(3); s.getFirstUnique(); // 3; s.add(4); s.getFirstUnique(); // 3; s.add(3); s.getFirstUnique(); // 4
Design a high-level architecture for a survey system.