Summary
I interviewed for the SDE-2 role at Flipkart across five rounds, covering machine coding, DSA, HLD, and HM. Despite clearing all technical rounds and having positive interactions, I was ultimately ghosted by the recruiters regarding the final outcome.
Full Experience
My interview journey for the SDE-2 role at Flipkart comprised five intensive rounds. It was an insightful experience, though the outcome was quite unexpected.
ROUND 1: Machine Coding (120 minutes - 90 mins coding, 30 mins setup & explanation)
This round focused on Low-Level Design. I was tasked with implementing a flight booking system. The core functionalities required were:
- Returning flights with the minimum cost.
- Returning flights with the minimum number of hops.
The system needed to allow an admin to add flights with details like source, destination, flight name, and price. Users would then query for flights between two cities based on the above criteria. A bonus extension involved adding a feature to filter flights based on meal availability. I spent a good amount of time setting up and then explaining my design choices.
ROUND 2: Machine Coding Evaluation (45 minutes)
In this round, I had to explain my design and implementation from Round 1 to the interviewer. We discussed how I approached the problem and the rationale behind my decisions. The interviewer also asked me to consider adding more functionalities, specifically using BFS to find all available flights, and we touched upon design patterns and modularity for future improvements.
ROUND 3: DSA Round
This round presented two LeetCode-style Data Structures and Algorithms problems, both of which I categorized as medium difficulty. I was able to solve both of them.
- The first problem was Next Greater Element I.
- The second problem was a variant of the unbounded knapsack problem. The scenario was: "You are going on a trip and you have a total journey duration 'D'. You are given a list of songs with their durations, and you need to listen to the maximum number of songs within that duration, with songs being repeatable."
Clearing this round led to an interview call for the next round on the very same day, which was quite encouraging.
ROUND 4: High-Level Design (HLD) Round
The challenge for this round was to design LeetCode. I began by outlining the functional and non-functional requirements. A significant portion of the interview, about 30 minutes, was dedicated to discussing the essential entities required for such a system. We also covered the necessary APIs. Despite having an hour allocated, the interviewer seemed satisfied after our discussion on entities and APIs and indicated that he had enough information.
ROUND 5: Hiring Manager (HM) Round
This round started with a brief introduction from both sides. We then delved straight into the last project I had been working on. I explained everything about it, including the difficulties I faced. During this discussion, the interviewer posed a hypothetical question: "How would you add a notification service to this project?" I explained my approach, mentioning technologies like Kafka and Fluentd, which seemed to satisfy him. Moving forward, he asked several behavioral questions, which were not overly challenging. Towards the end, he told me about his team and their current work. Overall, this round also went smoothly.
After a few days, I reached out to the person coordinating my interviews for feedback. I was told that a recruiter would contact me shortly. This same statement was repeated the following week and even into the third week. Eventually, I was ghosted, despite my attempts to get proper feedback. They simply said they would call and explain everything, but it never happened, and I stopped calling them. With just 2 years of experience, I figured they probably found candidates with more experience.
Interview Questions (5)
Design a low-level system to manage flight bookings. The system should allow an admin to add flights with source, destination, name, and price. Users should be able to query for flights between a source and destination, returning results based on minimum cost and minimum hops. A bonus feature involves extending the system to filter flights based on meal availability.
Given a total journey duration 'D' and a list of songs with their respective durations, find the maximum number of songs that can be listened to within the duration 'D'. Songs can be repeated.
Design the LeetCode platform, including discussions on functional and non-functional requirements, required entities, and APIs. The interviewer focused heavily on entities and API design.
How would you add a notification service to your last project? I suggested using Kafka and Fluentd.
Summary
I recently interviewed at Flipkart for an SDE-1 position and was presented with a Data Structures & Algorithms problem involving detecting duplicate parentheses in a balanced expression. I successfully explained my stack-based approach and provided a C++ solution.
Full Experience
I had a technical interview at Flipkart for the SDE-1 role. The interviewer presented me with a problem to determine if a given balanced expression contains duplicate parentheses. I clarified the problem statement using the provided examples, noting that duplicate parentheses mean a subexpression is enclosed by more than one pair of brackets. I then walked through my thought process, explaining how a stack could be used to efficiently solve this problem by tracking characters and checking for the count of non-'(' characters between matching parentheses. After detailing my approach, I proceeded to implement the solution in C++.
Interview Questions (1)
Given a balanced expression, find if it contains duplicate parenthesis or not. A set of parenthesis are duplicate if the same subexpression is surrounded by multiple parenthesis
Below expressions have duplicate parenthesis -
((a+b)+((c+d)))
The subexpression "c+d" is surrounded by two
pairs of brackets.
Below expressions don't have any duplicate parenthesis -
((a+b)+(c+d))
No subexpression is surrounded by duplicate
brackets.
Summary
I encountered a 2D box nesting problem, similar to 'Russian Doll Envelopes', during my Flipkart SDE-1 interview, which required a specific sorting strategy followed by a Longest Increasing Subsequence approach.
Full Experience
During my interview at Flipkart for the SDE-1 role, I was presented with a problem involving N 2D boxes, each having a height (h) and a width (w). The rule was that one box could fit inside another if both its dimensions were strictly smaller (wi < wj and hi < hj). The goal was to find the longest nesting sequence of boxes. I immediately recognized this as a variation of the Longest Increasing Subsequence (LIS) problem but adapted for two dimensions. My approach involved a specific sorting strategy: first, sort all boxes by their width in ascending order. Crucially, if two boxes shared the same width, I sorted them by height in descending order. This clever trick prevents boxes of the same width from being considered for nesting when finding the LIS based on height. After this sort, the problem simplifies to finding the Longest Increasing Subsequence of the heights.
Interview Questions (1)
There are N boxes which are 2D in shape. Each box has 2 dimensions, Height denoted by h and Width denoted by w. A box can fit inside another box if both the dimensions are strictly smaller. Mathematically, a box i can fit in box j if wi < wj and hi < hj. A nesting sequence of K length is defined as a sequence of indices p1, p2,….., pk for some integer k ≥ 1 such that pi denotes the element positions from the original array, and the sequence follows the following conditions:
Summary
I encountered a challenging problem during my Flipkart SDE-1 interview that involved maximizing the number of filled baskets given N balls of various colors and a requirement of K different colors per basket.
Full Experience
During my Flipkart SDE-1 interview, I was presented with a complex algorithmic problem. The core task was to determine the maximum number of baskets that could be filled. A basket was considered filled if it contained at least K balls of different colors, and I had N balls, with their colors provided in an array. I recognized this as a problem suitable for a binary search approach on the answer. My strategy involved setting left = 0 and right = N / K and then checking if a mid number of baskets was achievable. The check involved iterating through the frequency map of colors; for each color, I could use at most mid balls across all mid baskets. If the total balls used (balls += min(mid, it.second)) met the condition (balls >= (k * mid)), I knew mid was possible and tried for more; otherwise, I reduced my search space.
Interview Questions (1)
You are given N balls and an integer K. The color of each ball is given in an array. A basket is filled if it contains at least K balls of different colors. Find the maximum number of filled baskets you can get if you optimally put the balls in the baskets.
Summary
I successfully interviewed for the SDE 3 role at Flipkart in Bangalore and received an offer. The process included rounds focused on machine coding, data structures and algorithms, system design, and a hiring manager discussion.
Full Experience
I underwent a comprehensive interview process for the SDE 3 role at Flipkart in Bangalore. The first round was a 90-minute Machine Coding challenge where I had to design an in-memory message streaming service supporting multiple topics, producers, and consumers, ensuring order, thread safety, and real-time streaming.
Following this, Round 2 was a 30-minute Machine Coding Evaluation, where my solution from the previous round was thoroughly discussed, focusing on modularity, OOP principles, design patterns, and concurrency.
Round 3 was a 60-minute Problem Solving / Data Structures round. I was asked to solve two LeetCode problems: Course Schedule II and Design a Stack With Increment Operation.
The System Design round, lasting 90 minutes, required me to design a quick commerce system similar to Flipkart Minutes.
Finally, the HM Round was a 60-minute discussion where we delved into my past projects and my role in them, along with deep dives into system design topics like Caching, CDNs, and Networks. I was ultimately selected for the role.
Interview Questions (4)
Design a working MVP for an : In-memory message streaming service supporting multiple topics, producers, and consumers. Ensure that the messages maintain order within partitions, offers thread safety, and enables real-time data streaming.
Design a quick commerce system like Flipkart Minutes.
Summary
This post compiles a variety of technical interview questions encountered during Flipkart interviews in 2025, covering machine coding, data structures, algorithms, and system design.
Full Experience
I've compiled a list of questions that represent real interview experiences at Flipkart, encountered during various technical rounds. These cover a broad spectrum of technical skills, from core Data Structures and Algorithms to machine coding and system design concepts, providing valuable insights into the expected challenges.
Interview Questions (11)
Implement a complete billing solution handling discounts, loyalty points, and billing logic. The interview format involved 1.5 hours for understanding and coding on Day 1, followed by a 30-minute evaluation on Day 2 focusing on design choices like modularity and class responsibilities.
Given a list of integers, determine the smallest non-negative integer that is not present in the list. The discussion focused on finding the optimal solution, with implementation being optional.
Identify the rightmost leaf node situated at the lowest level within a complete binary tree. The problem also involved discussing how to generalize this approach for arbitrary tree structures.
Given a list of words, return a map where each key is a word from the list that can be formed by concatenating other words from the same list. For example, if 'sunrise' is in the list, its value might be ['su','n','rise'] or ['sun','rise'].
Merge two given linked lists into a single sorted list.
Using backtracking or Depth-First Search (DFS), print a path from the top-left corner to the bottom-right corner of a given grid, where movement is allowed in all four directions (up, down, left, right).
Given a matrix, find the path from the top-left cell to the bottom-right cell that yields the minimum sum of values along the path. Movement is restricted to only 'down' or 'right' directions. This is a classic dynamic programming problem.
Merge k given sorted linked lists into a single sorted linked list. The task emphasizes using an efficient divide-and-conquer approach, such as pairwise merging.
Given a continuous stream of characters, after each new character is inserted, output the first non-repeating character encountered in the stream so far. If no non-repeating character exists at any point, append '#' to the result string. This problem is typically solved using a combination of a queue and a hash map.
Implement a WordDictionary class that supports two primary operations: addWord(word) to add a word to the dictionary, and search(word) to search for a word. The search method should handle wildcard characters, where '.' can match any single letter. The challenge lies in efficiently handling these wildcard searches.
Find the subtree within a given binary tree whose nodes sum up to the maximum possible value, and return this maximum sum. This problem typically requires a post-order traversal and careful tracking of subtree sums.
Summary
I interviewed with Flipkart on-campus for a Full-Time Employee role. I successfully cleared the Online Assessment, which included a Knight's Move problem, but was ultimately rejected after the main interview round which featured coding challenges like Alien Dictionary and Course Schedule III.
Full Experience
Selected in OA with 20 more students able to complete 3 question
mostly classic question 1-string based comparison with some condition
2)DFS with 8 dirn 3) knight move
Interview - Started
1) alien dictionary - have to code and dry run on test cases - done in 20 min and able to run all test cases
2)Course schedule 3- start with end sorting and comparision based approach they give counter case then shifted to end sorting with
dp approach to which he askted tc then said to optimise it
but not able to optimise
Verdict - Rejected
Oncampus
Tier -1 Clg
Interview Questions (3)
One of the classic questions in the Online Assessment involved a Knight's move problem, likely related to pathfinding or reachable squares on a chessboard.
I was asked to code the Alien Dictionary problem and perform a dry run with test cases. I completed it in 20 minutes and successfully passed all test cases.
I initially approached Course Schedule III using an end sorting and comparison-based method. After a counter-case from the interviewer, I switched to an end sorting with a dynamic programming approach. The interviewer inquired about its time complexity and asked for optimization, which I was unable to achieve.
Summary
I gave the Flipkart Grid 7.0 online assessment, which included three DSA questions. I remember two of them clearly.
Full Experience
yesterday i gave my flipkart grid oa.There was three questions asked based on dsa.i do not remember question properly but i can give u an idea
# 1> a string is multigram if it is not return "-1" otherwise we have to tell shortest anagram from left to right
# 2>we have n cordinates in x,y plane.we have to tell how many straight line can we formed using these cordinates such that in one straight line atleast 3 cordinates point should be present
# 3>i do not remeber 3rd question but it was based on weighted graph
Interview Questions (2)
A string is multigram if it is not return "-1" otherwise we have to tell shortest anagram from left to right.
We have n coordinates in x,y plane. We have to tell how many straight line can we formed using these coordinates such that in one straight line atleast 3 coordinates point should be present.
Summary
I successfully navigated three interview rounds for the SDE 1 role at Flipkart, covering DSA, system design, and CS fundamentals, ultimately cracking the interview.
Full Experience
Round 1: DSA (Online Coding)
Q1: Number of Connected Components in a Graph
→ DFS/BFS, O(V + E)
Q2: Boats to Save People
→ Greedy + Sorting, O(n log n)
Asked to explain both brute-force and optimized approaches with time & space complexity.
Round 2: DSA (Online Coding)
Q1: Alien Dictionary
→ Topological Sort (Kahn’s Algo), O(N + K)
Q2: Kth Largest Element in Array
→ Min Heap / Quickselect, O(n log k) / O(n)
Q3: Unique Number III(GFG)
→ Couldn't fully solve but discussed bitwise approach
Asked to explain both brute-force and optimized approaches with time & space complexity.
Round 3: Backend + System Design + CS Fundamentals
Node.js: Event loop, threading, multithreading
DB Design: Hotel Order Management – Entities like Customers, Orders, Menu Items, Payments
Operating Systems: Process vs Thread, Context Switching
Interview Questions (8)
Determine the number of connected components in a given graph. I was asked to explain both brute-force and optimized approaches with time & space complexity.
I was presented with the 'Boats to Save People' problem and asked to explain both brute-force and optimized approaches with time & space complexity.
I was given the 'Alien Dictionary' problem and asked to explain both brute-force and optimized approaches with time & space complexity.
I encountered the 'Kth Largest Element in Array' problem and was asked to explain both brute-force and optimized approaches with time & space complexity.
I faced the 'Unique Number III' problem from GFG. I discussed a bitwise approach but couldn't fully solve it.
I discussed Node.js concepts including the event loop, threading, and multithreading.
I was tasked with designing a database for a Hotel Order Management system, requiring identification of entities like Customers, Orders, Menu Items, and Payments.
I discussed Operating Systems fundamentals, specifically differentiating between processes and threads, and explaining context switching.
Summary
I completed a five-round interview process for a UI2 position at Flipkart, which included machine coding, a JavaScript deep dive, UI technical questions, and a hiring manager round. I'm currently waiting for the final result after receiving positive feedback on all rounds.
Full Experience
I applied via a Google Form posted by Flipkart recruiters on LinkedIn.
Got an invite for the Machine Coding Round just two days later.
Round 1 – Machine Coding
This was a group round with around 30 candidates in a single Meet.
-
The first 30 minutes were used to explain the problem statement — we were asked to build a Google Calendar clone.
-
There were clearly defined “Must-Have” and “Good-To-Have” requirements.
-
We were given 1.5 hours to implement the solution.
After the timer ended, we had to zip our code and submit it via a Google Form.
Round 2 – Machine Coding Evaluation
This was a 30-minute call where I had to:
-
Walk the interviewer through my code.
-
Discuss the features I implemented.
-
I had missed two of the Good-To-Have requirements, and the interviewer asked how I would have done them.
The discussion went well, and the round ended on a positive note.
➡️ Got the result 3 days later, and I was moved to the next round.
Round 3 – Problem Solving & Deep System (PSDS)
Based on others' experiences, I expected LeetCode-style questions, but this round took a different route.
It was a JavaScript deep dive:
-
Polyfills
-
JS Observers
-
Promises (in depth)
-
Towards the end, I was asked to implement a Popover component.
➡️ Got feedback in 2 days and moved forward.
Round 4 – UI Tech
This was probably the most technically diverse round of the process.
Topics covered:
-
AbortController
-
requestAnimationFrame
-
Critical Rendering Path (CRP) – a very deep understanding was expected here
-
Event loop
-
CSS best practices
-
CSS specificity
I wasn’t very happy with my performance in this round, but surprisingly, I got the call for the next round.
Round 5 – Hiring Manager (HM)
I was expecting a High-Level Design discussion, but this round turned out to be more relaxed.
-
Mostly basic HR-style questions and discussion around my current work.
-
The interviewer wrapped it up in 30 minutes.
Spoke to the HR afterward, and the feedback was positive for this round too.
The last round was 3 days ago, and I’m currently waiting for the final result. 🤞
Interview Questions (4)
Design and implement a Google Calendar clone application. The problem involved clearly defined 'Must-Have' and 'Good-To-Have' requirements, with a 1.5-hour implementation window. I had to walk the interviewer through my code and discuss implemented features, as well as how I would implement missed 'Good-To-Have' requirements.
In-depth questions were asked covering JavaScript Polyfills, JS Observers, and Promises.
I was asked to implement a Popover UI component.
Detailed questions and discussions covered various UI technical topics, including AbortController, requestAnimationFrame, Critical Rendering Path (CRP) with very deep understanding expected, Event loop, CSS best practices, and CSS specificity.
Summary
I interviewed for the Flipkart SDE 2 role in 2025, which included a machine coding round for an e-commerce billing system, a PSDS round with problems on binary trees and word formation, and a system design round focusing on a tournament racing game. I also had a standard hiring manager discussion.
Full Experience
Round 1 - Machine Coding
Implement a small coding solution. The code should be fully executable. Day 1 - one and half hour for understanding and implementing problem. Day 2 - half hour evaluation. Problem was related to billing for an ecommerce app. Had to design and implement bill, discount and point/level calculation system. In the evaluation, they were interested in design choices like choice of classes and functionality, separation of concerns etc. They also went over whar changes I would make in design if I had more time or wanted to incorporate DB etc.
Round 2 - PSDS
Quite simple and standard. Very approachable and supportive interviewer.
- Finding Right-Most Leaf Node in the Last Level of a Complete Binary Tree. Implement optimal solution. Also discussed solution for any tree
- Finding Minimum Non-Negative Number NOT present in the List. Only discussed till I reached optimal solution, no need to implement.
- Given a List of words, return a Map/Dictionary of words which can be formed by using other words which exist in the same list. Example- Input: [“happy”, ”rise”, ”for”, “set”, “sunrise”,"sun", “su”, “nset”, “sunset”, “mind”, “happymind”, “n”, “rise”, “happysunrise”] Output: { “happymind”: [[“happy”, “mind”]], “sunrise”: [[“su”, “n”, “rise”], [“sun”, “rise”]] } Implement any solution.
Round 3 - Design
Design Tournament Racing game. Focus on optimization like what would you do so there is 0 lag on updating leaderboard and pushing notifications during the race to user etc. Totally flopped this one.
HM Round
They did an HM round immediately since he was going on a vacation. It was quite standard with a lot of questions on technical experience and recent work. He explained about the team. I think there was still time so he started asking template questions like strengths, arguments etc but overall quite positive interview.
Interview Questions (5)
Implement a small coding solution. The code should be fully executable. Day 1 - one and half hour for understanding and implementing problem. Day 2 - half hour evaluation. Problem was related to billing for an ecommerce app. Had to design and implement bill, discount and point/level calculation system. In the evaluation, they were interested in design choices like choice of classes and functionality, separation of concerns etc. They also went over whar changes I would make in design if I had more time or wanted to incorporate DB etc.
Finding Right-Most Leaf Node in the Last Level of a Complete Binary Tree. Implement optimal solution. Also discussed solution for any tree
Finding Minimum Non-Negative Number NOT present in the List. Only discussed till I reached optimal solution, no need to implement.
Given a List of words, return a Map/Dictionary of words which can be formed by using other words which exist in the same list. Example- Input: [“happy”, ”rise”, ”for”, “set”, “sunrise”,"sun", “su”, “nset”, “sunset”, “mind”, “happymind”, “n”, “rise”, “happysunrise”] Output: { “happymind”: [[“happy”, “mind”]], “sunrise”: [[“su”, “n”, “rise”], [“sun”, “rise”]] } Implement any solution.
Design Tournament Racing game. Focus on optimization like what would you do so there is 0 lag on updating leaderboard and pushing notifications during the race to user etc. Totally flopped this one.
Summary
I interviewed for the UI Engineer 2 position at Flipkart in Bangalore in June 2025 and successfully received an offer after completing five rigorous rounds covering machine coding, data structures and algorithms, UI technical concepts, and a hiring manager discussion.
Full Experience
YOE: ~4 Position: UI Engineer 2 at Flipkart Location: Bangalore Date: June, 2025
Round 1: Machine Coding (Live Coding) This round was conducted on a live video call with around 15 candidates. All the candidates were given the same problem statement to build a chat platform within 1.5 hours.
Round 2 : Machine Coding Review + Technical Concepts This round started with code review of the complete code in the previous round. I was asked to explain each line of code and there were a lot of questions about how I approached a certain part of the code. Talked about Functional and Class Based approach. Discussed Performance Optimisations based on structure, logic and DOM manipulations. Asked to create a function for debounce.
Round 3 : Data Structures and Algorithms Question 1 : Course Schedule Question 2 : Merge Intervals Variation
Round 4 : UI Technical Concepts
- How can we improve build size of frontend
- How can we improve asset heavy app
- Browser storage methods and their comparison
- Create a localStorage wrapper with expiration support
- When we type url in browser, what happens before rendering
- Explain in detail what defines execution of html, css and js files
- Async and defer
- How js is able to achieve async operations
- Difference between async/await and promises
- Promise.race and Promise.any
- Write example for promise.race and promise.any pollyfill to show difference between them
- Web security aspects to consider while developing web app
- Discussion on JWT
Round 5 : Hiring Manager This round focused on my previous projects, work experience, and interpersonal skills. The discussion revolved around: My past frontend projects and the challenges I faced My experience working in a team and handling collaborations Questions assessing my problem-solving approach and mindset It was more of a behavioral and experience-based discussion rather than a technical grilling session.
Verdict: Selected Offer Details: https://leetcode.com/discuss/post/6907336/flipkart-ui-2-4-yoe-bangalore-by-anonymo-adln/
Interview Questions (17)
Build a chat platform within 1.5 hours.
Asked to create a function for debounce.
Course Schedule
Merge Intervals Variation
How can we improve build size of frontend
How can we improve asset heavy app
Browser storage methods and their comparison
Create a localStorage wrapper with expiration support
When we type url in browser, what happens before rendering
Explain in detail what defines execution of html, css and js files
Async and defer
How js is able to achieve async operations
Difference between async/await and promises
Promise.race and Promise.any
Write example for promise.race and promise.any pollyfill to show difference between them
Web security aspects to consider while developing web app
Discussion on JWT
Summary
I interviewed for an SDE 2 position at Flipkart off-campus in Bangalore, which involved four rounds: Machine Coding, DSA, LLD, and Hiring Manager discussions.
Full Experience
YOE: 4 Experience: Product Based Company Total rounds: 4 Applied from linkedin referral form shared by recruiter.
Round 1: Machine Coding Round (Duration: 2hrs)
- Invited on Google meet and explained the problem statement. It was related to Hospital Management System.
- Need to manage patient and doctors and allow to book/cancel appointment etc.
- 90 mins time to code it up and submit the code as zip in google form.
- After 2-3 days a 30 mins discussion was scheduled to run the code and also explain the approach and tradeoffs.
Round 2: DSA (Duration: 1hr)
- Need to write code in google doc and dry run the code
- Spiral matrix
- BFS related problem - LC medium
Round 3: LLD (Duration: 1hr)
- Need to come up with Functional requirements.
- Entity, DB schema, Different layers, and api to be written
- Problem: Designing an online gifting platform similar to Ferns & Petals.
Round 4: HM (Duration: 1hr)
- In depth question on projects (even asked to draw the project architecture on draw.io)
- Multiple behavioural and leadership questions
- Typical questions like why flipkart? why leaving current company etc.
#flipkart #interview #sde2
Interview Questions (6)
The problem was related to Hospital Management System, requiring me to manage patients and doctors, and allow booking/canceling appointments. I had 90 minutes to code it up and submit the code as a zip. After 2-3 days, a 30-minute discussion was scheduled to run the code and explain the approach and tradeoffs.
I was asked to write code for the Spiral Matrix problem in a Google Doc and dry run the code.
I needed to come up with functional requirements, entity relationships, database schema, different architectural layers, and APIs for designing an online gifting platform similar to Ferns & Petals.
There were in-depth questions on my past projects, and I was asked to draw the project architecture on draw.io.
Multiple behavioral and leadership questions were asked during this round.
Typical questions such as 'Why Flipkart?' and 'Why are you leaving your current company?' were asked.
Summary
I underwent a machine coding round for an SDE-2 position at Flipkart, where I implemented a simplified food order management system named FoodKart, emphasizing object-oriented design and extensibility.
Full Experience
Last month, I appeared for a machine coding round at Flipkart, where I had to implement a simplified food order management system, named FoodKart. It was a 120-minute round, with 30 minutes for problem briefing and 90 minutes for implementation.
The problem involved designing a system that simulates food ordering from restaurants with in-memory data structures. The challenge tested object-oriented design, modularity, clean coding, and extensibility. No UI or database, just plain backend logic.
Evaluation Round
After two days I got a call for evaluation round, where Interviwer asked me to run my code to make sure my code is passing for all test cases.
Interview Questions (1)
Problem Statement
Last month, I appeared for a machine coding round at Flipkart, where I had to implement a simplified food order management system, named FoodKart. It was a 120-minute round, with 30 minutes for problem briefing and 90 minutes for implementation.
The problem involved designing a system that simulates food ordering from restaurants with in-memory data structures. The challenge tested object-oriented design, modularity, clean coding, and extensibility. No UI or database, just plain backend logic.
Key Features to Implement:
-
Onboard new restaurants with menu and processing capacity.
-
Update restaurant menu/prices dynamically.
-
Place orders based on a restaurant selection strategy.
-
Orders must only be accepted if all items are available and capacity allows.
-
Dispatch orders, making room for new ones.
-
Keep track of items served per restaurant.
-
Process a set of commands sorted by timestamp (even if given in random order).
-
[Bonus] Show all dispatched orders.
Summary
I participated in a machine coding round for the SDE3 role at Flipkart. The task involved designing and implementing a backend system for 'ClearFit', a new fitness application, covering gym onboarding, workout slot management, and user booking functionalities.
Full Experience
ClearFit - SDE3 Design a backend system for a new enterprise application that Cleartrip is launching, ClearFit. Cleartrip is partnering up with gyms across Bangalore to enter into the fitness space. For the Beta launch the requirements are as follows: Functionality to onboard centers with details like centerName, center-timings, workout variations. Each center can have N possible workout variations - Weights, Cardio, Yoga, Swimming etc. There could be newer workouts added in the future.
Functionality to define workout slots. Each center will define a workout slot during center timings. These slots would be defined by a center admin. Current scope is that at one point of time for a center, there would be just one workout. The number of seats in each workout slot for a given center is fixed. Current scope is that an admin would define these workout slots on a daily basis for the same day and only once. Update is out of scope
End-User/Customer can perform the following operations: Optional - Register onto the platform. In the current scope we don’t have to worry about authentication. View the workout slots availability/unavailability for the day - filter by workout type (sorted by start time in ASC order). View the workout slots availability/unavailability for the day - filter by workout type and center name (sorted by seats available in ASC order). Book a workout slot for a user if seats are available at that time. Cancel the booked workout slot. Optional - Notify me feature: If a user is interested in some particular slot of a center and seats are unavailable he can choose to be part of the interest list for that slot. Once any other user cancels that particular slot the interested users can be notified. Notification will be pushed to all the interested users. You can use logs to model the notification.
Example :-
Center Onboarding steps AddCentre(“Koramangala”); AddCentretimings(“Koramangala”,List timings); 6 am to 9 am 6 pm to 9 pm
AddCentreActivities(“Koramangala”,List activities); Weights, Cardio, Yoga, Swimming
AddCentre(“Bellandur”); AddCentretimings(“Bellandur”,List timings); 7 am to 10 am 7 pm to 10 pm
AddCentreActivities(“Bellandur”,List activities); Weights, Cardio, Yoga Admin Operation Add Workout and seats to location
addWorkout(, , , , ) addWorkout(“Koramangala”, “Weights”, 6, 7, 100) addWorkout(“Koramangala”, “Cardio”, 7, 8, 150) addWorkout(“Koramangala”, “Yoga”, 8, 9, 200)
addWorkout(“Bellandur”, “Weights”, 18, 19, 100) // this should not be allowed because of time addWorkout(“Bellandur”, “Swimming”, 19, 20, 100) // not allowed because of workout type addWorkout(“Bellandur”, “Cardio”, 19, 20, 20) addWorkout(“Bellandur”, “Weights”, 20, 21, 100) addWorkout(“Bellandur”, “Weights”, 21, 22, 100)
User Operations register(“Vaibhav”)
viewWorkoutAvailability(“Weights”) “Koramangala”, “Weights”, 6, 7, 100 “Bellandur”, “Weights”, 20, 21, 100 “Bellandur”, “Weights”, 21, 22, 100
bookASession bookSession(“Vaibhav”, “Koramangala”, “Weight”, 6, 7)
viewWorkoutAvailability(“Weights”) “Koramangala”, “Weights”, 6, 7, 99 “Bellandur”, “Weights”, 19, 20, 100
CancelSession cancelSession(“Vaibhav”, “Koramangala”, “Weight”, 6, 7)
viewWorkoutAvailability(“Weights”, “Koramangala”) “Koramangala”, “Weights”, 6, 7, 100
Functional notes :- Please handle concurrent scenarios like multiple users booking the same slot. For simplicity, all the operations are performed for a day only. But keep your design extensible and moving operations across days should be done with minimal change. You can take time as an integer since the existing scope is for a day only. There would be a unique identifier of every entity- could be a name or a unique id. You can choose one and assume that it would be unique. Guidelines Time: 120 mins Mandatory programming language - Java. A driver program/main class/test case is needed to test out the code by the evaluator with multiple test cases. But do not spend too much time in the input parsing. Keep it as simple as possible. Evaluation criteria: Demoable & functionally correct code, Code readability, Proper Entity modeling, Modularity & Extensibility, Separation of concerns, Abstractions, Corner case handling. Use design patterns wherever applicable. You are not allowed to use any external databases like MySQL. Use only in memory data structures. Functionality doesn’t have to be defined as a rest api. You can expose them as methods also which can be invoked from the driver class. No need to create any UX Please focus on the Bonus Feature (if any) only after ensuring the required features are complete and demoable. Method signatures defined are just to give an idea. You are free to change them to suit your requirements. Use of the internet is allowed to check the syntax. Using popular java frameworks like spring and dropwizard is allowed.
Interview Questions (1)
Design a backend system for a new enterprise application that Cleartrip is launching, ClearFit. Cleartrip is partnering up with gyms across Bangalore to enter into the fitness space. For the Beta launch the requirements are as follows: Functionality to onboard centers with details like centerName, center-timings, workout variations. Each center can have N possible workout variations - Weights, Cardio, Yoga, Swimming etc. There could be newer workouts added in the future.
Functionality to define workout slots. Each center will define a workout slot during center timings. These slots would be defined by a center admin. Current scope is that at one point of time for a center, there would be just one workout. The number of seats in each workout slot for a given center is fixed. Current scope is that an admin would define these workout slots on a daily basis for the same day and only once. Update is out of scope
End-User/Customer can perform the following operations: Optional - Register onto the platform. In the current scope we don’t have to worry about authentication. View the workout slots availability/unavailability for the day - filter by workout type (sorted by start time in ASC order). View the workout slots availability/unavailability for the day - filter by workout type and center name (sorted by seats available in ASC order). Book a workout slot for a user if seats are available at that time. Cancel the booked workout slot. Optional - Notify me feature: If a user is interested in some particular slot of a center and seats are unavailable he can choose to be part of the interest list for that slot. Once any other user cancels that particular slot the interested users can be notified. Notification will be pushed to all the interested users. You can use logs to model the notification.
Example :-
Center Onboarding steps AddCentre(“Koramangala”); AddCentretimings(“Koramangala”,List timings); 6 am to 9 am 6 pm to 9 pm
AddCentreActivities(“Koramangala”,List activities); Weights, Cardio, Yoga, Swimming
AddCentre(“Bellandur”); AddCentretimings(“Bellandur”,List timings); 7 am to 10 am 7 pm to 10 pm
AddCentreActivities(“Bellandur”,List activities); Weights, Cardio, Yoga Admin Operation Add Workout and seats to location
addWorkout(, , , , ) addWorkout(“Koramangala”, “Weights”, 6, 7, 100) addWorkout(“Koramangala”, “Cardio”, 7, 8, 150) addWorkout(“Koramangala”, “Yoga”, 8, 9, 200)
addWorkout(“Bellandur”, “Weights”, 18, 19, 100) // this should not be allowed because of time addWorkout(“Bellandur”, “Swimming”, 19, 20, 100) // not allowed because of workout type addWorkout(“Bellandur”, “Cardio”, 19, 20, 20) addWorkout(“Bellandur”, “Weights”, 20, 21, 100) addWorkout(“Bellandur”, “Weights”, 21, 22, 100)
User Operations register(“Vaibhav”)
viewWorkoutAvailability(“Weights”) “Koramangala”, “Weights”, 6, 7, 100 “Bellandur”, “Weights”, 20, 21, 100 “Bellandur”, “Weights”, 21, 22, 100
bookASession bookSession(“Vaibhav”, “Koramangala”, “Weight”, 6, 7)
viewWorkoutAvailability(“Weights”) “Koramangala”, “Weights”, 6, 7, 99 “Bellandur”, “Weights”, 19, 20, 100
CancelSession cancelSession(“Vaibhav”, “Koramangala”, “Weight”, 6, 7)
viewWorkoutAvailability(“Weights”, “Koramangala”) “Koramangala”, “Weights”, 6, 7, 100
Functional notes :- Please handle concurrent scenarios like multiple users booking the same slot. For simplicity, all the operations are performed for a day only. But keep your design extensible and moving operations across days should be done with minimal change. You can take time as an integer since the existing scope is for a day only. There would be a unique identifier of every entity- could be a name or a unique id. You can choose one and assume that it would be unique. Guidelines Time: 120 mins Mandatory programming language - Java. A driver program/main class/test case is needed to test out the code by the evaluator with multiple test cases. But do not spend too much time in the input parsing. Keep it as simple as possible. Evaluation criteria: Demoable & functionally correct code, Code readability, Proper Entity modeling, Modularity & Extensibility, Separation of concerns, Abstractions, Corner case handling. Use design patterns wherever applicable. You are not allowed to use any external databases like MySQL. Use only in memory data structures. Functionality doesn’t have to be defined as a rest api. You can expose them as methods also which can be invoked from the driver class. No need to create any UX Please focus on the Bonus Feature (if any) only after ensuring the required features are complete and demoable. Method signatures defined are just to give an idea. You are free to change them to suit your requirements. Use of the internet is allowed to check the syntax. Using popular java frameworks like spring and dropwizard is allowed.
Summary
I interviewed for an SDE 3 role at FlipKart, which involved multiple rounds focusing on Low-Level Design, Data Structures & Algorithms, and High-Level System Design. The DSA rounds required only approaches and pseudocode, while the LLD round involved detailed implementation and discussion.
Full Experience
Round I : Drive LLD round with 40 people on gmeet
Peer to Peer Parcel Delivery System (like Dunzo)
Description
Implement a Peer-to-Peer Delivery System that can be used to deliver a parcel from one customer to another. Below are the expected features of the system.
Problem Statement:
- The system should be able to onboard new customers and drivers.
- The list of items that can be delivered is preconfigured in the system and is fixed.
- Customers should be able to place an order for the delivery of a parcel and also be able to cancel it.
- One driver can pickup only one order at a time.
- Orders should be auto-assigned to drivers based on availability. Even If no driver is available, the system should accept the order and assign it to a driver when the driver becomes free. The number of ongoing orders can exceed the number of drivers.
- Once an order is assigned to a driver, the driver should be able to pick up the order and also mark the order as delivered after delivery.
- The system should be able to show the status of orders and drivers.
- Canceled orders shouldn’t be assigned to the driver. If an assigned order gets canceled the driver shouldn’t be able to pick up the order, the driver should be available for other orders.
- Once a driver picks up an order the order cannot be canceled by the user nor system.
- Assume driver is available 24*7. Ignore the travel time.
- Ensure application is thread safe and all concurrency scenarios.
Bonus:
- Notify the customer and drivers through email and phone for order updates. For this exercise, write a class that represents a vendor providing the email or SMS service and just print the log indicating that the vendor has processed the request
- Customers should be able to rate the driver after delivery.
- Dashboard to show top drivers based on different strategy no of orders, rating.
- If no driver picks up the order within 30 minutes of its creation, the order should be canceled. Regardless of whether an order has been assigned to a driver or not, if no driver picks it up within 30 minutes of order creation, the order should be canceled.
Guidelines:
- Time: 120 mins (Implementation).
- Write modular, clean and demo-able code (Test cases or runtime execution).
- A driver program/main class/test case is needed to test out the code by the evaluator with multiple test cases.
- Use design patterns wherever applicable.
- Please handle concurrency wherever applicable.
- Evaluation criteria: Demoable & functionally correct code, Code readability, Proper Entity modeling, Modularity & Extensibility, Separation of concerns, Abstractions, Exception Handling, Code comments.
- Code should handle edge cases properly and fail gracefully.
- You are not allowed to use any external databases like MySQL. Use only in-memory data structures.
- No need to create any UX or any HTTP API. It should be a standalone application.
- Usage of any AI powered tools such a chatGPT or github-copilot is strictly prohibited. You may use the internet to look up any syntactic references.
- You are free to use any popular programming language of your choice.
- The bonus features are optional. Attempt them only after finishing the p0 features.
- The problem may require you to make certain assumptions. Do make reasonable assumptions and convey them to the review panel.
Sample Test cases:
- The input/output need not be in the same format this is for explaining the expected functionality
- i: input
- o: output
onboard customer - id, name
onboard driver - id, name
create order - customer_id, item_id
cancel order - order_id
show order status - (order_id)
show driver status - (driver_id)
pick up order - (driver_id, order_id)
complete order - (driver_id, order_id)
Round II : Evaluation of the round I where detailed discussion of your design will happen
Round III : Problem Solving Data structure
Was given two problems and asked only to give apporaches and at worst give pesudo code if time permits
1- https://leetcode.com/problems/car-pooling/description/
2- https://leetcode.com/problems/minimize-max-distance-to-gas-station/description/
Round IV : Design and architecture round
Design spotify
Interview Questions (4)
Implement a Peer-to-Peer Delivery System that can be used to deliver a parcel from one customer to another. Below are the expected features of the system.
Problem Statement:
- The system should be able to onboard new customers and drivers.
- The list of items that can be delivered is preconfigured in the system and is fixed.
- Customers should be able to place an order for the delivery of a parcel and also be able to cancel it.
- One driver can pickup only one order at a time.
- Orders should be auto-assigned to drivers based on availability. Even If no driver is available, the system should accept the order and assign it to a driver when the driver becomes free. The number of ongoing orders can exceed the number of drivers.
- Once an order is assigned to a driver, the driver should be able to pick up the order and also mark the order as delivered after delivery.
- The system should be able to show the status of orders and drivers.
- Canceled orders shouldn’t be assigned to the driver. If an assigned order gets canceled the driver shouldn’t be able to pick up the order, the driver should be available for other orders.
- Once a driver picks up an order the order cannot be canceled by the user nor system.
- Assume driver is available 24*7. Ignore the travel time.
- Ensure application is thread safe and all concurrency scenarios.
Bonus:
- Notify the customer and drivers through email and phone for order updates. For this exercise, write a class that represents a vendor providing the email or SMS service and just print the log indicating that the vendor has processed the request
- Customers should be able to rate the driver after delivery.
- Dashboard to show top drivers based on different strategy no of orders, rating.
- If no driver picks up the order within 30 minutes of its creation, the order should be canceled. Regardless of whether an order has been assigned to a driver or not, if no driver picks it up within 30 minutes of order creation, the order should be canceled.
Guidelines:
- Time: 120 mins (Implementation).
- Write modular, clean and demo-able code (Test cases or runtime execution).
- A driver program/main class/test case is needed to test out the code by the evaluator with multiple test cases.
- Use design patterns wherever applicable.
- Please handle concurrency wherever applicable.
- Evaluation criteria: Demoable & functionally correct code, Code readability, Proper Entity modeling, Modularity & Extensibility, Separation of concerns, Abstractions, Exception Handling, Code comments.
- Code should handle edge cases properly and fail gracefully.
- You are not allowed to use any external databases like MySQL. Use only in-memory data structures.
- No need to create any UX or any HTTP API. It should be a standalone application.
- Usage of any AI powered tools such a chatGPT or github-copilot is strictly prohibited. You may use the internet to look up any syntactic references.
- You are free to use any popular programming language of your choice.
- The bonus features are optional. Attempt them only after finishing the p0 features.
- The problem may require you to make certain assumptions. Do make reasonable assumptions and convey them to the review panel.
Sample Test cases:
- The input/output need not be in the same format this is for explaining the expected functionality
- i: input
- o: output
onboard customer - id, name
onboard driver - id, name
create order - customer_id, item_id
cancel order - order_id
show order status - (order_id)
show driver status - (driver_id)
pick up order - (driver_id, order_id)
complete order - (driver_id, order_id)
High-level design and architecture for a streaming service like Spotify.
Summary
I interviewed for the SDE 2 role at Flipkart and was rejected. During the interview, I was asked two coding questions, including finding the lexicographically smallest path in a tree and the LeetCode Zigzag Conversion problem.
Full Experience
Question based on tree in which we have to return the lexicographically smallest path from leaf to root node
another question- https://leetcode.com/problems/zigzag-conversion/description/
Able to solve both the problem, but in first question i took lots of hint to solve it in optimal ways.
verdict-rejected.
Interview Questions (2)
Given a tree, return the lexicographically smallest path from a leaf node to the root node.
Summary
I interviewed for the SDE 2 role at Flipkart and was rejected. The process included a machine coding round, a DSA round with a specific 'Best Time to Buy and Sell Stock' question, and a system design round focusing on a RedBus-like application.
Full Experience
Round 1 -
Machine coding jira like app
Round 2 -
Stock buy sell
HashMap/ graph DSU question
Round 3 -
RedBus type app database and api design where vendor has exposed two apis for booking and search
Interview Questions (3)
Design and implement a machine coding solution for an application similar to Jira.
A question related to the 'Best Time to Buy and Sell Stock' problem family.
Design the database and API for a RedBus-type application, considering a scenario where a vendor exposes two APIs for booking and search functionalities.
Summary
I interviewed for an SDE-2 role at Flipkart in Bangalore, which resulted in a rejection. The interview process consisted of four rounds: Machine Coding, Data Structures & Algorithms, High-Level System Design, and a Hiring Manager round. I felt positive about the technical rounds but the HM round was mixed, and I received a rejection without specific feedback.
Full Experience
College : Tier 1.5
Current Experience : 4 years and 9 months at MNC
MC round 1 Feedback - positive:
Question - ECommerce Loyalty program with different tiers - Bronze, Silver, Gold. Each tier had different benefits and discounts on purchases.
I wrote a running code while following SOLID principles and design patterns.
The evaluation round was scheduled 2 days later. The interviewer asked me to run the code and asked about the design patterns used.
I believe this round was a strong hire (self rating).
PSDS round 2 Feedback - positive:
There were two DSA questions. I was asked to write pseudo code and do the dry run of the same along with correct time and space complexities. I solved both the problems. Initially I didn't land on optimal approach for question 1 but asked for question 2, solved it and then went back to question 1. Then I gave the optimal approach.
Q1: 1760. Minimum Limit of Balls in a Bag
Q2: 380. Insert Delete GetRandom O(1)
I believe the questions were on the easier side. As I solved both of them, with optimized approach fairly quickly, I believe this round was also a strong hire (self rating).
Design round 3 Feedback - positive:
It was an HLD round. I was asked to design a distributed job scheduler.
I asked for the functional and non-functional requirements. Did back of the envelope estimations. Moved on to the high level design for small number of users and then scaled it for a distributed system. Explained every component used in the design in detail. After the explanation, interviewer asked me to draw the design in Figma or something. I didn't have experience of doing it on any software. I asked to draw on paper and attach the picture in the google sheet provided. The interviewer agreed.
As we were already past 1 hour, I was asked to design quickly. After I attached in the google sheet, the interviewer pointed out a few improvements to the design (I would say, I could've done better if I wasn't rushed for time).
Due to the time constraint, I believe this round was hire (self rating - could've been better, wasn't flawless)
HM round 4 Feedback - negative:
There were 2 interviewers. One was reverse shadowing.
Discussion was mostly limited to resume at first. Then later on went on to SaaS, on-prem etc.
Some of the questions are:
Tell about any of your project's architecture.
Any issues you resolved of high priority?
Have you worked on performance tuning?
What is the capacity of your system's DB?
Some questions regarding mentoring junior members
Some questions on agile specific to team.
Some questions on tests framework used and coverage.
Why do you want to switch?
Why flipkart?
I would say depending upon the discussion this round should've been neutral to lean hire.
Recruiter emailed me the next day about rejection. I asked for the feedback but no reply. I even called the recruiter but the call wasn't picked up. I couldn't understand where it went wrong after 3 good rounds.
Interview Questions (13)
Design an E-commerce Loyalty program with different tiers - Bronze, Silver, Gold. Each tier had different benefits and discounts on purchases.
It was an HLD round. I was asked to design a distributed job scheduler.
Tell about any of your project's architecture.
Any issues you resolved of high priority?
Have you worked on performance tuning?
What is the capacity of your system's DB?
Some questions regarding mentoring junior members
Some questions on agile specific to team.
Some questions on tests framework used and coverage.
Why do you want to switch?
Why Flipkart?
Summary
I interviewed for a Data Scientist 2 role at Flipkart, navigating through screening, in-depth math modeling, data science system design, coding, and two hiring manager rounds, and ultimately received an offer.
Full Experience
My Interview Experience and offer (Flipkart Data Scientist 2 role (Grade 9))
Off-campus opportunity via referral.
a) Screening round :
i) 30 mins interview with Research Director
ii) General interview, revolved around my past work and some behavioral questions
b) Depth in Math Modelling :
i) 1 hr interview with Principal Data Scientist / Director
ii) The DMM round interview focuses on Logistic Regression and CLIP/BLIP models, assessing both theoretical rigor and practical expertise. Logistic Regression questions delve into Binary Cross Entropy, Bayes' Theorem, Bernoulli/binomial distributions, L2 regularization, and the derivation of the loss function, emphasizing probabilistic foundations and model learning. CLIP/BLIP questions cover the architecture, contrastive loss for image-text pairs, limitations in semantic understanding, QFormer’s role in capturing meaning, and handling batches (e.g., 32 pairs). They also explore evaluation metrics like ROC-AUC, PR-AUC, Median Rank, and model calibration, alongside strategies for data imbalance, hard negatives, and mitigating catastrophic forgetting, requiring a strong grasp of machine learning theory and vision-language model applications.
c) Depth in Data Science :
i) 1 hr interview with Senior Data Scientist
ii) The DDS round focused on ML system design, particularly building an end-to-end pipeline from an abstract problem. I was asked to design a solution for credit risk modeling—for example, Flipkart launching a new EMI feature where we need to decide EMI approvals (a binary classification task). The challenge involved a cold start scenario with no existing user data and no access to users' bank information. For every approach I took, I was asked follow-up questions like "why this?" and "why not that?" to justify my choices and demonstrate a clear understanding of the reasoning behind each decision.
If you pass both of these rounds, based on the average rating from each, you move on to the next round, which is the coding round.
d) Coding round :
i) 2 hr interview with senior Data Scientist
ii) The coding round emphasized problem-solving approach and coding skills. Internet access was allowed only for referencing documentation. I was given a fraud detection problem and tasked with writing end-to-end code, covering everything from data loading to model inference.
e) Hiring Manager round (Foundational Model Team (FMT) team) :
i) A 1-hour interview with the manager of the team.
ii)The questions in this round were tailored to the team's focus. Since it was a Foundational Model team, the discussion revolved entirely around Generative AI.
iii) The HM round focused on understanding my past work, my approach, and the reasoning behind it. It also included questions on which the team is currently working on like fine-tuning LLMs, VLMs, and multiple reward policies like DPO and PPO, followed by behavioral and values-based questions.
Since confirmation was taking time from the FMT team, I had another HM round with the Cleartrip team.
f) Hiring Manager round (Cleartrip team) :
i) A 1-hour interview with the manager of the team.
ii) The HM round focused on my past work, approach, and reasoning. I was also asked about the team's current focus, like dynamic pricing. I was given a problem to set discounts on multiple shoe brands, considering competitors, and building a model to maximize revenue.
Compensation details : https://leetcode.com/discuss/post/6740368/flipkart-data-scientist-2-bangalore-by-a-yfrk/
Interview Questions (5)
The DMM round interview focuses on Logistic Regression and CLIP/BLIP models, assessing both theoretical rigor and practical expertise. Logistic Regression questions delve into Binary Cross Entropy, Bayes' Theorem, Bernoulli/binomial distributions, L2 regularization, and the derivation of the loss function, emphasizing probabilistic foundations and model learning. CLIP/BLIP questions cover the architecture, contrastive loss for image-text pairs, limitations in semantic understanding, QFormer’s role in capturing meaning, and handling batches (e.g., 32 pairs). They also explore evaluation metrics like ROC-AUC, PR-AUC, Median Rank, and model calibration, alongside strategies for data imbalance, hard negatives, and mitigating catastrophic forgetting, requiring a strong grasp of machine learning theory and vision-language model applications.
The DDS round focused on ML system design, particularly building an end-to-end pipeline from an abstract problem. I was asked to design a solution for credit risk modeling—for example, Flipkart launching a new EMI feature where we need to decide EMI approvals (a binary classification task). The challenge involved a cold start scenario with no existing user data and no access to users' bank information. For every approach I took, I was asked follow-up questions like "why this?" and "why not that?" to justify my choices and demonstrate a clear understanding of the reasoning behind each decision.
The coding round emphasized problem-solving approach and coding skills. Internet access was allowed only for referencing documentation. I was given a fraud detection problem and tasked with writing end-to-end code, covering everything from data loading to model inference.
The questions in this round were tailored to the team's focus. Since it was a Foundational Model team, the discussion revolved entirely around Generative AI. The HM round focused on understanding my past work, my approach, and the reasoning behind it. It also included questions on which the team is currently working on like fine-tuning LLMs, VLMs, and multiple reward policies like DPO and PPO, followed by behavioral and values-based questions.
I was also asked about the team's current focus, like dynamic pricing. I was given a problem to set discounts on multiple shoe brands, considering competitors, and building a model to maximize revenue.
Summary
I participated in a 90-minute machine coding round for an SDE-2 role at Flipkart, where I was tasked with designing and implementing an in-memory Library Management System.
Full Experience
30min initial brefing call of the problem 90min for coding : use any local IDE and submit the code in ZIP!
Library Management System
Problem Definition: Design and implement a Library Management system that caters to its registered members by cataloging and housing books that can be borrowed.
The system must provide the following functionalities:
-
Add books to the catalog: Every book will be added by name and author and the program must generate a unique id for it by joining the first three letters of the author’s last name to a number to create a unique key. For example, a book by Rowling would have ROW1234 as a unique Id. Also, note that the library can have more than one copy for a book.
-
Register and unregister users in the Library
-
Reservation Management system: A user should be able to make a request to borrow a book from the library.
- Users can borrow books by the book id (eg - ROW1234). For the scope of problems, let's assume users are aware of book id’s.
- If the book is available and not borrowed by anyone, it should be reserved to the member’s name.
- If the book is already borrowed by another user, the reservation system must add the requesting member to a FIFO waitlist of reservations. When the book is returned to the library, it will not be marked as available and will be available only to the first user under the FIFO queue
- If the user is the first user of the FIFO waitlist, the book can be reserved under the user’s name
-
Fine calculation system: A user is allowed to borrow a book only for 14 days. If this time limit is exceeded at the time of return, the system should calculate a fine of 20 rupees per day for the number of days delay.
Good To Have (Bonus): One user should only be allowed to reserve one copy of the book Auditing: Design should cater to following use cases: Given a bookId, give a list of users having that book Given a userId, list of books issued to him
Other details: **Use of a DB is not allowed. We are expecting in-memory data structures to support the application.
Expectations:
- Functionally correct code (whatever feature is completed)
- Create the sample data yourself. You can put it into a file, test case or main driver program itself. Unit test cases are not expected.
- Code should be demo-able.
- Code should be modular. Code should have basic OO design. Please do not jam the responsibilities of one class into another.
- Code should be extensible. Wherever applicable, use interfaces and contracts between different methods. It should be easy to add/remove functionality without re-writing the entire codebase.
- Code should handle edge cases properly and fail gracefully.
- Code should be legible and readable.
- CLI, Web based application, REST API and UI are not expected.
Guidelines:
- Please discuss the solution with an interviewer
- Please do not access internet for anything EXCEPT syntax
- You are free to use the language of your choice
- All work should be your own
- Please focus on the Bonus Feature only after ensuring the required features are complete and demoable.
Interview Questions (1)
Design and implement a Library Management system that caters to its registered members by cataloging and housing books that can be borrowed.
The system must provide the following functionalities:
-
Add books to the catalog: Every book will be added by name and author and the program must generate a unique id for it by joining the first three letters of the author’s last name to a number to create a unique key. For example, a book by Rowling would have ROW1234 as a unique Id. Also, note that the library can have more than one copy for a book.
-
Register and unregister users in the Library
-
Reservation Management system: A user should be able to make a request to borrow a book from the library.
- Users can borrow books by the book id (eg - ROW1234). For the scope of problems, let's assume users are aware of book id’s.
- If the book is available and not borrowed by anyone, it should be reserved to the member’s name.
- If the book is already borrowed by another user, the reservation system must add the requesting member to a FIFO waitlist of reservations. When the book is returned to the library, it will not be marked as available and will be available only to the first user under the FIFO queue
- If the user is the first user of the FIFO waitlist, the book can be reserved under the user’s name
-
Fine calculation system: A user is allowed to borrow a book only for 14 days. If this time limit is exceeded at the time of return, the system should calculate a fine of 20 rupees per day for the number of days delay.
Good To Have (Bonus): One user should only be allowed to reserve one copy of the book Auditing: Design should cater to following use cases: Given a bookId, give a list of users having that book Given a userId, list of books issued to him
Other details: **Use of a DB is not allowed. We are expecting in-memory data structures to support the application.
Expectations:
- Functionally correct code (whatever feature is completed)
- Create the sample data yourself. You can put it into a file, test case or main driver program itself. Unit test cases are not expected.
- Code should be demo-able.
- Code should be modular. Code should have basic OO design. Please do not jam the responsibilities of one class into another.
- Code should be extensible. Wherever applicable, use interfaces and contracts between different methods. It should be easy to add/remove functionality without re-writing the entire codebase.
- Code should handle edge cases properly and fail gracefully.
- Code should be legible and readable.
- CLI, Web based application, REST API and UI are not expected.
Guidelines:
- Please discuss the solution with an interviewer
- Please do not access internet for anything EXCEPT syntax
- You are free to use the language of your choice
- All work should be your own
- Please focus on the Bonus Feature only after ensuring the required features are complete and demoable.
Summary
I interviewed for an SDE2 role at Flipkart, navigating through Machine Coding, PSDS, and Design rounds. While I successfully cleared the first two, I felt I performed poorly in the Design round and subsequently received a rejection.
Full Experience
Hi community,
I recently gave flipkart SDE2 interviews, I filled a google form circulated by a recruiter, Then next day I had machine coding round(on saturday), following monday I had machine coding evaluation round.
He asked me what design i used, which design will be used if I want to do some async task then ran some test cases on my code.
Problem Statement:
Ecommerce with Loyalty Program - Machine Coding Round
Problem Statement:
Design a service that adds gamification elements to an e-commerce platform. This service will track user transactions, allowing users to purchase products, redeem existing points during purchases (with constraints based on user level), and earn new points from those purchases. The service should incentivize purchases and engagement using points and levels, and it should be designed to be flexible and extensible.
Functionalities Required:
Onboard User
Onboard user to our platform
onboard <user_name>
User Points:
Users earn points for every purchase.
The service calculates points based on the user's level and the purchase amount:
For every ₹100 spent, users earn points as follows:
Bronze: 10 points
Silver: 12.5 points
Gold: 15 points
Users can view their current point balance.
User Levels:
Users progress through levels based on accumulated points:
Bronze: 0 - 499 points
Silver: 500 - 999 points
Gold: 1000+ points
Each level has associated benefits (redemption limits and point earning rates).
Purchase Products with Points Redemption:
Users can purchase products.
Users can redeem existing points to pay for a portion of the purchase.
Redemption Rules:
The percentage of the purchase that can be paid with points and the capped limit on points redeemed are based on the user's level:
Bronze:
Maximum redemption percentage: 5% of the purchase amount.
Maximum points redeemable: 200 points.
Silver:
Maximum redemption percentage: 10% of the purchase amount.
Maximum points redeemable: 500 points.
Gold:
Maximum redemption percentage: 15% of the purchase amount.
Maximum points redeemable: 1000 points.
Users can choose to redeem less than or equal to points eligible for redemption
Users also earn points on the remaining amount paid with actual money (based on their level and the ₹100 = 10 points rule).
purchase <user_name> <order_amount> <points_to_redeem>
Get User's Stats
User can choose to view below details
Current level, points
Personalized Discount (Bonus):
Calculate a personalized discount for each user on their current purchase based on their past purchase history.
Discount Calculation Rules:
If the user has placed more than 3 orders, apply a 5% discount on the current purchase.
If the user's total spending is greater than ₹10,000, apply a 10% discount on the current purchase.
If both conditions are true, apply a 12% discount on the current purchase.
The discount is applied after any point of redemption.
The discount should be capped at ₹5000.
Post redemption of this offer, eligibility will be refreshed (will again require at least 3 order or spent at least 10k to be re-eligible)
Sample Test Cases:
Test Steps:
Bronze Purchase:
Input: purchase user1 800.00 0
Verify:
Points Calculation: (800 / 100) * 10 = 80 points
Output: Purchase successful. Points added: 80. Total payable amount: 800.00. Current points: 80. Current level: Bronze
orders count : 1
Bronze Purchase:
input: purchase user1 4200.00 100
Output: Purchase Failed. Not enough points to redeem
Bronze Purchase (Approaching Silver):
Input: purchase user1 4200.00 0
Verify:
Points Calculation: (4200 / 100) * 10 = 420 points
Output: Purchase successful. Points added: 420. Total payable amount: 4200.00. Current points: 500. Current level: Silver
orders count : 2
Silver Purchase (With Redemption):
Input: purchase user1 3000.00 300
Verify:
Redemption allowed: Yes (Silver max redemption: 500)
Amount after redemption: 3000 - 300 = 2700
Points Calculation: (2700 / 100) * 12.5 = 337.5 points
Output: Purchase successful. Points redeemed: 300. Points added: 337.5. Total payable amount: 2700.00. Current points: 537.5. Current level: Silver
orders count : 3
Silver Purchase (Approaching Gold):
Input: purchase user1 5000.00 0
Verify:
Points Calculation: (5000 / 100) * 12.5 = 625.0 points
Output: Purchase successful. Points added: 625.0. Total payable amount: 5000.00. Current points: 1162.5. Current level: Gold
orders count : 4
Gold Purchase (With Redemption, Discount): [BONUS PART]
*Assume user1 now qualifies for a 5% discount (orders > 3).
Input: purchase user1 12000.00 800 0
Verify:
Redemption allowed: Yes (Gold max redemption: 1000)
Amount after redemption: 12000 - 800 = 11200
Discount Calculation: 11200 * 0.05 = 560.0
Amount after discount: 11200 - 560 = 10640.0
Points Calculation: (10640 / 100) * 15 = 1596.0
Output: Purchase successful. Points redeemed: 800. Points added: 1596.0. Discount applied: ₹560.0. Total payable amount: 10640.0. Current points: 1958.5. Current level: Gold
orders count : 5
Final Points Check:
Input: getUserStats user1
Verify:
Output: user1 has 1958.5 points. Current level: Gold.
Guidelines:
Time: 90mins
Write modular and clean code.
A driver program/main class/test case is needed to test out the code by the evaluator with multiple test cases. But do not spend too much time in the input parsing. Keep it as simple as possible.
Evaluation criteria: Demoable & functionally correct code, Code readability, Proper Entity modelling, Modularity & Extensibility, Separation of concerns, Abstractions. Use design patterns wherever applicable
You are not allowed to use any external databases like MySQL. Use only in memory data structures.
No need to create any UX
Please focus on the Bonus Feature only after ensuring the required features are complete and demo-able.
Use of Gen AI or any other tool to write code is prohibited
Verdict: Passed
Round 2: PSDS Round:
Problems asked were like this
PSDS Round questions:
Given a positive integer n such that n > 2. Divide numbers from 1 to n in two groups such that the absolute difference of sum of each group is minimum. Print the 2 groups
Example:
Input : 5
Output :[ [5 2], [4, 3,1]]
Follow up on the same
Given a positive integer n such that n > 2. Divide numbers from 1 to n in k groups such that the absolute difference of sum of each group is minimum. Print the 2 groups
Example:
Input : 5
Output :[ [5 2], [4, 3,1]]
Then asked me to optimise the approach as i suggested O(NK) then optimised it by using priority queue O(NLogK)
#2 Design a stack-like data structure to push elements to the stack and pop the most frequent element from the stack.
Implement the FreqStack class:
FreqStack() constructs an empty frequency stack.
void push(int val) pushes an integer val onto the top of the stack.
int pop() removes and returns the most frequent element in the stack.
If there is a tie for the most frequent element, the element closest to the stack's top is removed and returned.
Example 1:
Input
["FreqStack", "push", "push", "push", "push", "push", "push", "pop", "pop", "pop", "pop"]
[[], [5], [7], [5], [7], [4], [5], [], [], [], []]
Output
[null, null, null, null, null, null, null, 5, 7, 5, 4]
This round went so well from my side as I solved all questions.
Verdict: Passed
Round 3: Design Round
Recruiter called me on thursday saying you have design round tomorrow, as I was supposed to be in office, I told her to move this either to saturday or monday, she said she has to complete everything by wednesday.
She scheduled design round on friday 4PM and rescheduled to 2PM.
The questions asked were like this
Design Round question:
Design a ticket booking system for movies. For example: bookmyshow
Functionality to be implemented:
● Search movie(by name, by theatre name)
● Book ticket
● Cancel ticket
● List upcoming movies
I was told to write first human interfaces,not any language specific just human interface then I was told to design DB and freedom to choose any db, and then he found mistakes in each table.
PS: I messed this round as I lacked multiple basics and interviewer pointed out. Interviewer was helpful and it went for 1.5hrs
Verdict: Self rejecting myself
Edit: Got the rejecion mail
Interview Questions (5)
Problem Statement:
Ecommerce with Loyalty Program - Machine Coding Round Problem Statement: Design a service that adds gamification elements to an e-commerce platform. This service will track user transactions, allowing users to purchase products, redeem existing points during purchases (with constraints based on user level), and earn new points from those purchases. The service should incentivize purchases and engagement using points and levels, and it should be designed to be flexible and extensible. Functionalities Required: Onboard User Onboard user to our platform onboard <user_name>User Points: Users earn points for every purchase. The service calculates points based on the user's level and the purchase amount: For every ₹100 spent, users earn points as follows: Bronze: 10 points Silver: 12.5 points Gold: 15 points Users can view their current point balance.
User Levels: Users progress through levels based on accumulated points: Bronze: 0 - 499 points Silver: 500 - 999 points Gold: 1000+ points Each level has associated benefits (redemption limits and point earning rates).
Purchase Products with Points Redemption: Users can purchase products. Users can redeem existing points to pay for a portion of the purchase. Redemption Rules: The percentage of the purchase that can be paid with points and the capped limit on points redeemed are based on the user's level: Bronze: Maximum redemption percentage: 5% of the purchase amount. Maximum points redeemable: 200 points. Silver: Maximum redemption percentage: 10% of the purchase amount. Maximum points redeemable: 500 points. Gold: Maximum redemption percentage: 15% of the purchase amount. Maximum points redeemable: 1000 points. Users can choose to redeem less than or equal to points eligible for redemption Users also earn points on the remaining amount paid with actual money (based on their level and the ₹100 = 10 points rule). purchase <user_name> <order_amount> <points_to_redeem>
Get User's Stats User can choose to view below details Current level, points
Personalized Discount (Bonus): Calculate a personalized discount for each user on their current purchase based on their past purchase history. Discount Calculation Rules: If the user has placed more than 3 orders, apply a 5% discount on the current purchase. If the user's total spending is greater than ₹10,000, apply a 10% discount on the current purchase. If both conditions are true, apply a 12% discount on the current purchase. The discount is applied after any point of redemption. The discount should be capped at ₹5000. Post redemption of this offer, eligibility will be refreshed (will again require at least 3 order or spent at least 10k to be re-eligible) Sample Test Cases: Test Steps: Bronze Purchase:
Input: purchase user1 800.00 0 Verify: Points Calculation: (800 / 100) * 10 = 80 points Output: Purchase successful. Points added: 80. Total payable amount: 800.00. Current points: 80. Current level: Bronze orders count : 1 Bronze Purchase: input: purchase user1 4200.00 100 Output: Purchase Failed. Not enough points to redeem Bronze Purchase (Approaching Silver):
Input: purchase user1 4200.00 0 Verify: Points Calculation: (4200 / 100) * 10 = 420 points Output: Purchase successful. Points added: 420. Total payable amount: 4200.00. Current points: 500. Current level: Silver orders count : 2 Silver Purchase (With Redemption):
Input: purchase user1 3000.00 300 Verify: Redemption allowed: Yes (Silver max redemption: 500) Amount after redemption: 3000 - 300 = 2700 Points Calculation: (2700 / 100) * 12.5 = 337.5 points Output: Purchase successful. Points redeemed: 300. Points added: 337.5. Total payable amount: 2700.00. Current points: 537.5. Current level: Silver orders count : 3 Silver Purchase (Approaching Gold):
Input: purchase user1 5000.00 0 Verify: Points Calculation: (5000 / 100) * 12.5 = 625.0 points Output: Purchase successful. Points added: 625.0. Total payable amount: 5000.00. Current points: 1162.5. Current level: Gold orders count : 4 Gold Purchase (With Redemption, Discount): [BONUS PART]
*Assume user1 now qualifies for a 5% discount (orders > 3). Input: purchase user1 12000.00 800 0 Verify: Redemption allowed: Yes (Gold max redemption: 1000) Amount after redemption: 12000 - 800 = 11200 Discount Calculation: 11200 * 0.05 = 560.0 Amount after discount: 11200 - 560 = 10640.0 Points Calculation: (10640 / 100) * 15 = 1596.0 Output: Purchase successful. Points redeemed: 800. Points added: 1596.0. Discount applied: ₹560.0. Total payable amount: 10640.0. Current points: 1958.5. Current level: Gold orders count : 5 Final Points Check:
Input: getUserStats user1 Verify: Output: user1 has 1958.5 points. Current level: Gold.
Guidelines: Time: 90mins Write modular and clean code. A driver program/main class/test case is needed to test out the code by the evaluator with multiple test cases. But do not spend too much time in the input parsing. Keep it as simple as possible. Evaluation criteria: Demoable & functionally correct code, Code readability, Proper Entity modelling, Modularity & Extensibility, Separation of concerns, Abstractions. Use design patterns wherever applicable You are not allowed to use any external databases like MySQL. Use only in memory data structures. No need to create any UX Please focus on the Bonus Feature only after ensuring the required features are complete and demo-able. Use of Gen AI or any other tool to write code is prohibited
Given a positive integer n such that n > 2. Divide numbers from 1 to n in two groups such that the absolute difference of sum of each group is minimum. Print the 2 groups
Example:
Input : 5
Output :[ [5 2], [4, 3,1]]
Follow up on the same
Given a positive integer n such that n > 2. Divide numbers from 1 to n in k groups such that the absolute difference of sum of each group is minimum. Print the 2 groups
Example:
Input : 5
Output :[ [5 2], [4, 3,1]]
Design a stack-like data structure to push elements to the stack and pop the most frequent element from the stack.
Implement the FreqStack class:
- FreqStack() constructs an empty frequency stack.
- void push(int val) pushes an integer val onto the top of the stack.
- int pop() removes and returns the most frequent element in the stack.
If there is a tie for the most frequent element, the element closest to the stack's top is removed and returned.
Example 1:
Input
["FreqStack", "push", "push", "push", "push", "push", "push", "pop", "pop", "pop", "pop"]
[[], [5], [7], [5], [7], [4], [5], [], [], [], []]
Output
[null, null, null, null, null, null, null, 5, 7, 5, 4]
Design a ticket booking system for movies. For example: bookmyshow
Functionality to be implemented:
- Search movie(by name, by theatre name)
- Book ticket
- Cancel ticket
- List upcoming movies
I was told to write first human interfaces,not any language specific just human interface then I was told to design DB and freedom to choose any db, and then he found mistakes in each table.
Preparation Tips
Scope of Improvement: If you are doing LLD keep coding that by yourself,
Because speed matters and think in a direction of scalability.
When we see LLD/HLD videos we think whatever is being taught, besides that think in the direction of scalability.
Summary
I successfully completed a Flipkart machine coding round where I was tasked with building a static email application, demonstrating core front-end functionalities, and I cleared the round.
Full Experience
Just finished the machine coding round for Flipkart, and it was quite an interesting experience! Around 15 of us were on the call, all tackling the same challenge within a 90-minute timeframe.
Interview Questions (1)
The task was to build a static email application with the following core functionalities:
- Layout: A two-panel interface – a left sidebar for the inbox and a larger right panel for detailed email viewing.
- Data: We were provided with hardcoded email data by the interviewer.
- Inbox View (Left Panel): A scrollable list displaying individual emails.
- Click Interaction: Selecting an email in the list should:
- Open its detailed view in the right panel.
- Visually mark the email as "read" in the list (background changing to a light grey).
- Visual States:
- Currently Reading: The selected email in the list should have a subtle yellow background.
- Read: Previously opened emails in the list should have a light grey background.
- Unread: All unopened emails should have a white background.
- Click Interaction: Selecting an email in the list should:
- Email Detail View (Right Panel): Upon selecting an email, the right panel should display:
- Sender information.
- Timestamp of the email.
- A button to "Mark as Unread," which would revert its visual state in the left panel and its read status.
- Persistence: Both the "delete email" and "mark as read/unread" actions should persist across multiple hypothetical visits to the application.
Bonus Challenge:
- Implement a search bar at the top to filter the displayed emails.
All of the code should be written in HTML, CSS and Vanilla JavaScript.
Summary
This post provides a compiled list of Data Structures and Algorithms questions frequently encountered or asked in Flipkart's interview processes, particularly focusing on the DSA round.
Full Experience
DSA Round (60 mins)
- 2 Questions (Medium level)
- 45 mins to solve
- 15 mins for Introduction & Q/A
Areas to focus on:
- Time Complexity understanding
- Edge Cases
- Choice of best data structure.
- Be verbose, keep it interactive.
Interview Questions (13)
Design a map that allows you to do the following: Maps a string key to a given value. void insert(string key, int val): Inserts the key-val pair into the map. If the key already existed, the original key-value pair will be overridden to the new one. Int sum(string prefix): Returns the sum of the values that have a key with a prefix equal to a given string. There is an initialize() method, in case you want to initialize any internal data structure of your map.
You have “n” empty baskets, you are given the position of the empty baskets in an array called "position", where position[i] specifies the position of the ith basket. Additionally you have m balls to be distributed among the n baskets, You have to distribute the m balls into n baskets such that the minimum magnetic force between any two balls is maximum. The magnetic force between two different balls at position x and y is defined as |x-y|.
Print the maximum element from every k consecutive elements in an array of size n. Given an array nums, there is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Return the maximum sliding window.
Given an integer array, print the count of subarrays which had atmost k distinct elements. Given an integer array nums and an integer k, return the number of subarrays that have at most k distinct elements.
Given a number, find the minimum no of operations done to reduce the number to zero. An operation is defined as subtracting one of the digits from the number.
You are given an m x n grid where each cell can have one of three values: 0 representing an empty cell, 1 representing a fresh orange, or 2 representing a rotten orange. Every minute, any fresh orange that is 4-directionally adjacent to a rotten orange becomes rotten. Return the minimum number of minutes that must elapse until no fresh oranges are present. If this is impossible, return -1.
Minimum time required to propagate the information from root to all child nodes of n-ary tree where in one path, the information can only be propagated at one level and other levels will need to wait.
Preparation Tips
Other Rounds
Check Flipkart Tech blog
Medium articles
Topics to cover
- Binary Search
- Priority Queue (Min Heap and Max Heap)
- Array
- Trees (BFS)
Summary
I faced a challenging machine coding round at Flipkart where I was tasked with designing and implementing an online food ordering system called 'Feed.Me' within 90 minutes.
Full Experience
During my interview process for Flipkart, I was given a machine coding challenge that required me to build an online food ordering system, which they named 'Feed.Me'. I had 90 minutes to implement the system, focusing on key features such as restaurant management, menu updates, order placement, and an intelligent auto-assignment mechanism based on various criteria like lowest cost or highest rating. The problem emphasized handling concurrent orders, managing restaurant capacity, and ensuring the code was modular, extensible, and well-tested using an in-memory store. I also had to consider several bonus requirements, like updating restaurant capacity and adding new selection criteria.
Interview Questions (1)
Description:
Implement an online food ordering system. Features:
- This food processing system has a tie-up with restaurants where each restaurant has a menu with all the items & their prices. Restaurants also have a rating out of 5.
- Each restaurant has max #orders it can process at any given time. Beyond that, it shouldn’t be assigned any further orders until an ongoing order is completed.
- Once an order is ACCEPTED, the restaurant can mark it as COMPLETED when the order is ready. This will free up the processing capacity of the restaurant. A restaurant can’t CANCEL an ACCEPTED order.
- An order will be auto-assigned to a restaurant by the food processing system based on a criteria. Eg: Assign by lowest cost or best rating. This criteria will be given as input to the food processing system by the customer.
- An order will be auto-assigned to a restaurant only if all the items in an order can be fulfilled by a single restaurant. Else the order will not be ACCEPTED.
Requirement:
- Onboard a new restaurant.
- A restaurant should be able to update its menu. For simplicity, a restaurant can't delete an item from the menu.
- Restaurants can mark ACCEPTED orders as COMPLETED. Orders once ACCEPTED can’t be CANCELLED by a restaurant.
- A customer should be able to place an order by giving items, respective quantities & selection criteria.
- Order will be auto-assigned to a restaurant based on a selection criteria.
- Implement all the restaurant selection criteria.
- Bonus Requirement: Restaurant should be able to update Capacity.
- Bonus Requirement: Add one more selection criteria - remaining maximum capacity available for a restaurant. The restaurant with max remaining capacity should process the order.
Note: Do not use any database or NoSQL store, use an in-memory store.
Expectation:
- Make sure that you have working and demoable & functionally correct code.
- Use proper abstractions, separation of concerns, proper entity modeling.
- Use appropriate design patterns wherever required.
- The code should be modular, extensible, readable and unit-testable.
- Proper exception handling is required.
- Restaurant selection criteria must be extensible.
- Concurrency handling (BONUS / Good to have)
Sample test cases:
- Onboard Restaurants
- R1: “max_orders_that_can_be_processed_at_a_time” : 5, “Menu”: [“Veg Biryani” : Rs.100, “Chicken Biryani”: Rs.150], “rating”: 4.5/5
- R2: “max_orders_that_can_be_processed_at_a_time”: 5, menu: [“Chicken Biryani” : Rs.175, “Idli” : Rs.10, “Dosa” : Rs.50, “Veg Biryani” : Rs. 80], “rating”: 4/5
- R3: “max_orders_that_can_be_processed_at_a_time”: 1, “menu”: [“Gobi Manchurian” : Rs.150, “Idli” : Rs.15, “Chicken Biryani” : Rs.175, “Dosa”: Rs.30 ], “rating”: 4.9/5
- Update restaurant menu
- ADD: {Restaurant_1, add, Chicken65, Rs.250}
- UPDATE: {Restaurant_2, update, Chicken Biryani, Rs.150}
- Place Order
- Order1: Input: { user: Ashwin, items: [ 3*Idli, 1*Dosa ], selection: Lowest cost } Output: Order assigned to R3
- Order2: Input: { user: Harish, items: [ 3*Idli, 1*Dosa ], selection: Lowest cost } Output: Order assigned to R2 (Not R3 since it has reached its full capacity from Order1)
- Order3: Input: { user: Shruthi, items: [3*Veg Biryani], selection: ‘Highest rating’ } Output: Order assigned to R1
- Update Order Status: R3 marks Order1 as COMPLETED
- Order4: Input: { user: Harish, items: [ 3*Idli, 1*Dosa ], selection: Lowest cost } Output: Order assigned to R3 (since R3 has COMPLETED Order1)
- Order5: Input: {user: xyz, items: [1*Paneer Tikka, 1*Idli], selection: ‘Lowest cost} Output: Order can’t be fulfilled (since none of the restaurants above serve Paneer Tikka)
Summary
I interviewed for an SDE-3 backend role at Flipkart in Bangalore. The interview process included a DSA round where I solved two problems, and a Machine Coding round focused on designing a food ordering system. Unfortunately, the Machine Coding round did not go well for me, leading to an overall rejection from Flipkart.
Full Experience
Hey everyone, I recently had the opportunity to interview with Flipkart for an SDE-3 backend role in December 2024. I secured the interview through a referral from a friend. I'm currently working as an SDE-2 at Amazon.
Round 1 (Data Structures & Algorithms)
This round focused on two coding problems. I managed to solve both of them efficiently.
Round 2 (Machine Coding)
This round involved implementing an online food ordering system. The follow-up discussion on this machine coding round didn't go as well as I hoped, possibly because it was one of my earlier experiences with such a format.
Overall, my application resulted in a "No Hire" decision.
Interview Questions (3)
Design a map that allows you to do the following:
- Maps a string key to a given value
Void insert(string key, int val): Inserts the key-val pair into the map. If the key already existed, the original key-value pair will be overridden to the new one.- Returns the sum of the values that have a key with a prefix equal to a given string.
Int sum(string prefix): Returns the sum of all the pairs value whose key starts with the prefix.- There is an
initialize()method, in case you want to initialize any internal data structure of your map.
You have “n” empty baskets, you are given the position of the empty baskets in an array called "position", where position[i] specifies the position of the ith basket. Additionally you have m balls to be distributed among the n baskets, You have to distribute the m balls into n baskets such that the minimum magnetic force between any two balls is maximum. The magnetic force between two different balls at position x and y is defined as |x-y|
Implement an online food ordering system. Below are the expected features of the system.
Features:
- This system has tie-ups with restaurants, each with a menu with all the items at their prices.
- Each restaurant has a maximum processing capacity (food preparation and dispatch) of items at any given time. It will not accept any further item requests until items in processing are completed.
- Each restaurant takes some time to prepare and dispatch food. Once the item is fulfilled the system gets the notification of it which adds back to the processing capacity of that restaurant.
- One or multiple restaurants can be selected based on the restaurant selection strategy.
- Order is accepted from customers only if all the items can be fulfilled by one or more restaurants.
Requirements:
- Onboard new restaurant with its menu and item processing capacity. The menu should be reflected in the food ordering system.
- A restaurant should be able to change its menu.
- Customers should be able to place an order by giving items. We can assume that each item will be of only 1 quantity.
- Restaurants should be selected based on the lowest price offered by the restaurant for that item.
- The system should be able to keep track of all items served by each restaurant, and the system should be aware of the remaining capacity of each restaurant at a given time.
- Once the order is fulfilled by the restaurant, the capacity should be replenished for the given restaurant.
Test-cases:
Below are the sample driver commands that can be demonstrated. This is for the understanding purpose, it does not reflect exact function calls.
1. add_restaurant("A2B", [Idly for 40Rs, Vada for 30Rs, Paper Plain Dosa for 50Rs], 4)
2. add_restaurant("Rasaganga", [Idly for 45Rs, Set Dosa for 60Rs, Poori for 25Rs], 6)
3. add_restaurant("Eat Fit", [Idly 30Rs, Vada for 40Rs], 2)
4. order(["Idly", "Poori"])
output: Order Id#1: Ordered from "Eat Fit" & "Rasaganga"
5. order(["Idly", "Vada"])
output: Order Id#2 : Ordered from "Eat Fit" & "A2B"
6. Print system stats:
output (Restaurant name and current processing power):
A2B: 3
Rasaganga: 5
Eat Fit: 0
7. order(["Idly"])
output: Ordered from "A2B" ("Eat Fit" was not selected since there was no further capacity left)
8. fulfilled_item_for_restaurant("Order Id#1")
9. Print system stats:
output (Restaurant name and current processing power):
A2B: 2
Rasaganga: 6
Eat Fit: 1
10. fulfilled_item_for_restaurant("#2")
11. change_menu("Eat Fit", [Idly 60Rs, Vada for 40Rs], 2)
12. order(["Idly"])
output: Ordered from "A2B"Summary
I successfully interviewed for an SDE-2 role at Flipkart in Bangalore, completing multiple rounds including machine coding, problem-solving, system design, and hiring manager discussions, ultimately receiving and accepting an offer.
Full Experience
How I applied:
I came across a hiring drive for SDE-2 on LinkedIn, which was posted by a recruiter. I applied there, and after about a week, I received a mail confirming that I was shortlisted for the interviews.
Round 1: Machine Coding (90 mins)
I was provided with a document outlining a machine coding question. My task was to implement an auction system on my local machine. A set of mandatory requirements had to be fulfilled, and there were also bonus requirements that I could attempt if I had extra time. Throughout the coding process, I had to ensure that basic OOPs principles were implemented, suitable design patterns were used, and the code remained modular and extensible.
Round 2: Machine Coding Evaluation (30 mins)
This round took place the day after the first round. My primary task was to explain the code that I had submitted from the machine coding challenge in Round 1.
Round 3: Problem Solving & Data Structures (1 hr)
This round occurred two days after the second round. I was given two problems to solve:
- The first problem was Walls and Gates.
- The second problem I don't remember exactly, but I solved it using a Hashmap.
Round 4: System Design (1 hr)
This round focused primarily on low-level design. I was asked to provide a design for a system similar to BookMyShow. This exercise required me to design the database schema, API design, and overall low-level architectural considerations.
Round 5: Hiring Manager Round (1 hr)
This round was mostly technical. The initial part involved a deep dive into my past projects and discussions about my design choices. The last 15 minutes of the round were dedicated to basic behavioral questions.
Verdict:
I was selected and received the offer letter after a week, which I subsequently accepted.
Interview Questions (3)
I had to implement an auction system locally based on a given set of mandatory and bonus requirements. The solution needed to demonstrate strong OOPs principles, appropriate design patterns, and be modular and extensible.
You are given a m x n 2D grid initialized with these three possible values. -1 - A wall or an obstacle. 0 - A gate. INF - Empty room. We use the value 2^31 - 1 = 2147483647 to represent INF as you may assume that the distance to a gate is less than 2147483647. Fill each empty room with the distance to its nearest gate. If it is impossible to reach a gate, it should be filled with INF.
I was tasked with designing a system similar to BookMyShow, with a strong emphasis on low-level design aspects. This included designing the database schema, API endpoints, and the overall low-level architecture of the system.
Summary
I successfully interviewed for an SDE-2 position at Flipkart, navigating through machine coding, problem-solving, system design, and hiring manager rounds, ultimately receiving an offer.
Full Experience
Application Process
I applied for an SDE-2 position at Flipkart after seeing a recruiter post about a hiring drive on LinkedIn. After about a week, I received an email confirming that I was shortlisted for the interviews.
Round 1: Machine Coding (90 mins)
For the first round, I was provided with a document containing a machine coding question. My task was to implement a phonebook application on my local machine. There was a set of mandatory requirements that I had to fulfill, and an additional set of bonus requirements that I could attempt if I had time left. Throughout the coding process, I focused on implementing basic OOPs principles, utilizing suitable design patterns, and ensuring the code was modular and extensible.
Round 2: Machine Coding Evaluation (30 mins)
This round took place on the same day as the first. Here, I had to explain the code I had submitted from the machine coding round.
Round 3: PS-DS Round (1 hr)
A week after the second round, I had my Problem Solving and Data Structures round. Since my Last Working Day (LWD) at my previous organization was only a few days away, the next three rounds were scheduled within a tight span of two days. In this round, I was given two questions:
- Given an integer array, print the count of subarrays which had at most K distinct elements.
- Given a number, find the minimum number of operations to reduce the number to zero. An operation is defined as subtracting one of the digits from the number.
I managed to solve both questions fairly quickly, which led to an extension for the second problem where I was asked to print all the operations performed.
Round 4: System Design (1 hr)
This round was primarily focused on high-level system design. I was tasked with providing a design for an UrbanClap-like system. The interviewer expected a comprehensive solution covering database schema design, API design, and the overall high-level architecture.
Round 5: HM Round (1 hr)
My final round was with the Hiring Manager. This session was mostly technical, with the last 15 minutes dedicated to basic behavioral questions. We delved deep into my past projects and discussed my design choices in detail.
Verdict
I received the offer letter a week later and have since accepted the position.
Interview Questions (4)
I was tasked with implementing a phonebook application. The problem statement included a set of mandatory requirements that needed to be fulfilled, along with bonus requirements that could be attempted if time allowed. The implementation needed to adhere to basic Object-Oriented Programming (OOP) principles, incorporate suitable design patterns, and ensure the code was modular and extensible.
Given an integer array, I needed to print the count of subarrays which had at most K distinct elements.
Given a number, I had to find the minimum number of operations to reduce it to zero. An operation is defined as subtracting one of its digits from the number. As an extension, I also had to print all the operations done.
I was asked to provide a high-level design for a system similar to UrbanClap. This included designing the database schema, defining the API interfaces, and outlining the overall high-level architecture.
Summary
I recently participated in a machine coding round for an SDE2 role at Flipkart, where I was tasked with building a comprehensive doctor-patient appointment booking system with several core functionalities and a waitlist feature.
Full Experience
During my machine coding round at Flipkart for the SDE2 position, I was presented with a detailed problem statement to develop a doctor-patient appointment booking application. The core challenge involved designing a system where doctors could register, declare their availability in 30-minute slots from 9 am to 9 pm, and patients could search for doctors by specialty, book appointments, and cancel them. A crucial aspect was implementing a waitlist feature: if a desired slot was booked, patients could join a waitlist, and the first person on the list would automatically get the slot if it became available. I also needed to implement a system for viewing booked appointments and a bonus feature to track trending doctors. The round had a time limit of 90 minutes, emphasizing modular, clean code, proper entity modeling, and extensibility, all while using only in-memory data structures.
Interview Questions (1)
We are required to build an app that lets patients connect to doctors and book appointments. The day is divided into time slots of 30 mins each, starting from 9 am to 9 pm. Doctors can login to the portal and declare their availability for the given day in terms of slots. Patients can login and book appointments/cancel existing appointments. For simplicity you can assume that the doctors’ availability is declared for that particular day only.
Functionalities required:
- A new doctor should be able to register, and mention his/her speciality among (Cardiologist, Dermatologist, Orthopedic, General Physician)
- A doctor should be able to declare his/her availability in each slot for the day. For example, the slots will be of 30 mins like 9am-9.30am, 9.30am-10am.
- Patients should be able to login, and search available slots based on speciality.
- The slots should be displayed in a ranked fashion. Default ranking strategy should be to rank by start time. But we should be able to plugin more strategies like Doctor’s rating etc in future.
- Patients should be able to book appointments with a doctor for an available slot. A patient can book multiple appointments in a day. A patient cannot book two appointments with two different doctors in the same time slot.
- Patients can also cancel an appointment, in which case that slot becomes available for someone else to book.
- Build a waitlist feature: If the patient wishes to book a slot for a particular doctor that is already booked, then add this patient to the waitlist. If the patient with whom the appointment is booked originally, cancels the appointment, then the first in the waitlist gets the appointment.
- A patient/doctor should be able to view his/her booked appointments for the day.
Bonus functionality:
- Trending Doctor: Maintain at any point of time which doctor has the most appointments.
Guidelines:
- Time: 90mins
- Write modular and clean code.
- A driver program/main class/test case is needed to test out the code by the evaluator with multiple test cases. But do not spend too much time in the input parsing. Keep it as simple as possible.
- Evaluation criteria: Demoable & functionally correct code, Code readability, Proper Entity modelling, Modularity & Extensibility, Separation of concerns, Abstractions. Use design patterns wherever applicable.
- You are not allowed to use any external databases like MySQL. Use only in memory data structures.
- No need to create any UX.
- Please focus on the Bonus Feature only after ensuring the required features are complete and demoable.
Summary
I successfully applied for an SDE-2 position at Flipkart, went through several challenging rounds including Machine Coding, Data Structures & Algorithms, System Design, and a Managerial discussion, and ultimately received an offer.
Full Experience
I applied for an SDE-2 position at Flipkart after seeing a recruiter's post on LinkedIn. I filled out a Google form and was later invited to a call where the entire interview process was explained, which involved around 50 candidates. An elimination round for Machine Coding was scheduled two days later.
Round 1: Machine Coding
For this round, I was tasked with writing code for a phonebook application. There were 5-6 mandatory requirements that needed to be fully functional for a high chance of selection. Additionally, some bonus functionalities were provided, which were not strictly required.
Round 2: MC Evaluation
A 30-minute call was scheduled on the same day to evaluate my machine coding solution. An SDE-3 joined, and I had to explain my entire code. I demonstrated all the required functionalities and elaborated on my implementation. The focus was on modularity, adherence to SOLID principles, and the use of design patterns. If I had missed anything, this was an opportunity to explain my reasoning.
After this round, I waited a week for the results. Since my Last Working Day (LWD) was approaching, the subsequent rounds were fast-tracked and scheduled within two days.
Round 3: PS-DS Round
Two Data Structures and Algorithms questions were asked:
- Given an integer array, count the number of subarrays having at most k distinct elements.
- Given a number, we need to find the minimum number of operations to be done so that the number becomes 0. The operation is to subtract the digits from the number. I solved both questions pretty fast, so I was given an extension to the second question, which was to print all the operations done.
Round 4: System Design (HLD)
This round focused on High-Level Design. I was given a set of requirements and asked to design an UrbanClap-like system. I had to draw the HLD on an online board. The discussion covered various aspects, including database choices, scalability, availability, and both functional and non-functional requirements. We also delved into database schema design and API design for the specified requirements.
Round 5: Managerial Round
This round involved a deep dive into my current project with the Hiring Manager. We discussed the architectural choices I made in my project, transitioning into a more general HLD discussion. The last 15 minutes were dedicated to behavioral questions.
I successfully cleared all the rounds and received an offer from Flipkart.
Interview Questions (4)
Design and implement a phonebook application with 5-6 mandatory functionalities. Focus on modularity, SOLID principles, and design patterns. Bonus functionalities were also available for implementation.
Given an integer array, count the number of subarrays having at most k distinct elements.
Given a number, find the minimum number of operations to be done so that the number becomes 0. The operation is to subtract the digits from the number. An extension was to print all operations done.
Provide the High-Level Design for a system similar to UrbanClap, given a set of requirements. Discussions focused on drawing the HLD, database choices, scalability, availability, functional and non-functional requirements, database schema design, and API design.
Summary
I interviewed for an SDE2 position at Flipkart in Bangalore, bringing 3.5 years of experience from a Japan-based Fintech company. Despite successfully navigating through machine coding, DSA, system design, and HM rounds, I ultimately declined the offer due to the company's suggestion of an SDE1 role and an uncompetitive compensation package.
Full Experience
My interview journey at Flipkart for an SDE2 role began with a Machine Coding round in June 2024. I was tasked with building an application similar to CricBuzz, incorporating features like handling white balls, no balls, changing the crease, and displaying a scoreboard. I had 30 minutes for question understanding and 90 minutes for coding. Although I cleared this round, the feedback wasn't entirely positive.
Next was the DSA round, also in June 2024, where I successfully solved two basic Dynamic Programming questions within an hour, receiving positive feedback and clearing the round with performance up to the mark.
The third round, again in June 2024, focused on System Design. For this hour-long discussion with a panel of two members, I had to design Google Calendar, including additional requirements related to scheduled events. I cleared this round as well, though the feedback indicated my performance wasn't quite up to the mark.
Finally, I had a Hiring Manager (HM) round, also in June 2024. The manager delved into my past experience and presented a challenge: implementing a price drop alert functionality for Flipkart. I felt I answered all questions satisfactorily within the 30-45 minute discussion, and my performance was considered up to the mark.
Ultimately, I received an offer for the position. However, it was suggested that my profile was better suited for an SDE1 role, despite initial discussions for SDE2 at ₹32 LPA. The final offer was a modest 10-15% hike. Considering the 5-day work-from-office requirement in Bangalore and the company being in its seed stage, I chose to decline the offer.
Interview Questions (3)
I was asked to create an application similar to CricBuzz with various functionalities like handling white ball, no ball, changing the crease, showing scoreboard etc.
The task was to design Google Calendar with additional requirements dealing with scheduled events.
The HM inquired about my past experience and asked how I would implement a price drop alert functionality in Flipkart.
Summary
I successfully navigated a rigorous two-month interview process at Flipkart for an SD2 role, ultimately receiving an offer after demonstrating strong problem-solving, machine coding, system design, and behavioral skills.
Full Experience
My recent interview journey for an SD2 position at Flipkart spanned over two months and included a series of rigorous rounds. Here's how it unfolded:
Initial Contact
On June 5th, I was approached by a recruiter who had found my resume – I'm still not entirely sure how! They quickly scheduled my first interview for June 7th.
Round 1: Machine Coding
This round was a unique experience conducted in a group meeting. After a briefing from a helpful SDE 3, I had 90 minutes to code a solution in my preferred IDE. The problem involved building a small tech Q&A platform, similar to a simplified version of Stack Overflow. I had to implement seven mandatory features, and I successfully completed all of them using a modular approach. The interview concluded with a code evaluation and some cross-questioning, which I felt went very well.
Round 2: Problem Solving and Data Structures (PSDS)
In this round, I was asked to solve two medium-level problems that are common on LeetCode: House Robber and Gas Station. I provided both brute-force and optimized solutions for both problems, and this round was successful.
Round 3: System Design
This round was led by a Senior Software Engineer. My task was to design a rate limiter. The design discussion was comprehensive, evolving from a local implementation to a global one, and covered both high-level and low-level design aspects thoroughly.
Rounds 4: Hiring Manager Interviews
These final rounds were conducted by senior managers and focused on a blend of technical and behavioral aspects. I discussed my current project, the technologies I've worked with, team structure, and system design challenges from my past experiences. Both rounds lasted about 30 minutes each and concluded positively.
The Outcome
After a period of 15 days of negotiation following the interviews, I finally received an offer. The entire process was thorough and quite a journey, taking about two months from initial contact to offer.
Interview Questions (4)
Design and implement a small tech Q&A platform, similar to a simplified version of Stack Overflow. The task involved implementing seven mandatory features within 90 minutes using your preferred IDE.
Solve the House Robber problem.
Solve the Gas Station problem.
Design a rate limiter. The discussion should evolve from a local implementation to a global one, covering both high-level and low-level design aspects.
Summary
I successfully interviewed for an SDE-2 Backend role at Flipkart in July 2024 and received an offer. The interview process comprised four comprehensive rounds: a Machine Coding round, a Problem Solving and Data Structures (PSDS) round, a Low-Level Design (LLD) round, and a final Hiring Manager (HM) discussion.
Full Experience
Round 1: Machine Coding Round (2 hours)
The first 30 minutes involved a briefing of the problem statement by an SDE 3, where all candidates were added to a meeting to understand the requirements. For the next 1.5 hours, I was required to code the solution in my preferred IDE and submit a zip file via a Google Form. During this part, I had to share my screen, and the session was recorded.
Round 2: PSDS (1 hour)
In this round, I was presented with two questions that were of medium-hard difficulty.
Round 3: LLD Round (1 hour)
This round focused on Low-Level Design, where I was asked to design a specific system.
Round 4: Hiring Manager Round (1 hour)
The final round was with a senior manager. This discussion revolved around my current projects, team structure, the technologies I have experience with, and some behavioral questions.
Interview Questions (4)
You are required to build an application that lets patients connect to doctors and book appointments. The day is divided into time slots of 30 mins each, starting from 9 am to 9 pm. Doctors can login to the portal and declare their availability for the given day in terms of slots. Patients can login and book appointments/ cancel existing appointments.
For simplicity you can assume that the doctors’ availability is declared for that particular day only.
Functionalities required:
- A new doctor should be able to register, and mention his/her speciality among (Cardiologist, Dermatologist, Orthopedic, General Physician)
- A doctor should be able to declare his/her availability in each slot for the day. For example, the slots will be of 30 mins like 9am-9.30am, 9.30am-10am..
- Patients should be able to login, and search available slots based on speciality.
- The slots should be displayed in a ranked fashion. Default ranking strategy should be to rank by start time. But we should be able to plugin more strategies like Doctor’s rating etc in future.
- Patients should be able to book appointments with a doctor for an available slot. A patient can book multiple appointments in a day. A patient cannot book two appointments with two different doctors in the same time slot.
- Patients can also cancel an appointment, in which case that slot becomes available for someone else to book.
- Build a waitlist feature: If the patient wishes to book a slot for a particular doctor that is already booked, then add this patient to the waitlist. If the patient with whom the appointment is booked originally, cancels the appointment, then the first in the waitlist gets the appointment.
- A patient/doctor should be able to view his/her booked appointments for the day.
- Doctors can’t provide overlapping slots.
- Implementing login feature is optional
- Patient registration is not mandatory
- Name of Doctor and patient are their identifiers
Given a 2D binary matrix consisting of 0s and 1s, write an algorithm to find the number of distinct shapes formed by clusters of 1s. Two shapes are considered distinct if one cannot be transformed into the other by translation (shifting).
Input
- A 2D list
matrixof sizem x nwhere each element is either 0 or 1.
Output
- An integer representing the number of distinct shapes in the matrix.
Design a Mind Wellness Center application. It can have multiple Activities like: lectures, group therapies, support groups sessions, 1:1s etc.,
Features
- Users should be able to see the list of events, list of available therapists.
- Users should be able to book multiple events, search the events by event type, date
Summary
I successfully navigated a month-long interview process for an SDE-2 (Backend) role at Flipkart, ultimately receiving an offer after multiple technical and behavioral rounds, including machine coding, data structures & algorithms, and system design.
Full Experience
I applied for the SDE-2 (Backend) position at Flipkart via LinkedIn, and the recruiter reached out to me on June 5th to schedule an interview for June 7th.
Round 1: Machine Coding Round
This round started with a briefing from an SDE 3, who patiently answered all our questions for 30 minutes. Following this, I had 90 minutes to code a solution in my preferred IDE. Initially, all candidates were in a shared meeting, but midway, we were moved to separate meetings with individual interviewers to continue working on the problem.
The question involved building a Tech Q&A platform where users could ask or answer tech-related questions and follow topics. I was given 7 mandatory features to implement and 2 bonus features. I managed to implement a workable and modular code covering all 7 mandatory features. After submitting the code via a Google form, I had an evaluation round where the interviewer cross-questioned me on my code. I was able to answer all questions, and this round went well, leading to my next interview.
Round 2 (PSDS - Problem Solving & Data Structures)
In this round, I was asked two LeetCode medium-level questions.
The first question was Longest Repeating Character Replacement, for which I provided an optimal solution.
For the second question, Pacific Atlantic Water Flow, the interviewer provided a hint, which helped me arrive at the solution. This round also went well, and I received a call to schedule my system design and Hiring Manager rounds for the same day.
Round 3 (System Design)
An SDE2 interviewed me and asked me to design a payment processing system with support for multiple payment gateways. I presented a High-Level Design (HLD) of the system, including APIs and entities.
Round 4 (Hiring Manager)
I was interviewed by a senior manager who focused on my current project, team structure, technologies I've worked on, and some behavioral questions. This round lasted 1.5 hours.
After a week without a call from HR, despite my attempts to reach out, I finally heard from the recruiter. They informed me that my feedback from previous rounds was positive and they wanted to conduct another Hiring Manager round.
Round 5 (Hiring Manager)
This round involved two interviewers, one of whom was a Senior Manager. They questioned me about my current project, delved into Java specifics, and discussed system design topics.
Again, there was a week-long delay before I got a call for a discussion with the Director. This was not a technical round but rather a conversation about my experience and Flipkart's work culture. About 4-5 days later, I received an email requesting documents for verification.
Verdict
The entire process spanned roughly a month, but I ultimately received an offer for the SDE-2 role.
Interview Questions (4)
Design and implement a Tech Q&A platform where users can ask or answer technical questions and follow interesting topics. The problem included 7 mandatory features to implement and 2 bonus features.
Design a payment processing system that supports multiple payment gateways.
Summary
I successfully navigated a four-round interview process for an SDE 2 role at Flipkart in June 2024, which included a machine coding challenge, data structures and algorithms, a low-level system design discussion, and a hiring manager round, ultimately leading to an offer.
Full Experience
I applied for the SDE 2 position at Flipkart through LinkedIn. The interview process consisted of four distinct rounds.
Round 1: Machine Coding
This round began with a 30-minute briefing, followed by 1 hour 30 minutes for coding, and concluded with a 30-minute evaluation. I was given a prompt to design a restaurant management system. For my approach, I utilized several standard design patterns:
- A Repository interface with an in-memory implementation to handle all database-related APIs.
- A Singleton pattern for the in-memory implementation to ensure a single instance.
- A Strategy pattern for implementing the filtering logic, such as by veg/non-veg or category.
I found that thoroughly walking through the complete user journey in my head before explaining it to the evaluator was quite helpful for structuring my thoughts.
Round 2: Data Structures and Algorithms (1 hour)
This round involved three problems: an easy one from LeetCode to Design HashSet, a medium problem on Longest Substring Without Repeating Characters, and another medium problem on Lowest Common Ancestor of a Binary Tree. Since I had solved all of these problems before, I didn't find this round particularly difficult. I explained my approach by starting with a brute-force solution and progressively optimizing it, detailing each step of the refinement. I attribute my ability to perform this step-by-step optimization to consistently following the Take You Forward (Striver) YouTube channel. Additionally, practicing dry runs on a code editor or notepad before the interview proved invaluable, especially since I was asked to write only pseudo-code.
Round 3: Design Round (1 hour)
This round was intended to cover both Low-Level Design (LLD) and High-Level Design (HLD), but the interviewer focused almost exclusively on LLD. I was asked to design BookMyShow, following specific steps: identifying actors, listing use cases, concurrently writing APIs and business entities, and finally designing the database schema. In my professional work, I usually integrate these steps in a more fluid, non-linear fashion, so adhering to a strict linear progression was quite challenging. The interviewer frequently interrupted my thoughts when I tried to jump ahead to class or database design. The interview, originally scheduled for an hour, extended to 1 hour 40 minutes! Aside from the database design, I felt this round was somewhat redundant, almost a repeat of Round 1 but with less freedom to articulate my thought process and solutions.
Round 4: Hiring Manager (1 hour)
This interview was entirely based on my resume and previous work experiences, with a strong focus on my current job. The hiring manager was particularly interested in the LLD aspects of the features I had implemented, so I explained the database design of those projects in detail. This was followed by a series of common behavioral interview questions such as "What are your Strengths and Weaknesses?", "Why are you switching?", "How do you keep yourself updated?", and "Explain one of the technologies you recently learned." The round lasted for an hour.
The response time between each interview round typically ranged from 1 to 3 days, and the final salary negotiation process took almost a week. The HR team was quite responsive throughout, which made the overall experience hassle-free.
Interview Questions (5)
Design a system for managing a restaurant. The system should handle the following functionalities:
- Allow the restaurant admin to define the number of tables.
- Allow restaurant admin to add, update, or remove items from the menu. Each menu item should have attributes such as name, price, veg / non-veg and category (starter, main course, dessert).
- Allow customers to browse the menu and allow filtering on factors (veg / non-veg, category), add items to their order, specify quantities, and place the order.
- Allow restaurant admin to manage tables in the restaurant as in number of tables.
- Calculate the total bill for each order, including taxes and any additional charges. Provide options for customers to pay the bill via various payment options, such as cash, credit/debit card, or online payment (card payment levy additional charges).
Bonus Functionality:
- Provide a system for kitchen staff to view incoming orders, mark them as prepared, and notify wait-staff when orders are ready for serving.
- Allow multiple orders for the same table (AddItems even after 1 order was placed).
Design the BookMyShow system, with a strong focus on Low-Level Design (LLD). The interviewer expected a step-by-step approach:
- Identify all key actors in the system.
- List down comprehensive use cases for each identified actor.
- Concurrently define APIs and business entities based on the use cases from step 2.
- Design the database schema for the system.
Preparation Tips
For Data Structures and Algorithms, I highly recommend "Take You Forward (Striver)" on YouTube. With about 10 days before the interview, I dedicated myself to solving or reviewing 10-12 problems daily. I also completed around 10 mock assessments under the LeetCode "Interview" tab.
For System Design, I followed Gaurav Sen on YouTube. However, I observed that for SDE 2 roles, the focus tends to be almost entirely on Low-Level Design (LLD), as evidenced by 3 out of 4 rounds testing LLD concepts.
Summary
I recently interviewed for an SDE-1 position at Flipkart in June 2024, which included an online assessment, two problem-solving rounds, and a hiring manager round. Despite putting in a good effort, I was ultimately rejected after the process, learning valuable lessons from the experience.
Full Experience
I recently had an interview opportunity at Flipkart for an SDE-1 role after filling out a Google form and being shortlisted for the online assessment.
Online Assessment (June 16th, 2024 - SHL Platform)
The online assessment consisted of three DSA (Data Structures and Algorithms) questions, all at a LeetCode Medium-Hard difficulty level. I was only able to solve two questions completely.
- A Graph-based problem, which was similar to Reconstruct Itinerary.
- Another problem, Create Maximum Number.
- A Tree-based problem (I don't recall the specifics).
Technical Interviews (June 20th, 2024)
I received an email on June 19th inviting me to the next round of interviews, which took place the very next day. There were three interviews in total:
Round 1: Problem Solving and Data Structures (PSDS) — 60 minutes
This round started with introductions. The interviewer asked about my favorite data structure, and I mentioned LinkedList, explaining why. They then provided a Google Doc link with two problems:
- A linked list problem similar to Reverse Linked List II, but instead of positions, two unique node values were given to define the sublist to be reversed. I spent a good 30-40 minutes on this, coding it completely on Google Docs and dry-running it with 2-3 examples.
- Gas Station. For the second question, I had limited time. I explained my initial thoughts and suggested a greedy approach, which the interviewer acknowledged was on the right track and didn't ask me to code.
The interview concluded with me asking a few questions.
Round 2: PSDS Round 2 (60 minutes)
This round felt relatively easier compared to the first one. I managed to solve both coding questions with correct approaches and discussed multiple solutions along with their time complexities. One was a DFS/DP-based problem, and the other was a Two Pointers/DP solution to find the total number of good subarrays under some condition (which I unfortunately forgot).
With some time remaining, the interviewer asked theoretical questions about graphs. We then had a good discussion about Flipkart, their team, technologies, and the challenges they face. There were two interviewers present, with one observing, and I also had a good discussion with the observer at the end.
Round 3: Hiring Manager (HM) Round (45 min)
The interview began with introductions; the Hiring Manager shared a detailed introduction about himself, his experience at Flipkart, the technology used, and his team. I then gave a brief introduction about myself.
The interviewer shared a Google Doc link for a design problem: Design a calculator with basic functionalities (addition, subtraction, multiplication, division) that can store the last five operations and allow users to modify any stored operation. We discussed suitable data structures for this task, considering different options like doubly linked lists, vectors, and ultimately settling on a deque. We had an in-depth discussion about the challenges associated with each data structure choice (e.g., why a vector might not work). I then coded the solution using an object-oriented approach, and the interviewer was satisfied.
Next, we discussed a project I had worked on. I demonstrated my deployed project, which seemed to impress the HM, and he requested to see the code. I explained my approach, leading to a good conversation of over 20 minutes. We then moved on to another project.
Finally, we discussed HR-based questions, including achievements, moments of pride, instances of failure, and my internship experience (or lack thereof), particularly how I managed college requirements without an internship. This round was quite long, lasting about 1 hour and 20 minutes.
Conclusion
I was ultimately rejected. I believe my chances were likely fewer because I felt I messed up in the last round. It was scheduled so quickly, and I found it challenging to adjust, so things didn't go according to plan. However, I learned a lot from the HM round, even if the first two felt more straightforward. While the last round was a challenging experience, it highlighted areas for improvement, particularly in my soft skills.
Interview Questions (6)
There are 'N' gas stations along a circular route, where the amount of gas at station 'i' is 'gas[i]'. You have a car with an unlimited gas tank and it costs 'cost[i]' of gas to travel from station 'i' to its next station (i+1). You begin the journey with an empty tank at one of the gas stations. Return the starting gas station's index if you can travel around the circuit once in the clockwise direction, otherwise return -1.
Design a calculator with basic functionalities (addition, subtraction, multiplication, division) that can store the last five operations and allow users to modify any stored operation.
- Discuss achievements and moments of pride in your career/academic journey.
- Share instances of failure and what you learned from them.
- Explain your internship experience (or lack thereof) and how you handled academic requirements related to internships.
Preparation Tips
Based on my experience, here are some key takeaways for preparation:
- Always speak your mind during interviews, even if you think it might be wrong. Interviewers are there to help guide you. For example, in my first round, I was thinking about a graph solution for the second question, but the interviewer stopped me and hinted that there weren't multiple paths.
- It's perfectly fine to ask for time to think or frame your answer instead of staying silent. I always ask for a moment to gather my thoughts.
- The HR/HM rounds are not easy; prepare beforehand for common HR questions and be ready to discuss your projects in depth.
Summary
I interviewed for an SDE 2 Backend role at Flipkart in June 2024, completing several technical rounds including Machine Coding, Data Structures & Algorithms, and System Design, followed by a Hiring Manager discussion. I successfully cleared all interview stages and am currently awaiting a formal offer.
Full Experience
I received an email from a Flipkart recruiter on June 27th, asking about my availability for an SDE 2 interview on June 29th. Despite the short notice, I readily agreed, knowing the value of such an opportunity.
Round 1: Machine Coding Round - June 29th
This round involved all interviewees joining a single call. We were tasked with building a working console application. The Flipkart SDE 3 explained the problem and conducted a Q&A session from 9:30 AM to 10:00 AM, allowing us to clarify any doubts. We then had from 10:00 AM to 11:30 AM to build the application, remaining on the call throughout.
The core problem was to design a cache where a user could insert, fetch, and remove data. A key requirement was the ability to select the eviction policy at runtime. Examples of eviction policies provided included LRU (Least Recently Used) and TimeEviction. I successfully built a working application incorporating all the specified features.
Round 1.1: Machine Coding Evaluation - June 29th
Following the machine coding round, my code was evaluated. This session ran from 12:45 PM to 1:45 PM. I was asked to run my submitted code and explain my design approach. I had utilized the Strategy and Factory design patterns for the eviction policy feature, and I answered questions related to these patterns. The interviewer also asked me to demonstrate how I would add a new eviction policy to my existing design, aiming to assess the extensibility of my solution. I addressed all questions, and the interviewer seemed pleased with my design. Shortly after, I received a positive call from HR, confirming my progression.
Round 2: PSDS (DSA) - June 29th
This was a Data Structures and Algorithms round, scheduled from 2:30 PM to 3:30 PM, featuring two medium-level questions. The interviewer, an SDE 2 at Flipkart, was very supportive. The questions were:
- A Binary Tree problem, specifically Binary Tree Maximum Path Sum.
- A Binary Search problem, similar to Koko Eating Bananas.
I successfully answered both questions and received a call for the subsequent rounds.
Round 3: Design Round - June 30th
The design round, lasting from 12:20 PM to 1:20 PM, focused on a system design problem, covering both High-Level Design (HLD) and Low-Level Design (LLD). I was asked to design a URL shortener application and its API endpoints. The discussion also extended to designing for multiple data centers, scaling the database using sharding and partitioning, and improving system performance with technologies like Kafka, SQL vs. NoSQL considerations, and Redis. This round was satisfactory. The interviewer, a Principal Architect at Flipkart, primarily expected HLD discussions and related questions. I got a call for the HM round after this.
Round 4: HM Round - June 30th
My final round was with the Hiring Manager, from 2:00 PM to 3:00 PM, and was conducted by a Director of Engineering. This round focused on managerial and behavioral questions. I discussed my latest performance review, my favorite project I've worked on, and identified two people in my workplace whom I look up to. We also touched upon Flipkart's entry into quick commerce (the Zepto deal) and Walmart's acquisition of Flipkart. This round went well.
It's been almost six days since my last interview, and I haven't yet received a verbal offer from Flipkart. I've contacted HR twice, and each time I was told a recruiter would call by EOD, which hasn't happened. This concludes my interview experience for the Flipkart SDE 2 role.
Interview Questions (8)
Design a cache where a user can insert, fetch, remove data, and dynamically select the eviction policy at runtime. Eviction policies mentioned include LRU (Least Recently Used) and TimeEviction (based on a certain time duration).
Extend the previously designed cache system to add a new eviction policy, demonstrating the ease of integrating new features into the existing design. I discussed design patterns like Strategy and Factory.
A path in a binary tree is a sequence of nodes where each pair of adjacent nodes in the sequence has an edge connecting them. A node can only appear in the sequence at most once. The path does not need to pass through the root. The path sum of a path is the sum of the node's values in the path. Given the root of a binary tree, return the maximum path sum of any non-empty path.
Koko loves to eat bananas. There are n piles of bananas, the i-th pile has piles[i] bananas. The guard has gone and will come back in h hours. Koko can decide her eating speed of k bananas per hour. Each hour, she chooses some pile of bananas and eats k bananas from it. If the 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 eating all the bananas before the guard returns. Return the minimum integer k such that she can eat all the bananas within h hours.
Design a URL shortener application, including API endpoints. The discussion also covered High-Level Design (HLD) and Low-Level Design (LLD).
Discuss my latest performance review and its outcomes.
Describe my favorite project I have worked on, including details and my role.
Identify and discuss two individuals in my workplace whom I look up to and why.
Summary
I successfully interviewed for an SDE-1 position at Flipkart and received an offer after completing multiple rounds covering coding, data structures, algorithms, and a hiring manager discussion.
Full Experience
I applied for the SDE-1 role at Flipkart through a form circulated by HR on LinkedIn. My interview process consisted of four rounds.
Round 1: Online Test
This round was conducted on the SHL platform and lasted 90 minutes. It featured three coding questions, all based on graph and dynamic programming concepts. I received a selection mail after about 10 days, and it took another 10-12 days for the first interview round to be scheduled.Round 2: Problem Solving/Data Structures
This round had two specific coding questions. I solved the Symmetric Tree problem in about 15-20 minutes and the Maximal Square problem in approximately 30 minutes. I received an email on the same day informing me that I had cleared this round, and Round 3 was scheduled for the very next day.Round 3: Problem Solving/Data Structures
This round was tougher than the previous one and involved three questions. I spent a considerable amount of time discussing approaches for Minimum Number of Jumps to Reach End of an Array, moving from brute force to an optimized greedy solution. For Finding Square Root of a Number up to Given Precision Using Binary Search, the constraints were very high (n up to 1018). Initially, I gave a normal solution, but with the interviewer's supportive guidance, I realized binary search was the optimal approach and successfully solved it. The third question was Sliding Window Maximum, a standard problem I've solved many times. I was asked to provide the optimized approach directly and completed it in just 10 minutes.After a few hours, I received an email about an upcoming HM round on the same day, which was then postponed due to some work emergencies and happened the next day.
Round 4: Hiring Manager (HM) Round
This round lasted about 50 minutes. I was asked a variety of questions related to my internships, my favorite projects, and many behavioral questions. I focused on discussing my past experiences and projects in detail.After five days, I received the mail confirming my selection for the SDE-1 position.
Interview Questions (5)
Preparation Tips
My preparation involved solving medium and hard-level DSA questions on LeetCode. I focused on explaining solutions from brute force to optimized approaches and continuously communicating my thought process. For the managerial round, I made sure to thoroughly review my projects and internships.
Summary
I successfully navigated multiple rounds of interviews at Flipkart for an SDE-1 role, ultimately receiving an offer. The process included an online coding test, multiple problem-solving and data structures rounds, and a final hiring manager discussion.
Full Experience
I applied for the SDE-1 role at Flipkart through a form shared by HR on LinkedIn. My journey started with an online test, followed by several interview rounds.
Round-1 (Online Test):
This round, conducted on the SHL platform, consisted of three coding questions that were heavily based on graph and dynamic programming concepts. I had 90 minutes to complete them.
Round-2 (PS/DS Round):
After about 10-12 days, I received an email confirming my selection for the next round. This round, held the very next day, involved two specific coding problems. I managed to solve Symmetric Tree in about 15-20 minutes and Maximal Square in approximately 30 minutes.
Round-3 (PS/DS Round):
I got mail that I had cleared Round 1 and 2 on the same day, and Round 3 was scheduled for the following day. This round felt a bit tougher than the previous one, and three questions were asked. The first was Minimum Number of Jumps to Reach End of a Given Array, which took me a considerable amount of time as I discussed approaches from brute force to an optimized greedy solution. Next, I faced Find Square Root of a Number Upto Given Precision using Binary Search. The constraints were high (n was 10^18), and while I initially gave a normal solution, the interviewer was very supportive and helped me realize binary search was the optimal approach, which I then solved. The last question was Sliding Window Maximum, a standard problem I've solved many times. I was asked to directly provide the optimized approach, which I did in just 10 minutes.
Round-4 (HM Round):
A few hours later, I received an email for the Hiring Manager round, which was initially scheduled for the same day but got postponed to the next due to some work emergencies. This round lasted about 50 minutes and focused heavily on my internships, my favorite projects, and various behavioral questions.
Five days after the HM round, I received the exciting news of my selection!
Interview Questions (5)
Preparation Tips
My advice is to solve medium and hard-level DSA questions from LeetCode. Always go from brute force to an optimized approach, and communicate your thought process continuously. For the managerial round, thoroughly review your projects and internships.
Summary
I successfully navigated through multiple rounds for a Flipkart SDE-1 position, involving coding and behavioral interviews, ultimately receiving an offer.
Full Experience
I initiated my application for the SDE-1 role at Flipkart through an HR-floated form on LinkedIn. The interview process consisted of four rounds.
Round-1 (Online Test)
This round comprised 3 coding questions, with a duration of 90 minutes, conducted on the SHL platform. All questions were based on graph and dynamic programming concepts. I cleared this round and received an email notification after 10 days.
Round-2 (PS/DS Round)
Approximately 10-12 days after the initial application, my first technical round was scheduled. I was asked two data structures and algorithms questions. I solved "Symmetric Tree" in about 15-20 minutes and "Maximal Square" in about 30 minutes. I received an email confirming my progression to the next round on the same day, with Round 3 scheduled for the following day.
Round-3 (PS/DS Round)
This round felt a bit tougher than the previous one, featuring three questions. I spent considerable time on "Minimum Number of Jumps to Reach End", detailing my thought process from a brute force approach to an optimized greedy solution. For "Square Root with Given Precision", where N was up to 10^18, the interviewer provided helpful hints, leading me to realize the binary search approach. The final question was "Sliding Window Maximum", which I had solved multiple times before. I was asked to provide an optimized solution directly and completed it in just 10 minutes. Within a few hours, I received a mail for the Hiring Manager round, which was initially scheduled for the same day but postponed to the next due to emergencies.
Round-4 (HM Round)
The Hiring Manager round lasted around 50 minutes. The discussion primarily revolved around my past internships, my favorite projects, and numerous behavioral questions.
Five days after this round, I received the selection mail.
Interview Questions (5)
Preparation Tips
For my preparation, I focused on solving medium and hard-level Data Structures and Algorithms (DSA) questions from LeetCode. My approach was to always start with a brute-force solution and then iteratively optimize it, continuously communicating my thought process throughout. For the managerial/HM round, I thoroughly reviewed my projects and internships, preparing to discuss them in detail.
Summary
I successfully interviewed for an SDE-1 role at Flipkart, navigating through multiple technical rounds focused on data structures and algorithms, followed by a managerial discussion, ultimately securing an offer.
Full Experience
I initiated my application for the SDE-1 position at Flipkart through a form circulated by their HR on LinkedIn.
Round 1 (Online Test)
The first stage was an online test on the SHL platform, lasting 90 minutes. It comprised three coding questions, primarily focusing on graph and dynamic programming problems. I passed this round and received a selection email after about 10 days, with the subsequent technical rounds scheduled shortly thereafter.
Round 2 (PS/DS Round)
This round involved two problem-solving questions. I managed to solve both, dedicating about 15-20 minutes to the first and around 30 minutes to the second. I received confirmation of clearing this round on the same day, with Round 3 scheduled for the very next day.
Round 3 (PS/DS Round)
Three questions were posed in this round. For the first question, I spent considerable time articulating my thought process, moving from a brute-force solution to an optimized greedy approach. For the second, despite initially proposing a less optimal solution, the interviewer's supportive guidance led me to realize and implement a binary search approach, given the high constraints. The third question was a standard problem that I had practiced extensively, allowing me to directly present the optimized solution and complete it in just 10 minutes.
A few hours later, I received an email informing me that my Hiring Manager (HM) round would be on the same day, though it was later postponed to the next day due to some work emergencies.
Round 4 (HM Round)
The HM round lasted about 50 minutes. The discussion centered around my internships, my favorite projects, and several behavioral questions.
Approximately five days after the HM round, I received the good news of my selection.
Interview Questions (5)
Given an array of non-negative integers arr[], where arr[i] represents the maximum number of steps that can be made forward from that element, find the minimum number of jumps to reach the end of the array (starting from the first element). If an element is 0, then we cannot move through that element.
Preparation Tips
My primary advice for preparation is to diligently solve DSA questions from platforms like LeetCode. Always practice moving from a brute-force solution to an optimized one, and crucially, continuously communicate your approach during the interview. For the managerial round, ensure you thoroughly review your projects and internships to discuss them effectively.
Summary
I interviewed with Flipkart for an SDE-2 role in June 2024, successfully navigating machine coding, data structures & algorithms, and system design rounds. However, despite my performance, I was unfortunately ghosted by the HR team and received no further communication regarding my application.
Full Experience
Overview
I recently interviewed with Flipkart for an SDE-2 role in June 2024. The process involved several technical rounds, and I felt confident about my performance in each. However, the subsequent HR communication (or lack thereof) left me in an ambiguous situation.
Machine Coding Round
This round was quite extensive, lasting about 2.5 to 3 hours. My task was to design a movie review system with specific functionalities. I believe this round went exceptionally well as I was not only able to meet the core requirements but also implemented some optional features, which seemed to impress the interviewer.
Following this, I received a call the very next morning, inviting me to the subsequent round.
Problem Solving / Data Structures & Algorithms Round
Scheduled for June 10th, this round focused on standard Data Structures and Algorithms questions. While I don't recall both problems asked, one of them was a classic LeetCode problem, Path Sum II. I felt confident about my approach and solution.
Once again, I received a call the next morning to proceed to the Design Round.
Design Round
In this round, I was challenged to design Spotify. The discussion covered both Low-Level Design (LLD) and High-Level Design (HLD) aspects, along with comprehensive scalability discussions. I managed to address almost all the questions effectively, though I did momentarily forget to mention Elasticsearch as a potential solution for the search implementation. Despite that minor slip, based on my answers and the interviewer's reactions, I felt this round also went very positively.
Post-Interview Experience
This is where the process took an unexpected turn. Unlike the previous rounds, I did not receive a call the next day. I initially assumed there might be a delay, perhaps due to scheduling for the next stage with a Hiring Manager. However, weeks passed, and I received no further communication whatsoever—no invitation for another interview, no formal rejection, nor any update on the job status.
I have made numerous attempts to contact the recruiters via calls, emails, and texts over the past two weeks, but all my efforts have been met with silence. I even tried reaching out to my Design Round interviewer on LinkedIn for some insight, but unfortunately, I was ghosted there as well. This has been my first experience of this nature, and I'm quite perplexed and disappointed by the lack of closure.
Interview Questions (3)
Design a movie review system incorporating various functionalities. The candidate successfully implemented core and optional requirements.
Design the Spotify application, covering both Low-Level Design (LLD) and High-Level Design (HLD) aspects, including discussions on scalability. Key areas included overall architecture, data storage, and search mechanisms.
Summary
I successfully interviewed for an SDE-1 position at Flipkart as a 2024 graduate, navigating through an online test, two problem-solving rounds, and a hiring manager round, ultimately receiving a selection offer.
Full Experience
I applied for the SDE-1 role at Flipkart through an HR form circulated on LinkedIn. My interview process began with an online test that comprised three coding questions. After a waiting period of about 10-12 days, I received a selection email, and my first Problem Solving/Data Structures (PS/DS) round was scheduled. In this round, I was asked two coding questions: Symmetric Tree and Maximal Square. I managed to solve Symmetric Tree in about 15-20 minutes and Maximal Square in approximately 30 minutes. Following this, I quickly moved to the next PS/DS round, which took place the very next day. This round involved three questions: Minimum Number of Jumps to Reach End of a Given Array, Find Square Root of Number Up to Given Precision Using Binary Search (where the interviewer helped guide me towards the binary search approach, given the high constraints), and Sliding Window Maximum. I received an email within a few hours confirming I had cleared this round and would proceed to the Hiring Manager (HM) round. This round was initially postponed due to work emergencies but happened the following day, lasting about 50 minutes. It heavily focused on my internships, my favorite projects, and numerous behavioral questions. Five days later, I received my selection email, confirming the offer.
Interview Questions (5)
Preparation Tips
My preparation primarily involved solving Data Structures and Algorithms (DSA) questions on LeetCode. I focused on understanding problems by first developing brute-force solutions and then optimizing them. Throughout my problem-solving, I made sure to communicate my thought process clearly. For the hiring manager round, I thoroughly reviewed my projects and internships to be prepared for related questions. I applied for this role through an HR form shared on LinkedIn.
Summary
I successfully cleared 4 rounds of interviews for the SDE-1 position at Flipkart as a 2024 graduate, which included an online test, two problem-solving rounds, and a hiring manager discussion, ultimately leading to a selection.
Full Experience
I successfully interviewed for the SDE-1 role at Flipkart as a 2024 graduate, which involved four distinct rounds, culminating in a selection offer.
Round-1 (Online Test): This round consisted of three coding questions. I received the selection mail for this round after 10 days, following which it took almost 10-12 days for the first round to actually happen.
Round-2 (PS/DS Round): This round took place the day after I cleared Round-1. Two questions were asked:
- Symmetric Tree: I solved this question in about 15-20 minutes.
- Maximal Square: I dedicated approximately 30 minutes to solving this problem.
On the very same day, I received a mail confirming that I had cleared both Round-1 and Round-2.
Round-3 (PS/DS Round): This round also happened the next day and involved three questions:
- Minimum Number of Jumps to Reach End: I spent a considerable amount of time on this, discussing approaches from brute-force to an optimized greedy solution.
- Find Square Root of Number Up to Given Precision Using Binary Search: The constraints for this problem were high. Initially, I was giving a normal solution, but the interviewer was very supportive and helped me realize that binary search was the appropriate method, which I then solved.
- Sliding Window Maximum: This is a standard problem that I had solved many times. I was asked to directly provide the optimized approach, which I did in just 10 minutes.
A few hours after this round, I received an email informing me about an upcoming HM (Hiring Manager) round scheduled for the same day. However, it was postponed due to some work emergencies and eventually happened the following day.
Round-4 (HM Round): This round lasted around 50 minutes. I was primarily asked questions related to my internships, my favorite project, and numerous behavioral questions.
Finally, I received the selection mail after 5 days.
Interview Questions (5)
Given an array of integers where each element represents the max number of steps that can be made forward from that element. Write a function to return the minimum number of jumps to reach the end of the array (starting from the first element). If an element is 0, then we cannot move through that element.
Preparation Tips
My preparation was centered around solving a wide array of DSA questions, primarily from LeetCode. I made it a point to always start by considering a brute-force approach and then iteratively working towards a more optimized solution. Throughout my problem-solving process, I continuously communicated my thought process and approach to simulate interview conditions. For the hiring manager round, I thoroughly reviewed all my projects and internship experiences to discuss them effectively. I initially applied for this role through a form that was circulated by HR on LinkedIn.
Summary
I recently received an offer for an SDE-2 role at Flipkart in Bangalore after a comprehensive interview process that concluded in April 2024. My journey spanned multiple technical and managerial rounds, thoroughly testing my skills in machine coding, data structures, system design, and techno-managerial aspects.
Full Experience
My interview journey for the SDE-2 role at Flipkart began in the first week of March 2024, culminating in an offer in April. I have 2.6 years of experience, and the entire process consisted of five rounds.
Round 1: Machine Coding/LLD (90 minutes)
This round was split into 30 minutes for problem statement discussion and 1 hour for coding. The task was to design an in-memory vehicle rental service, similar to Zoomcar, specifically for a single city with multiple branches. Key functional requirements included:
- Managing multiple branches, each with a limited number of different vehicle types.
- Booking vehicles for predefined 1-hour slots on a single day (00-59).
- Fixed pricing per vehicle.
- Features for onboarding new branches and vehicles.
- Renting a vehicle for a time slot and type (defaulting to the lowest price).
- Displaying available vehicles for a given branch.
The system had to be CLI-driven and utilize in-memory data structures, prohibiting any database usage. I was given 1 hour to code. My approach involved analyzing requirements to identify entities, then creating Model/POJO and DTO classes. I developed services and controllers for user interactions, prioritizing loose coupling and dependency injection. For persistence, I relied on Java Collections, ensuring thread safety (though optional). I implemented a minimal exception hierarchy and global exception handler. To optimize operations like vehicle booking (Requirement 3), I considered using a min-heap, accepting an overhead on vehicle insertion queries. For displaying available vehicles (Requirement 4), I overrode the toString method. I also applied design patterns like Factory (for vehicle generation), Strategy (for pricing), and Singleton (for managing thread-safe instances). Post-coding, I demoed the system with various use cases and answered questions on design patterns used, schema design, and database storage/query patterns.
Round 2: DSA/PSDS (60 minutes)
This round involved two LeetCode Medium problems.
- The first problem was an overlapping interval scenario, which I approached using a line sweep algorithm.
- The second problem was a standard tree question: "Print Level order traversal of a binary tree using Given Inorder and Preorder Traversal". I was required to provide a clean, compilable solution and explain my intuition clearly. I leveraged concepts like Sorting, TreeSet, Binary Trees, and Recursive Subproblems. Having solved around 120 medium problems on LeetCode, I found this round manageable.
Round 3: Design (LLD+HLD) (60 minutes)
I was asked to design BookMyShow. I began by gathering functional requirements and mapping out a user journey, which included searching for shows, selecting screenings and seats, proceeding to checkout, completing payments, and viewing tickets. I then designed APIs for each step, such as GET /shows/queryKeyword, GET /shows/selectSeats, POST /shows/confirm (which would acquire soft row locks), POST /shows/checkout, and GET /bookings/mybookings. I detailed how different objects would interact with these APIs, and how operations would be handled internally down to the database level. Critical discussions included managing concurrent seat bookings, failure scenarios, data store choices, race conditions, and resource contention. For the High-Level Design (HLD) part, I crunched numbers for user base, bandwidth, traffic, and storage requirements. I also discussed Non-Functional Requirements (NFRs), sharding strategies, load balancing, and caching mechanisms.
Round 4: Techno-Managerial Round (60 minutes)
This round was with a Senior Engineering Manager and focused on my profile and past experience. I was asked to deep-dive into a specific project, discussing its problem statement, technical solution, business case, coding, and deployment. We explored alternative solutions, potential improvements, and enhancements. Since it was a microservices project, I explained its entire ecosystem. Questions also covered NFRs, high-level architecture, DevOps practices, pipelines, and deployment choices. My mention of Redis led to questions on Redis clustering and replication. Additionally, I faced scenario-based technical and behavioral questions, focusing on incident/bug handling, downtime issues, and ownership. The interviewer made me comfortable, allowing me to articulate my thoughts freely. The round concluded with a discussion about my career progression and role development.
Round 5: HM Connect
This was a casual discussion with the Hiring Manager, focusing on the technical ecosystem, Lines of Business (LOBs), team structure, and culture fitment. I asked several follow-up questions, and the manager provided clear insights into the organization's scale and engineering culture. We also touched upon individual progression and benefits.
Interview Questions (3)
Design a vehicle rental service similar to Zoomcar. Key functional requirements include:
- Rental service has multiple branches throughout the city. Assume one city for now.
- Each branch has a limited number of different types of vehicles.
- Each vehicle can be booked with a predefined price. For simplicity, assume fixed pricing.
- Each vehicle can be booked in multiples of 1-hour slots each. For simplicity, assume slots of a single day (00-59, e.g., 9 am-10 am). No past bookings should be allowed.
- Onboard a new branch with an available vehicle.
- Onboard new vehicle(s) of existing type to a particular branch.
- Rent a vehicle for a time slot and a vehicle type (lowest price as the default choice, extendable to any other strategy).
- Display available vehicles for a given branch.
Design a system like BookMyShow. I started by gathering functional requirements, took them through a user journey to consolidate system behavior, and identified entities for a class diagram, justifying associations and use cases. The sample user journey involved searching for shows, selecting screening/theatre, selecting seats, proceeding to checkout (potentially adding services), completing checkout, and viewing generated tickets under 'my bookings'. I created APIs for these scenarios (GET /shows/queryKeyword, GET /shows/selectSeats, POST /shows/confirm, POST /shows/checkout, GET /bookings/mybookings). I discussed how objects interact with APIs, internal operations up to the DB, handling concurrent seat bookings, failure scenarios, data store choices, race conditions, and resource contention. For HLD, I crunched numbers for user base, bandwidth, traffic, and storage, and discussed NFRs, sharding, load balancing, and caching.
Preparation Tips
I found the content across GeeksForGeeks, LeetCode, and YouTube to be sufficient for preparation. I highly recommend taking mock system design interviews before the actual ones, as I felt there was a lot to learn in my first design rounds.
Resources Used:
- DSA:
- LLD:
- https://refactoring.guru/
- I also used LLMs to compare and evaluate my solutions on past Machine Coding questions.
- HLD:
- https://takeuforward.org/system-design/complete-system-design-roadmap-with-videos-for-sdes
- https://youtu.be/1r9bPisYaOQ?si=AsO-WNGR7TKMv_tD
- https://www.linkedin.com/newsletters/systems-that-scale-6879018679527321600/
- https://www.linkedin.com/newsletters/curious-engineer-7140976336772263936/
- https://bytebytego.com/
- https://www.youtube.com/@IGotAnOffer-Engineering/featured
Summary
I successfully navigated the Flipkart SDE-1 off-campus hiring process in early 2024, which included an online assessment, two challenging Data Structures & Algorithms rounds, and a final Hiring Manager discussion. Despite the rigorous nature of the interviews, I found the overall experience positive and ultimately received an offer.
Full Experience
Background
I am a 2023 CSE graduate from a Tier 2 college, with previous experience as an SDE intern at Amazon for 6 months. I applied off-campus for an SDE-1 position at Flipkart in February/March 2024, sending out numerous applications without a referral. I believe my Amazon internship played a significant role in getting shortlisted for the Online Assessment (OA).
Online Assessment: 3 Questions, 90 mins
The OA consisted of three questions which I found slightly difficult, primarily due to their confusing/poor wording. I managed to pass approximately 70% of the test cases overall.
PS/DS Interview 1: 45 mins
This round was solely focused on Data Structures and Algorithms, with no theoretical questions. The expectation was to explain all possible approaches in increasing efficiency, write code on a whiteboard, debug it, dry run, and thoroughly discuss the time and space complexity. I made sure to follow the advice from Flipkart's SDE Interview Guide on their website.
PS/DS Interview 2: 1 hour
This was another dedicated Data Structures and Algorithms round, focusing on more complex problem-solving.
Hiring Manager/Culture Fit Round: 30 mins
This round felt more like a discussion than a typical interview. I was prepared to showcase qualities relevant to Flipkart. We started with introductions, then discussed my reasons for choosing Flipkart over other companies, what I liked and disliked about their app/website, various situational questions, feedback I had received from my previous manager, what I would change about my previous company, and what would make me consider leaving a job.
Overall Thoughts & Feelings
The entire interview process was quite rigorous, certainly more challenging than my Amazon intern interview. I found all the interviewers to be very pleasant, well-spoken, and encouraging. They clearly explained their expectations, were happy to answer my questions, and allowed me to make mistakes and correct them without feeling judged. None of them spoke down to me, which was a refreshing change compared to some previous startup interviews. The process was also very fast, with all interviews conducted on continuous days, starting just four days after the OA. I received the result on the same day as the HM round.
Interview Questions (13)
Given a list of strings, where each string consists of '1's and '0's. You are also given two integers, X and Y. Determine the maximum number of strings you can choose from the list such that the total count of '1's across all chosen strings is less than X, and the total count of '0's across all chosen strings is less than Y.
Given an array, split it into subarrays where each subarray must either have a size of 1 or its sum must be at least K. This problem typically involves 2-dimensional dynamic programming.
Given a list of jobs, each with an associated deadline and profit. The goal is to select a subset of jobs to perform such that each job takes one unit of time, only one job can be performed at a time, and the selected jobs are completed by their respective deadlines, maximizing the total profit.
You have an undirected, connected graph of n nodes labeled from 0 to n - 1. You are given a graph where graph[i] is a list of all the nodes connected with node i by an edge. Return the length of the shortest path that visits every node in the graph. You may start and stop at any node, and you may revisit nodes multiple times and reuse edges.
Explain your reasons for wanting to join Flipkart over other companies.
What aspects do you like and dislike about the Flipkart app or website?
Respond to hypothetical scenarios to demonstrate problem-solving abilities, decision-making, and interpersonal skills in a professional context.
What constructive feedback did your previous manager give you, and how did you address it?
If you could, what would you change or improve about your previous company?
What factors or circumstances would lead you to consider quitting or leaving a job?
Preparation Tips
Tips / Tricks / Advice that helped me:
- Practice asking questions: The type of questions you ask can reveal a lot about your fundamental understanding and skillset. I practiced this by doing mock interviews with friends.
- Structured approach to DSA: In DSA rounds, I made it a point not to rush. I would start by clearly writing down the input, output, and constraints in my own words as soon as I read the problem. Misreading a question is a significant mistake in these interviews.
- Articulate your thought process: I focused on explaining my thought process step-by-step, including the observations I made, the methods I considered and eliminated, and the data structures I thought of (along with their pros and cons). Hypothesizing out loud was a crucial part of my strategy.
- Focus on conceptual understanding: I believe you can't succeed by simply memorizing code or algorithms, even if you solve a thousand problems. It's essential to be able to visualize solutions and truly understand why something works and when to use specific approaches.
- Problem-solving resources: Prior to the Online Assessment, I had completed about 100 problems from NeetCode 150. In the four days between the OA and Interview 1, I worked through Striver's SDE Sheet, which I found to be an excellent resource for understanding every concept needed for the interviews.
Summary
I successfully interviewed for an SDE-1 position at Flipkart through an off-campus drive in October 2023 in Bengaluru and received an offer. The interview process consisted of three rounds focusing on problem-solving, data structures, and managerial assessment.
Full Experience
My off-campus interview experience for an SDE-1 role at Flipkart in Bangalore started with a pre-screening round focused on problem-solving and data structures. I am a new graduate with a B.Tech in IT from a Tier 1 college. The process comprised three rounds.
Pre-screening Round 1 (1 hour) - Problem Solving/Data Structures
This round had two interviewers. After initial introductions, I was given two LeetCode problems:
- Jump Game II: I was expected to solve this problem with an O(n) time complexity.
- Put Marbles in a Bag: This was another LeetCode problem I had to solve.
Pre-screening Round 2 (45 minutes) - Problem Solving/Data Structures
In the second technical round, after introductions, I faced two more problems:
- A custom problem where I had to determine connectivity between N computers given connections and answer q queries.
- Binary Tree Maximum Path Sum: This was a standard LeetCode problem.
Hiring Manager Interview (30 minutes)
The final round was with the Hiring Manager. This round was more about conceptual knowledge and behavioral aspects:
- Questions on Computer Networking topics, specifically the OSI Model and Network Layer.
- Detailed inquiries about my Internship Experience, focusing on API calls (GET and POST methods) as mentioned in my resume.
- Motivations for joining Flipkart: "Why Flipkart?"
- Discussion about my strengths and weaknesses.
- An explanation of my career transition from my father's business venture to pursuing an SDE role, addressing a two-month period of uncertainty.
I successfully navigated all rounds and received an offer.
Interview Questions (9)
Given an array of non-negative integers nums, you are initially positioned at the first index. Each element in the array represents your maximum jump length at that position. Your goal is to reach the last index in the minimum number of jumps. You can assume that you can always reach the last index. I was expected to solve this problem with an O(n) time complexity.
You have k bags and n marbles labeled from 0 to n-1. You are given an integer array weights of length n, where weights[i] is the weight of the i-th marble. You are also given an integer k. Divide the n marbles into k bags. The i-th bag contains weights[j] for j from start_i to end_i (inclusive), where start_i <= end_i. The score of a bag is weights[start_i] + weights[end_i]. The total score is the sum of scores of all k bags. You need to return the minimum possible difference between the maximum and minimum total score among all possible divisions. This was a LeetCode problem I had to solve.
I was given a problem involving N computers numbered from 1 to N. Some computers are connected in the form of an array connections, where connections[i] = [u, v] represents an undirected edge from node u to node v. I needed to solve q queries. Queries were given in the form of an array queries, where each query is [u, v]. For each query, I had to determine if I could reach v from u or vice versa, and output true or false accordingly.
A path in a binary tree is a sequence of nodes where each pair of adjacent nodes in the sequence has an edge connecting them. A node can only appear in the sequence at most once. Note that the path does not need to pass through the root. The path sum is the sum of the node's values in the path. Given the root of a binary tree, return the maximum path sum of any non-empty path. The interviewer presented this LeetCode problem.
I was asked general questions on Computer Networking topics, specifically focusing on the OSI Model and Network Layer.
The interviewer inquired about my internship experience, with a specific focus on my work with API calls, including GET and POST methods, as documented in my resume.
I was asked about my motivations for choosing Flipkart and why I wanted to join the company.
I was asked to discuss my strengths and weaknesses.
I had to explain my transition from my previous venture with my father's business to my current path, clarifying my decision to pursue an SDE role after a period of uncertainty.
Summary
I recently interviewed at Flipkart for an SDE 2 role and was given a machine coding challenge to build an appointment booking system for doctors and patients.
Full Experience
During my SDE 2 interview at Flipkart, I was presented with a machine coding round named FLIPMED. The core task was to design and implement an application that allows patients to connect with doctors and book appointments. The system needed to manage time slots, doctor availability, patient registrations, and appointment bookings/cancellations. Key features included registering doctors with specialties, doctors declaring their 60-minute slot availabilities, and patients searching for and booking appointments based on specialty. Patients could book multiple appointments but not with different doctors in the same time slot. Both parties also needed to view their scheduled appointments. The problem also included bonus requirements such as appointment cancellation and implementing different ranking strategies for displaying available slots and doctors, allowing for future extensions like doctor ratings. I was instructed to use in-memory data structures, avoid a UI, and demonstrate functionality through a driver class with test cases. The code was expected to be modular, readable, extensible, testable, and have proper error handling.
Interview Questions (1)
Machine Coding Round: FLIPMED
Description:
We are required to build an app that lets patients connect to doctors and book appointments. The day is divided into time slots of 60 mins each, starting from 9 am to 9 pm. Doctors can login to the portal and declare their availability for the given day in terms of slots. Patients can book appointments/ cancel existing appointments. For simplicity you can assume that the doctors’ availability is declared for that particular day only.Features:
- A new doctor should be able to register, and mention his/her speciality among (Cardiologist, Dermatologist, Orthopedic, General Physician)
- A doctor should be able to declare his/her availability in each slot for the day. For example, the slots will be of 60 mins like 9am-10am, 11am-12pm..
- Patients should be able to register. Patients should be able to search available slots based on speciality. Any order of slots is okay for viewing to patients.
- Patients should be able to book appointments with a doctor for an available slot. A patient can book multiple appointments in a day. A patient cannot book two appointments with two different doctors in the same time slot.
- A patient/doctor should be able to view his/her booked appointments for the day.
Bonus requirements:
- Patients can also cancel an appointment, in which case that slot becomes available for someone else to book.
- Different ranking strategy - use rating of doctor as a strategy to display a list of available doctors for a given specialization.
- The slots should be displayed in a ranked fashion. Default ranking strategy should be to rank by start time. But we should be able to plugin more strategies like Doctor’s rating etc in future.
Other Notes:
- Do not use any database or NoSQL store, use in-memory data-structure for now.
- You are free to use any language of your choice.
- Do not create any UI for the application.
- For demo purposes, write a driver class which will execute all the commands at one place in the code and have test cases to test multiple users.
- Work on the expected output first and then add good-to-have features of your own.
- Please prioritize code compilation, execution and completion.
Expectations:
- Make sure that you have working and demonstrable code.
- Make sure that code is functionally correct.
- Code should be modular and readable.
- Separation of concern should be addressed.
- Code should easily accommodate new requirements with minimal changes.
- Code should be easily testable.
- Code should have proper error handling
Sample Test cases:
The input/output need not be exactly in this format but the functionality should remain intact
i: input
o: output
i:registerDoc -> Curious-> Cardiologist
o: Welcome Dr. Curious !!
i: markDocAvail: Curious 9:00-10:30
o: Sorry Dr. Curious slots are 60 mins only
i: markDocAvail: Curious 9:00-10:00, 12:00-13:00, 16:00-17:00
o: Done Doc!
i:registerDoc -> Dreadful-> Dermatologist
o: Welcome Dr. Dreadful !!
i: markDocAvail: Dreadful 9:00-10:00, 11:00-12:00, 13:00-14:00
o: Done Doc!
i: showAvailByspeciality: Cardiologist
o: Dr.Curious: (9:00-10:00)
o: Dr.Curious: (12:00-13:00)
o: Dr.Curious: (16:00-17:00)
i: registerPatient ->PatientA
o: PatientA registered successfully.
i: bookAppointment: (PatientA, Dr.Curious, 12:00)
O: Booked. Booking id: 1234
i:showAvailByspeciality: Cardiologist
o: Dr.Curious: (9:00-10:00)
o: Dr.Curious: (16:00-17:00)
i: cancelBookingId: 1234
o: Booking Cancelled
i: showAvailByspeciality: Cardiologist
o: Dr.Curious: (9:00-10:00)
o: Dr.Curious: (12:00-13:00)
o: Dr.Curious: (16:00-17:00)
i: bookAppointment: (PatientB, Dr.Curious, 12:00)
o: Booked. Booking id: 5678
i:registerDoc -> Daring-> Dermatologist
o: Welcome Dr. Daring !!
i: markDocAvail: Daring 11:00-12:00 14:00-15:00
o: Done Doc!
i: showAvailByspeciality: Dermatologist
o: Dr.Dreadful: (9:00-10:00)
o: Dr.Dreadful: (11:00-12:00)
o: Dr.Daring: (11:00-12:00)
o: Dr.Dreadful: (13:00-14:00)
o: Dr.Daring:(14:00-15:00)
i: bookAppointment: (PatientF, Dr.Daring, 11:00)
o: Booked. Booking id: 5587
i: bookAppointment: (PatientA, Dr.Curious, 12:00)
o: Booked. Booking id: 5678
i: bookAppointment: (PatientF, Dr.Curious, 9:00)
o: Booked. Booking id: 5280
i: bookAppointment: (PatientC, Dr.Curious, 16:00)
o: Booked. Booking id: 5701
i: showAvailByspeciality: Cardiologist
o: Dr.Curious: No slots available
i: bookAppointment: (PatientD, Dr.Curious, 16:00, waitlist=true)
o: Added to the waitlist. Booking id: 5710
i: cancelBookingId: 5701
o: Booking Cancelled
o: Booking confirmed for Booking id: 5710
i: showAppointmentsBooked(PatientF)
o: Booking id: 5280, Dr Curious 9:00
o: Booking id: 5587 , Dr Daring 11:00
Summary
I recently interviewed for the Software Development Engineer 1 position at Flipkart in Bengaluru in November 2023. After three challenging rounds, I was successfully selected for the role.
Full Experience
Hey Everyone, I'm Apreksha Mathur. I'm excited to share my interview experience for the Software Development Engineer 1 role at Flipkart. You can connect with me on LinkedIn.
My interview process consisted of three rounds:
Round 1 (PS/DS1)
This round lasted an hour. The interviewer introduced himself, and then I introduced myself. Following that, I was asked to solve two programming questions:Round 2 (PS/DS2)
This round took place two days after the first one and involved two interviewers. We started with introductions, and then I was given two more problems to solve:For both questions in this round, the interviewers delved into various approaches, emphasizing how to minimize time and space complexity. They also varied the questions slightly to test my understanding. This round was scheduled for an hour but extended by 45 minutes.
Round 3 (Hiring Manager)
The final round was with the Hiring Manager and occurred the day after Round 2. Although scheduled for 30 minutes, it lasted an hour. After introductions, we discussed several topics:- My projects: I talked about the projects I've worked on, the tech stacks I used, and the structural approaches I followed.
- Team-based projects: The manager asked general questions regarding my experience with team projects.
- Why Flipkart: I explained my motivations and reasons for wanting to join Flipkart.
- Why leave my previous company: I discussed my reasons for seeking a new opportunity.
Verdict – Selected
I am thrilled to share that I received an offer!Tips for Future Candidates:
I found it helpful to consider the interview as a discussion rather than a high-pressure examination. This mindset helped me feel more at ease and enabled me to think of more approaches without feeling pressured.
This was not via diversity hiring; I received a direct interview call. Thank you everyone, and have a nice day!
Interview Questions (8)
Discussion about my past projects, the tech stacks I utilized, and the architectural structures I followed in their development.
General questions regarding my experience working in teams and my approach to collaborating on projects.
Discuss my motivation and reasons for wanting to join Flipkart.
Discuss my reasons for leaving my previous company.
Summary
I interviewed at Flipkart for an SDE2 Backend role in August 2023. The entire process was fast, taking only a week from application to offer acceptance.
Full Experience
I interviewed at Flipkart for an SDE2 Backend role in August 2023. The entire process was quite fast, taking just one week from application to offer acceptance.
Application Process
I applied through a referral after spotting the job posting on their careers page. My friend of a friend helped with the referral, and the very next day, HR called me to inform me that my resume had been shortlisted. They explained the full interview process, emphasizing that this position needed to be closed quickly, which meant there wasn't much time for preparation.
The interview consisted of four rounds:
- Round 1: Machine Coding
- Round 2: Data Structure and Algorithm / Problem Solving
- Round 3: High-Level Design (HLD) and Low-Level Design (LLD)
- Round 4: Hiring Manager
Interview Process
Round 1 - Machine Coding
This round was scheduled the day after my resume was shortlisted. It lasted 2.5 hours, broken down into 30 minutes for problem explanation and clarification, 1.5 hours for coding, and 30 minutes for code walkthrough and inspection. During the problem explanation phase, I made sure to clarify all potential use cases. The problem involved 6-7 entities, and I focused on writing modular code with proper error handling and logging, ensuring all expected cases worked.
In the code evaluation segment, the interviewer probed my thought process behind each design decision. It was crucial that my code was runnable and easy to debug, as they asked me to implement a new feature, and my code allowed for minimal changes. I received strong positive feedback within 15 minutes of the interview.
Round 2 - DSA / Problem Solving
This 1-hour round took place the day after Round 1 and involved two DSA problems. I successfully solved the first problem with running code and provided a working solution for the second, discussing further optimizations. This resulted in "Good hire" feedback.
Round 3 - Design Round (LLD & HLD)
Again, this round was scheduled for the very next day. A popular design problem was presented. I discussed the database schema, the high-level design encompassing all services and their responsibilities, and argued why a microservice architecture would be preferable over a monolith for the given use case. We also covered concurrency issues and their handling.
The interviewer delved deeply into my knowledge, asking in-depth questions about Redis, such as how its cluster scales, how replication works internally, what happens during failures, how to prevent them, and how to ensure consistency. Similar detailed questions were posed regarding MongoDB. The final 15 minutes were dedicated to discussing my current company project, its HLD and LLD, my major contributions, tools used, and how scalability and load testing were handled. I received "Strong hire" feedback for my performance, especially on the HLD questions.
Round 4 - Hiring Manager
This round began with a basic introduction and a discussion of my current projects, focusing on my major contributions and their impact on the product. Following standard HM questions, I used the remaining 25 minutes (and even an extra 5 minutes past the scheduled end) to ask extensively about the team, its structure, system architecture, and how teams collaborate. The HM was very patient and happy to answer all my inquiries. I received "Strong hire" feedback from this round as well.
The HR called me the very next day to confirm my qualification and informed me that they were rolling out the offer. I received and accepted the offer by the end of the day.
Interview Questions (2)
Explain how a Redis cluster is scaled, how replication works within it, what happens in case of failure, how failures can be prevented, and how consistency is ensured in a Redis environment.
Discuss how MongoDB clusters are scaled, how replication is managed, what strategies are used to handle failures, and how data consistency is maintained.
Preparation Tips
Due to the fast-tracked nature of the hiring process, I did not have dedicated time for specific preparation. I relied primarily on my existing knowledge and experience in backend development, distributed systems, and problem-solving.
Summary
I successfully cracked the Flipkart SDE-1 off-campus interview process, which consisted of a machine coding round, a data structures and algorithms round, and a manager interview.
Full Experience
I successfully interviewed for the SDE-1 role at Flipkart through an off-campus drive I found via LinkedIn. My interview process was structured into three main rounds, culminating in an offer.
Round 1: Machine Round - Bowling Alley
This round was designed to assess my object-oriented programming (OOPs) concepts and language proficiency, focusing on my ability to write modular and well-structured code. The problem presented was to design a scoring system for a bowling alley.
I was provided with all the specific rules, including how to handle strikes and spares. My task was to calculate the score based on the pins knocked down and to correctly incorporate bonus scores for strikes and spares. The evaluation criteria for this round were stringent:
- Demo-able code
- Functional correctness
- Code readability
- Usage of design patterns, where applicable
- Language proficiency
- Parameterized code (rather than hardcoded values)
- Thorough testing
- Proper exception handling
Round 2: Data Structures & Algorithms Round
This round began with a brief introduction, and the interviewer immediately informed me that I would be given two questions to solve within one hour. The approach suggested was to first articulate a naive or brute-force solution, and then progressively optimize it.
The two problems I was asked were:
Round 3: Manager Interview
The final round was a manager interview, which focused on my professional experience, technical background, and motivations.
The questions covered were:
- An explanation of my current company, including drawing an architectural diagram of how its systems operate.
- A detailed description of my team and my specific role within it.
- Discussion about the technologies I am currently working on.
- My reasons for wanting to join Flipkart.
- My motivations for wanting to leave my current company.
My overall verdict after these rounds was SELECTED!
Interview Questions (6)
I was asked to design a bowling alley system. The problem involved implementing OOPS concepts and writing modular code. I had to calculate the score based on the pins knocked down, considering rules for strikes and spares, and incorporating bonus scores. The system needed to be demo-able, functionally correct, readable, use design patterns where applicable, demonstrate language proficiency, use parameterized code, include testing, and handle exceptions.
Given an m x n integer matrix, if an element is 0, set its entire row and column to 0's. You must do this in-place.
There is a car with capacity capacity that drives from initial location to final location. You are given the trips array where trips[i] = [numPassengers_i, from_i, to_i] indicates that the i-th trip has numPassengers_i passengers and the trip starts from from_i and ends at to_i. The locations are given as the number of kilometers from 0. Return true if it is possible to pick up and drop off all passengers for all the given trips, or false otherwise.
I was asked to explain my current company's workings and draw an architectural diagram illustrating how things function. Additionally, I had to describe my team and my specific role within it, as well as the technologies I was working on.
I was asked about my motivation to join Flipkart.
I was asked about my reasons for wanting to leave my current company.
Preparation Tips
To prepare for the Flipkart interview, I focused on several key areas:
General Programming Skills:
- I ensured I had a good hands-on understanding of my chosen programming language.
- I thoroughly revised OOPS concepts, making sure I understood all the pillars and their practical applications.
- I also reviewed basic subjects like DBMS, OOPS, and OS. Computer Networks (CN) was considered optional but good to know.
Machine Coding Round:
For the machine coding round, I referred to several resources from workat.tech:
- What is a Machine Coding Round?
- How to Prepare for Machine Coding Round?
- How to Ace Machine Coding Round?
- How to Practice for Machine Coding Round?
- The main workat.tech Machine Coding section.
Data Structures & Algorithms:
My approach for DS&A involved:
- Starting with Striver's SDE Sheet (link here) to get a broad understanding of important topics.
- After gaining a general idea, I would pick a topic, search for problems on LeetCode, and start with easy questions. Once comfortable, I would progress to medium and then hard difficulty problems within that topic.
- I also found a helpful post by Chandan Aggarwal on LinkedIn regarding consistency in problem-solving, which proved useful.
I wish everyone the best for their future interviews and am open to connecting on LinkedIn for any assistance.
Summary
I recently interviewed for an SDE 2 role at Flipkart after being approached by a recruiter. My interview process included machine coding, an algorithmic round with an external agency, a low-level design round, and a final hiring manager discussion, which culminated in an offer.
Full Experience
I was recently contacted by a recruiter from Instahyre for an SDE 2 position at Flipkart. My interview journey started with a Machine Coding round that lasted 90 minutes for coding and 30 minutes for a demo. The task was to build a property booking site, similar to Magicbricks or Housing.com. I had to implement core features such as adding new properties for sale, allowing users to view their listings, shortlisting interesting properties, and incorporating search/sort functionalities based on criteria like price range and location. It was crucial to demonstrate a working solution, cover all requirements, write extensible code using design patterns, and handle edge cases.
Next, I had a Coding Round for 60 minutes, conducted by Interview Vector. I faced one medium-level and one hard-level LeetCode problem. I successfully provided a complete solution and code for the medium problem, which involved Binary Search. For the hard problem, focused on AVL Trees, I presented my approach and partial code.
The third round was an LLD (Low-Level Design), also 60 minutes and conducted by Interview Vector. I was tasked with designing a parking lot. My approach involved gathering requirements, then presenting a detailed design for an MVP, including all necessary entities, interfaces, ensuring separation of concerns, utilizing design patterns where appropriate, and outlining the detailed flow logic.
Finally, I proceeded to the Hiring Manager round, which surprisingly concluded in about 30 minutes, instead of the allotted 60. This round primarily focused on discussing my past projects and professional experience. I also answered standard behavioral questions, such as my motivations for joining Flipkart and how I manage conflicts in a work environment. Ultimately, I received an offer from Flipkart.
Interview Questions (4)
Develop a property booking site like magicbricks, housing.com etc. Basic features included the following:
- User can add a new property to the site for sale.
- User can view the list of properties added by him.
- User can select a list of interesting properties available for sale and shortlist them in a list.
- Search/sort feature to search/sort property based on price range, location etc.
- Once property is sold, we need to stop showing the property in saleable properties.
Need to focus on covering all the requirements, working solution, extensible code with design patterns and handle all edge cases.
Design a parking lot. Had to gather all the requirements and present a design for MVP with all entities, interfaces, separation of concerns, usage of patterns where necessary, detailed flow logic.
Why do you want to join Flipkart?
How to handle conflicts at work?
Summary
After two and a half years and over 50 interviews with numerous rejections, I successfully secured and accepted a Software Engineer role at Flipkart, along with an offer from Amazon. This journey involved extensive preparation in DSA, system design, and behavioral aspects, culminating in a significant career advancement.
Full Experience
My Journey from Rejections to Multiple Offers
Hi LeetCode Community,
This post chronicles my journey from numerous rejections to finally securing multiple offers. Starting my full-time career in July 2019 after completing my B.E. in CS, I began looking for a switch after realizing my skills weren't being utilized effectively in my previous role. For 2.5 years, I faced continuous setbacks, undergoing over 50 interviews and countless rejections.
Interview Experiences:
Interview 1: ClearTax - SDE1 (Feb 2019) - Rejected
A recruiter contacted me via Instahyre. The first round was a Machine Coding Round where I had to design and implement Sudoku using Object-Oriented Programming Principles, which I successfully completed. The next round was a review of my approach. In the third round, I was asked two DSA questions: Best Time to Buy and Sell Stock II (which I solved) and Best Time to Buy and Sell Stock IV (which I discussed, but couldn't solve completely). I was rejected after this round.
Interview 2: Udaan - Software Engineer 1 (April 2019) - Rejected
I was shortlisted after participating in a HackerEarth challenge. The first round was a Machine Coding Round where I was asked to implement Splitwise with OOPs Principles, which I was able to solve. After a review, HR informed me they were looking for someone with more experience, leading to another rejection.
Interview 3: Amazon - SDE1 (June 2019) - Rejected
I passed a HackerEarth challenge by solving both questions, which led to onsite rounds in Bengaluru. In a pen/paper round, I was given two questions: Sliding Window Maximum and counting the number of Binary Search Trees present in a given binary tree. I was able to solve both of them. Despite this, I was rejected, with HR stating I did not pass this round, without further explanation.
Interview 4: GE HealthCare - Software Developer (June 2019) - Rejected
After successfully completing an online HackerEarth test, I received a call for an onsite interview. Interview Round 1 involved questions on networking, OS, DBMS fundamentals, followed by a DP problem. We then had an in-depth discussion about my internship project, and I was asked C++ questions like virtual pointers, virtual destructors, virtual functions, and other OOPS concepts. Overall, this round did not go well, and I was rejected.
Interview 5: DE Shaw - Associate Developer - Life Sciences (June 2019) - Rejected
I applied through their careers website and subsequently received an email for an online assessment on HackerRank. I was able to solve all 3 coding questions and almost all 15 MCQs. A week later, I got a call for onsite interviews. Round 1 involved one coding question based on DP and questions on design patterns (factory, singleton, builder). Round 2 was a DSA round with two interviewers, where I was asked Trapping Rain Water II (couldn't solve) and Move Zeroes (solved). I was rejected after this round.
Interview 6: Amazon - SDE1 (October 2019) - Rejected
I applied through an employee referral and received an online assessment link. The online assessment had 2 medium-hard questions based on DP and graphs, which I solved, leading to an onsite invitation after 2 weeks. Round 1 was with an SDE-2, who asked me two coding problems: Rotting Oranges and Kth Largest Element in an Array. I solved both. Round 2, also a DSA round with an SDE-2, involved two coding problems: finding the minimum number of platforms required for a railway station given arrival/departure times, and Jump Game II. I was able to solve both. Round 3 was with an SDM, focusing on my projects and Amazon Leadership Principles. Round 4, also with an SDM, covered my internship projects, Amazon Leadership Principles, and one coding question on Trees. I solved the coding question. Overall, this round went well. I was told they would contact me within a week, but I never received any email or feedback.
Interview 7: Unacademy - SDE1 (October 2019) - Rejected
A recruiter contacted me after seeing my profile on Naukri, and I was called for an onsite interview the following week. Round 1 was a test link with 3 easy-medium questions, which I solved. Round 2 was a DSA round with one backtracking question and one graph question, both medium-hard, which I solved. Round 3 was a mix of coding and technical knowledge, covering my projects, C++, REST architecture, and two coding questions (one on trees, one on DP), which I solved. Round 4 was purely theoretical, with many questions on networking, OS, DBMS, and my projects. Round 5 was a normal, more behavioral discussion with one of the co-founders. HR informed me the next day that I was not selected.
Interview 8: PharmEasy - SDE1 (October 2019) - Rejected
I received an interview request from HR at PharmEasy on TopHire. Round 1 was a DSA round with two questions: reverse a stack using recursion, and reverse a linked list in groups of a given size. I solved both. Round 2 was also a DSA round, where a backtracking question (a variation on the N-Queens Problem) was asked. I was not able to solve this question, and consequently, I was rejected after this round.
After these interviews, my profile struggled to get shortlisted, and I didn't receive calls after online assessments for about 4-5 months.
Interview 10: Amazon - SDE1 (December 2020) - Rejected
I applied again through an employee referral and received an online assessment link after two weeks. The online assessment had two questions, one related to custom sorting and the other a priority queue-based question, which I solved. I was called for a virtual onsite after three weeks. Round 1 involved two coding questions, one based on DP and Sort Colors; I solved both. Round 2, another DSA round, had two questions: Flatten a Multilevel Doubly Linked List and Integer to Roman; I solved both. Round 3 was with an SDM from Seattle, focusing on Amazon Leadership Principles and ending with one coding problem. After these rounds, I was told one more round would be taken, but I never received any feedback.
Interview 11: Grab - SDE1 (February 2021) - Rejected
I applied via the career portal for a Software Engineer backend role and received a test link to complete within 3 days. The online assessment had 3 medium-hard questions, all of which I solved, leading to an onsite call after 3 weeks. Round 1 had two coding questions: Next Permutation and LRU Cache, both of which I solved. Round 2, another PS/DSA Round, had two coding questions: House Robber and a graph-based problem, which I also solved. Round 3 was a system design round, where I was asked to design a Restaurant booking system that handles concurrency. We had a discussion, but this round did not go well. I was rejected after this round.
Interview 25: Turvo - Associate Software Engineer (March 2021) - Offer :)
I completed a HackerRank test with 3 easy-medium questions. Round 2 was a DSA round with two questions, one DP-based and the other related to Trees. Round 3 was a mixture of DSA and discussions about my past projects. Round 4 was the Hiring Manager round, which involved a normal discussion based on my experience, OOPS, and some behavioral questions. I received an offer!
Interview 26: Goldman Sachs - Software Engineer (April 2021) - Rejected
I applied via an employee referral and received an online assessment link two weeks later. The online assessment had 2 easy-medium questions, which I solved, leading to an onsite call three weeks after this round. Round 1 was a DSA round with two questions: one a variation of the Trapping Rain Water Problem, and the second based on Trees. I was able to solve both. Round 2 was also a DSA round with two questions: Minimum Add to Make Parentheses Valid (solved) and Word Ladder (I came up with an approach but couldn't complete the code due to time restrictions). I was rejected after this round.
Interview 27: Google - Software Engineer (March 2021) - Rejected
I applied via an employee referral and was rejected after a phone interview.
Interview 28: Housing - Software Engineer (April 2021) - Rejected
A consulting company contacted me regarding an opportunity after finding my profile on Naukri. I was called for an onsite interview after two weeks. Round 1 was a DSA round with two medium-hard DP problems. Round 2 was a mix of technical, databases, projects, and coding problems. Round 3 was the Hiring Manager round, where he asked me about my projects, in-depth questions on indexing in DBMS, and some MySQL queries. After that, he asked me two coding questions: Excel Sheet Column Number and Valid Parentheses. This round did not go well as I struggled to answer the in-depth questions on indexing, although I was able to solve both coding problems. I was rejected after this round.
Interview 29: Flipkart - SDE1 (April-May 2021) - Offer - Accepted :)
I applied via an employee referral and received a call after three weeks from HR regarding onsite rounds. Round 1 was a Machine Coding round, where the question was to design a Covid-19 Vaccination Center Booking system. This was followed by a review round regarding my approach and cross-questions based on my implementation. Round 2 was a DSA Round with two questions: Number of Islands and a modification of the Coin Change problem. I was able to solve both of them. Round 3 was the Hiring Manager Round, where he asked me in-depth questions about my current projects and some behavioral questions. One week later, HR called me to extend an offer, stating that my interview feedback was positive. Finally, after two years of persistent effort, I received an offer!
Interview 30: Amazon - SDE1 (May 2021) - Offer :)
This was my fifth time interviewing with Amazon. This time, after completing four rounds, I was informed that they would be extending an offer to me.
I will be joining Flipkart next week :)
Interview Questions (30)
Design and implement Sudoku with Object-Oriented Programming Principles.
Implement Splitwise with OOPs Principles.
Given a binary tree, the task is to count the number of Binary Search Trees present in it.
Given the arrival and departure times of all trains that reach a railway station, the task is to find the minimum number of platforms required for the railway station so that no train waits.
Reverse a stack using recursion.
Reverse a linked list in groups of a given size.
A backtracking question that was a variation of the N-Queens Problem.
Design a Restaurant booking system that handles concurrency.
A variation of the Trapping Rain Water Problem.
Design a Covid-19 Vaccination Center Booking System (Machine Coding Round).
Preparation Tips
Takeaways and Advice for Interviews
My preparation largely revolved around consistent practice and strategic thinking during interviews. Based on my experience, here are some key pieces of advice:
- Always Talk Out Loud: It's crucial to verbalize your thought process during an interview. Interviewers want to understand your approach and problem-solving methodology. Engaging in discussions with them is incredibly helpful, as they often provide hints if you get stuck.
- Focus on Time and Space Complexity: Most companies emphasize these aspects. Having a solid understanding and being able to articulate the time and space complexity of your solutions is vital. Aim to write production-level code; avoid pseudo-code unless explicitly permitted.
- Handle Rejections Gracefully: Rejections, especially from big companies, are a part of the process. Don't get disheartened. Focus on daily improvement in Data Structures and Algorithms by practicing consistently on LeetCode. Never give up on your goals.
- Combat Burnout: There will be times you feel burned out, but remember that you only need one success for all your hard work to pay off. Patience and consistent practice are key to eventually achieving your desired outcome.
I'm open to suggestions and thoughts for improvement from the community. Keep hustling and learn from your failures!
Summary
I recently interviewed at Flipkart for an SDE1 role and was challenged to design a data structure for tracking the top K stocks from a real-time stream. Unfortunately, I was unable to provide a satisfactory solution.
Full Experience
I recently had an interview at Flipkart for an SDE1 position. During the technical round, I was presented with a design problem: to create a data structure capable of efficiently providing the top 10 stocks from a continuous stream of (id, stock-price) tuples at any given point in time. The interviewer explained that a function like getTop10() should return a list of the 10 stocks with the maximum current value. An example was provided: for a stream such as (a, 10), (b,20), (c,30), (d, 40), (a, 30), (d,10), a call to getTop2() should yield [{a,30}, (c,30)]. I attempted to implement a solution using a maxHeap, but the interviewer did not seem satisfied with my approach, and I felt I couldn't deliver a complete or optimal answer.
Interview Questions (1)
Design a data structure to give top 10 stocks from a stream of tuple at any point of time.
The tuple format is (id, stock-price).
Basically, getTop10() should be returning a list of top 10 stocks having maximum value at any point of time.
For example:
Stream -->>(a, 10), (b,20), (c,30), (d, 40), (a, 30), (d,10)getTop2() returns [{a,30}, (c,30)];
Summary
I recently interviewed for an SDE2 position at Flipkart in Bangalore. The interview process consisted of four rounds, covering machine coding, problem-solving with data structures, system design, and a hiring manager discussion.
Full Experience
Overview
I had an interview for the SDE2 role at Flipkart in Bangalore. I have 2.5+ years of experience at a product company, and the interviews were conducted virtually.
Round 1 (1 hour 30 mins): Machine Coding Round
This round involved implementing a ride-sharing system. I focused on designing the core functionalities and demonstrating clean code structure.
Round 2 (1 hour): Problem Solving and Data Structures (PSDS)
This round had two main questions:
- Question 1: I was asked about the best possible way to store IP addresses and their frequencies from a stream of IP addresses. The interviewer hinted at using a trie and a frequency counter as part of the solution.
- Question 2: I don't remember the exact details of the second question, but I recall it was based on priority queues and sorting concepts.
Round 3 (1 hour): System Design Round
The main task in this round was to design a comprehensive flight ticket booking system. I discussed various components like user management, search, booking, payment, notification services, and scalability considerations.
Round 4 (1 hour): Hiring Manager Round
This round was more about my career journey and behavioral aspects. The discussions revolved around:
- The overall gist of my career so far.
- Explaining the features I built in my previous roles.
- Reasons for any job switches I made in the past.
- Which feature in my life I am most proud of.
- My strengths and weaknesses, specifically as laid out by my manager in my appraisals.
Interview Questions (8)
Implement a ride sharing system as part of a machine coding round.
Given a stream of IP addresses, find the best possible way to store them and their frequencies. The interviewer hinted at using a trie and a frequency counter.
Design a flight ticket booking system.
A discussion about the overall gist of my career so far.
Explain the features I built in my previous roles.
Discuss reasons for job switches I made in the past.
Which feature in my life am I most proud of?
Discuss my strengths and weaknesses, specifically as laid out by my manager in my appraisals.
Summary
I underwent a three-round virtual interview process for an SDE1 position at Flipkart, including machine coding, problem-solving, and a hiring manager discussion. Despite successfully navigating the technical challenges and receiving positive feedback, I was surprisingly rejected without any specific reasons.
Full Experience
My interview journey for the SDE1 role at Flipkart involved three virtual rounds. The first round, a Machine Coding challenge, required me to build a Facebook-like feed platform. I focused on a modular, OOPS-based console application, passing all test cases and demonstrating its functionality, though I did skip exception handling due to time.
The second round was centered on Problem Solving and Data Structures. We discussed a "Source to Destination" problem which I found vague, and then moved to a more specific "Flipkart bidding system" problem. For the bidding system, where I needed to find the highest non-repetitive number in a stream, I discussed various approaches and ultimately implemented a solution using a combination of a hashmap and a max-heap, which the interviewer accepted.
The final round was with the Hiring Manager. This was more conversational, covering my projects and background. We also delved into the Producer-Consumer problem, discussing its handling and requiring me to code a solution, which I did. I felt positive about all rounds, receiving positive feedback from both technical interviewers and the HM.
Despite what I felt was a strong performance and solving the problems presented, I later received a rejection email without any specific feedback, which was quite unexpected and disappointing given the smooth process.
Interview Questions (3)
Design and implement a console application for a Facebook-like feed platform. The application should handle posts, users, upvotes, downvotes, and post ranking. The code needs to be modular, well-structured, and pass specific test cases, demonstrating OOPS concepts.
Given a stream of integers representing bids, at every instant, find the winner, defined as the bidder with the highest non-repetitive bid (or highest non-repetitive number).
Discuss the Producer-Consumer problem in operating systems/systems, explore various ways to handle it, and then code a solution.
Preparation Tips
My preparation involved a strong focus on problem-solving and data structures, which was beneficial for the PSDS round. For the system design and machine coding aspects, my prior experience and understanding of OOPS and system design principles helped me tackle the challenges like the Facebook feed platform and the Producer-Consumer problem.