Pluang | SDE-3 | JAVA Backend | Interview Experience
Summary
I recently had an interview for an SDE-3 Java Backend role at Pluang, which lasted approximately 60-90 minutes. The round extensively covered Data Structures & Algorithms, including specific LeetCode problems, and deep dives into System Design concepts centered around Kafka and Redis.
Full Experience
My interview for the SDE-3 Java Backend role at Pluang started with a typical introduction where we both shared backgrounds, and I discussed my current role, project tech stack, and responsibilities for about 15 minutes.
Following the introduction, the interviewer moved on to Data Structures & Algorithms. I was given two well-known LeetCode problems. The first was Evaluate Reverse Polish Notation, which I successfully implemented using a Stack. The second problem was Koko Eating Bananas, for which I presented a binary search approach.
The discussion then shifted to System Design, specifically focusing on Kafka. I was asked a series of questions:
- What is Kafka? I explained its architecture, detailing producers, brokers, topics, partitions, and consumers.
- Acks in Kafka (acks=0, acks=1, acks=all)? I elaborated on the trade-offs between reliability and performance for each
ackssetting. - Message Ordering in Kafka? I described how message ordering is maintained within partitions.
Next, the conversation moved to Redis. The questions included:
- What data structure have you used? I mentioned mainly using Key-Value pairs (String type) for caching.
- Did you use Lists, Sets, Hashes, Sorted Sets? I clarified that my current use cases primarily revolve around simple key-value stores.
- By default, which data structure does Redis use? I explained that key stores can map to multiple data types, with String being the default if no specific type is mentioned.
- Have you heard of CROSSSLOT error? What is it? I explained the concept of CROSSSLOT errors in Redis Cluster, which arise when multi-key commands involve keys that don't hash to the same slot.
Interview Questions (9)
Koko loves to eat bananas. There are n piles of bananas, the i-th pile has piles[i] bananas. You are given an integer h which represents the hours Koko has to eat all the bananas.
Koko can decide her eating speed k (bananas per hour). Each hour, she chooses some pile of bananas and eats k bananas from it. If a pile has less than k bananas, she eats all of them instead and will not eat any more bananas during this hour.
Koko likes to eat slowly but still wants to finish all the bananas within h hours.
Return the minimum integer k such that she can eat all the bananas within h hours.
I was asked to explain the core components of Kafka, including its architecture, producers, brokers, topics, partitions, and consumers.
The interviewer inquired about acks in Kafka (acks=0, acks=1, acks=all) and the associated trade-offs between reliability and performance.
I discussed how message ordering is maintained in Kafka.
The interviewer asked about the Redis data structures I have personally used in my projects.
I was asked if I had experience with Redis Lists, Sets, Hashes, or Sorted Sets.
The interviewer asked which data structure Redis uses by default.
I was asked if I had heard of the CROSSSLOT error in Redis Cluster and what it signifies.