Meesho 6M Intern + SDE - 1 || On Campus || Interview Experience
SDE 1Machine Coding Round at Meesho – My Experience!
SDE-1Meesho SDE 3 Interview Experience
SDE-3Meesho Full Interview Experience | SDE-I (Backend) | On-Campus
sde-i (backend)Meesho SDE3 interview experience
SDE III19 more experiences below
Summary
Applied for a 6-month internship and SDE 1 role at Meesho during on-campus hiring. Made it to the final round but was ultimately rejected, likely due to performance in the hiring manager round.
Full Experience
During my on-campus process, I went through several rounds of interviews until the final round. Meesho was one of the companies that came for a 6-month internship from January to June along with a full-time offer from July for the role of SDE 1 and Data Science. I made it to the last round for SDE.
College: Tier 1
Rounds (All eliminatory): 4
Internship Stipend: 1.3 Lakh per month
Full-time Offer: 22 Lakh base + 35 Lakh joining bonuses spread across 4 years
Interview Experience:
Round 1 → Online Assessment: Three questions were given & everyone had different questions. One was a simple array-based LeetCode Easy, one was based on graphs along the lines of finding the best route a salesman can take to minimize operations, and one was based on backtracking using dynamic programming and can be called as a LeetCode Hard.
Round 2 → Technical Round 1 (DSA): I was asked an easy-to-medium scheduling question that could have been solved using arrays or using heaps and hash maps for an optimal solution. We had to write and explain our pseudocode to the panelist in 30 minutes, with 5 minutes for cross-questions on its time and space complexity and approach.
Round 3 → Technical Round 2 (LLD): I was asked a LLD question similar to standard LeetCode design questions (Example: Simple Bank System ) where the function names and parameters are given and you have to fill in their working. The question was on ride sharing, with functions like add rides, find ride, book ride, cancel ride, etc. We had 1 hour to code it and run one test case. If you ran the test case successfully, you would have passed. After this, for 30 minutes, I was asked about the basics of OOPs, SOLID principles, and OS concepts like mutex and race conditions.
Round 4 → Hiring Manager Round: I had a panelist with around 10+ years of experience. Here, I was grilled on my resume projects and on every little keyword. He wanted to know why I used a particular approach and asked me to come up with a better approach, along with why I used a specific tech stack and whether it was feasible in a real-life scenario. Along with this, I was asked standard HR questions.
Result: Rejected
Even though I feel that I did pretty well in all my rounds, since they only took one candidate for my role in SDE, I think I was rejected due to my HM round performance. Overall, it was a good learning experience for my next interviews with other big companies.
Interview Questions (2)
A scheduling question that could have been solved using arrays or using heaps and hash maps for an optimal solution. The task was to design an efficient approach to manage scheduling with constraints.
Summary
I recently interviewed at Meesho for an SDE-1 role, where I faced a challenging machine coding round focused on building an in-memory inventory management system with specific features, including time-based inventory restoration.
Full Experience
I recently had an interview at Meesho for an SDE-1 position, which featured a particularly interesting machine coding round. My task was to design and implement a small but realistic in-memory inventory management system for an e-commerce platform within a 60-minute timeframe. This experience was a great test of my ability to integrate system design principles with clean coding and practical problem-solving under pressure. I found it to be a very engaging and insightful part of the interview process.
Interview Questions (1)
The core challenge was to construct a compact yet realistic inventory management system for an e-commerce platform, to be completed within 60 minutes. The system needed to adhere to several key requirements:
- Implement functionality for creating new products and assigning an initial inventory.
- Enable fetching the current available inventory for any product.
- Manage inventory blocking when a user initiates a payment transaction.
- Ensure permanent reduction of inventory upon successful payment confirmation.
A crucial bonus requirement involved implementing a timeout mechanism: if an order remained unconfirmed for five minutes, the previously blocked inventory for that order had to be automatically restored. This particular aspect added a significant layer of complexity, demanding careful thought around state management and time-driven rollbacks.
Summary
I recently interviewed for an SDE-3 role at Meesho, successfully clearing a Data Structures & Algorithms round before a truncated Low-Level Design round. Despite not receiving an offer, I found the preparation process valuable for sharpening my skills.
Full Experience
I recently had the opportunity to interview for an SDE-3 role at Meesho, and I wanted to share my experience in detail.
The first round was focused on Data Structures and Algorithms, lasting 90 minutes. I was given two coding questions: one involved arrays, and the other centered around the concept of merging intervals. I'm pleased to say I successfully cleared this round.
Next, I proceeded to the Low-Level Design round, which was scheduled for 90 minutes. Unfortunately, the interviewer joined 45 minutes late, which significantly cut down the available time. The discussion ended up being primarily resume-based, and I also faced a few questions related to Spark and Airflow. The entire interview lasted only about 30 minutes, and the interviewer abruptly ended the meeting after asking about some tech stacks that weren't even listed on my resume.
Although I didn't receive an offer for the SDE-3 position, I genuinely view the preparation itself as a positive takeaway. Going through this entire process truly helped me sharpen my problem-solving and system design thinking, skills which I'm confident will be beneficial in my upcoming interviews.
Interview Questions (1)
Given an array of intervals where intervals[i] = [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input.
Preparation Tips
My preparation for this interview was focused on strengthening my problem-solving abilities and refining my system design thinking. While the outcome wasn't an offer, the journey of preparing for these rounds proved invaluable for my overall skill development.
Summary
I successfully secured an SDE-I (Backend) offer from Meesho through on-campus placements, navigating an online assessment, two technical interviews, a machine coding round, and a final interview covering resume, CS fundamentals, and behavioral aspects.
Full Experience
My interview process for the SDE-I (Backend) role at Meesho, as part of campus placements, consisted of an Online Assessment followed by three in-person interview rounds.
Round I – Online Assessment (DSA)
This round had three questions. I managed to solve all three questions and was subsequently shortlisted for the next round. The problems involved array manipulations with queries, a modified graph connectivity problem, and a digit DP problem.Round II – Technical Interview (DSA)
In this round, I was given a problem involving a tree-like category structure and had to implement a system to ingest orders and query order counts within date ranges for specific categories. I solved this in approximately 25 minutes, providing pseudocode as requested.Round III – Machine Coding
This round challenged me to design a carpooling system. Although I slightly over-engineered a few classes and couldn't run the code within the given time, the interviewer appreciated my approach and thought process. I cleared this round as well.Round IV – Resume + CS Fundamentals + Behavioural Interview
This final round involved discussions about my resume and previous internship experiences, delving into my tech stack, motivations, and design choices. We also covered fundamental computer science topics like processes vs. threads, comparisons between C, C++, Java, and Python, and networking layers. Additionally, I answered several behavioral questions. I successfully cleared this round.Interview Questions (5)
You are given an integer array of size n, where the i-th element represents the capacity of the i-th room. You are also given an array of queries. Initially, you are at the first element. There are 3 types of queries:
- Type 1: Given X → Move the current position X rooms to the right.
- Type 2: Given Y → Move the current position Y rooms to the left.
- Type 3: Given A and B → If you are at the i-th element, remove the room at position i+1 and add 2 new rooms immediately to the right of room i with capacities A and B.
Constraints: n ≤ 10^5 , q≤ 10^5
Topics Involved: Arrays, Doubly Linked List
You are given a string of length 10^4 representing a large number and another number X (in the range [1,100]), and Q queries (Q ≤ 10^6). Each query contains a number K (0,99). For each query, determine whether there exists a subsequence such that the number formed by the subsequence modulo X equals K.
Topics Involved: Digit DP
I was given a tree-like structure where each node represents a category, and its children represent subcategories, for example:
Fashion
|
|-------Mens
| |--->Shirts
| |--->Round Neck
| |--->V Neck
|
|-------Womens
|--Dresses
|--JeansConstraints: - Max Depth: 20
- Large number of nodes
- Type 1:
IngestOrder(Date, Quantity, Category)– An order with quantity Q of category C placed on date D. - Type 2:
Query(Category, StartDate, EndDate)– Returns the number of orders of that category within the date range [StartDate, EndDate].
Topics Involved: DFS, Segment Tree/Fenwick Tree (BIT)
Summary
I interviewed for an SDE3 role at Meesho, which involved a machine coding round where I designed Splitwise and a High-Level Design round for an insurance aggregator system with inventory management. I was ultimately rejected after the second round.
Full Experience
Round 1 -
It was a machine coding round. Was asked to design and code splitwise. Evaluation - Interviewer did not ask much on the working of the code but more on Java internals.
Java questions asked - Internal working on Streams. Streams vs Parallel streams Working of GCs. Different types of GC what actually happens when we implement an interface Internal working on concurrent hashmap.
I could not give absolutely correct answers, but it was a good discussion, which made me think deeper.
Round 2 -
Design an insurance aggregator system (Policybazaar), with a catch that we will need to manage the inventory of the insurance as well, can not have an unlimited number of insurances and had other functional requirements such that the insurance company can take some time to approve and provide insurance. Discussions went around failures at making payments.
This was an HLD round.
Verdict - Rejected in Round 2
Interview Questions (6)
Design and code the Splitwise application.
Discussion on the internal working of Java Streams, including a comparison between Streams and Parallel Streams.
Discussion on the working of Garbage Collectors and different types of GC in Java.
What actually happens when we implement an interface in Java.
Discussion on the internal working of Concurrent HashMap in Java.
Design an insurance aggregator system (like Policybazaar). The system must manage insurance inventory, as the number of available insurances is not unlimited. Additional functional requirements included the ability for insurance companies to take time to approve and provide insurance, and discussions covered failures related to making payments.
Summary
I interviewed for an SDE3 role at Meesho in May 2025, which involved machine coding and high-level design rounds. Despite performing well in the coding round, I was ultimately rejected, likely due to my performance in the HLD round.
Full Experience
Current Employer: Product based MNC
YOE: 5.5+
Application Process: Reached out by a recruiter from BuzzHire
Interview Process:
Round 1: Machine Coding on HackerRank Question: Create a Inventory management System for Products, where inventory can be reserved for centain time let's say 5 mint and if the order is not confirmed within 5 mints then system should be able to release the reserved inventory. Basically we need to implement an interface with following methods:-
void blockInventory(String productId, Integer count, String orderId);
void confirmOrder(String orderId);
int getInventory(String productId);
Expectation: Working code (Moduler, Extensible) Concurrency support(Multithreading handling)
Solution:- Used PriorityBlockingQueue of keep track to reserved inventory. A separate thred will keep on checking the expiry time of peek of the queue and delete once time expired. Overall, round went well, was able to answer follow-up questions by interviewer. Code was also running. For optimization, I suggested, we can use DeleyQueue as well. Suggestion:- Focus should be on working code. Try to solve core problem first before using a lot of design-patterns Time : 90 mins
Round 2: High Level Design Question:- Design a cloud based file sync system(similar to DropBox) Deatil problem statement:- User can login from multiple devices. when user create a new file on local device, it should be synced to cloud and should be synced back to all other devices.
Solution:- Discussed Functional/Non-functional requirements, Core entities, APIs. Started with a basic design with file upload/download capability. Later enhanced for the design to support large file, also if a new device is getting added in the user account, all files will be synced. For Syncing back file to device, I was using push based approach. Interviewer asked multiple questions, I was able to answer some of them, he seemed satiesfied. Time : 60 mins
Verdict:- Almost after 1 month I got the rejection email, after one of my friend working there asked HR for the feedback. I think HLD round was the reason, I could have done better. One suggestion I would like to give that do Capacity Estimation and Storage/DB choice discussion in the initial phase only. Also since Messho Interviewer remains mostly silent during the interview, so communicate as much as you can.
Interview Questions (2)
Create a Inventory management System for Products, where inventory can be reserved for centain time let's say 5 mint and if the order is not confirmed within 5 mints then system should be able to release the reserved inventory. Basically we need to implement an interface with following methods:-
void blockInventory(String productId, Integer count, String orderId);
void blockInventory(String productId, Integer count, String orderId);
void confirmOrder(String orderId);
int getInventory(String productId);
Expectation: Working code (Moduler, Extensible) Concurrency support(Multithreading handling)
Design a cloud based file sync system(similar to DropBox) Deatil problem statement:- User can login from multiple devices. when user create a new file on local device, it should be synced to cloud and should be synced back to all other devices.
Summary
I interviewed for an SDE 1 role at Meesho with 1.1 years of experience, completing DSA, LLD, and HM rounds. The experience included a linked list problem, system design, and OS concepts, ultimately resulting in a rejection.
Full Experience
Current Experience: 1.10 Years
College: Tier-2
Previous Organization: One of the MNCs
HR contact with me through naukri.
OA
DSA round: 30 min
https://leetcode.com/problems/odd-even-linked-list/
Similar to this question: rearrange a linked list so that all odd numbers come first, followed by even numbers, while preserving the original relative order
LLD round:
https://leetcode.com/discuss/post/6702200/meesho-sde-1-backend-lld-machine-coding-uo43b/
similar to this
Asked him can I use own IDE? He said need to code in hacker rank can not use own ide. No need of controller, repository, services layer and lombok library.
HM round:
Project discussion with end to end flow.
Some OS concepts like TCP vs UDP, multitheading etc.
How do I implement a particular feature.
Design notification service. It didn't go well. Not able to answer properly.
Some behavioural questions.
Verdict: rejected.
Interview Questions (3)
Design notification service.
Some OS concepts like TCP vs UDP, multitheading etc.
Summary
I recently interviewed for the SDE-1 Backend role at Meesho. Though I ultimately received a rejection, the entire process was a valuable learning experience, offering insights into my strengths and areas needing improvement.
Full Experience
I applied for the SDE-1 Backend role at Meesho via Naukri.com and was shortlisted after my resume review.
Online Assessment (OA)
The OA consisted of 3 coding problems. I managed to solve 2 questions completely and achieved 14 out of 15 test cases for the third one.
Technical Interview 1: Data Structures & Algorithms (DSA)
This round lasted about 30 minutes, though the actual discussion was closer to 20 minutes due to the interviewer joining late. The question was on the topic of Multi-source BFS/DFS. I quickly understood the problem, explained my complete solution clearly, discussed time and space complexities, and implemented a working solution within the limited time.
Technical Interview 2: Low-Level Design (LLD)
This 60-minute round also started a bit late, but the interviewer was very calm and interactive. The problem was to design and implement a Cab Booking System with functionalities to add a cab, book a ride, end a ride, and display all details (driver, passenger, and ride info). My approach focused on writing a clean and modular design. I was able to implement around 90% of the code, even facing some issues with the HackerRank IDE during compilation. Despite this, I clearly explained my entire implementation and logic to the interviewer, who seemed satisfied and engaged.
Outcome
I received a rejection email the very next day.
Final Thoughts
Even though I wasn't selected, it was a valuable learning experience. I appreciated the professionalism of the interviewers and the depth of the questions. Each round helped me better understand my strengths and the areas I need to improve, and I'm looking forward to more such opportunities.
Interview Questions (1)
Design and implement a Cab Booking System with the following functionalities:
- Add a cab
- Book a ride
- End a ride
- Display all details (driver, passenger, and ride info)
Summary
I had a highly frustrating System Design interview for an SDE-3 role at Meesho, where the interviewer provided minimal context for the problem and incorrectly challenged my knowledge of DynamoDB's internal indexing mechanisms, ending the interview prematurely.
Full Experience
Hi, I recently had my second-round interview for an SDE-3 position at Meesho. Below is my experience:
The interviewer asked me to design a dayparting system. He provided some written functional requirements and assumptions.
Someone from the advertisement domain might know what a dayparting system is, but how was I supposed to know? I asked him questions about what dayparting is and its context. He responded, "Just read the question, and you will understand."
I thought, okay, I have to make sense of this question on my own. Somehow, I managed to formulate an understanding and started asking clarifying questions. My understanding was incorrect, given that he wasn't providing any context. Then, he started asking business questions like, "How will a dayparting system make money?" and so on.
Finally, after 30 minutes, he decided to explain the problem statement to me.
I started designing. At one point, I was using DynamoDB. He asked me questions about DynamoDB, and I answered them correctly.
Then, he asked what DynamoDB uses internally for indexes. I said Hashing and B-trees. I specifically remembered this from an AWS re:Invent video I had watched. He asked if I had heard of LSM trees and mockingly asked how long I had been using DynamoDB. He then decided to end the interview 30 minutes early.
I felt so bad about myself for not knowing that DynamoDB used LSM trees (and about dayparting as well). However, after the interview, I checked again, and DynamoDB does use Hashing and B-trees for indexing.
I checked his LinkedIn profile and discovered that he had once worked on a dayparting system and apparently assumed everyone was familiar with it.
Again, no hate towards the interviewer. But please if you are an interviewer, be mindful that candidates may not share your specific domain expertise. Ambiguity is not same as providing no context.
Anyways, hope you guys have better luck than me.
Interview Questions (2)
Design a dayparting system given functional requirements and assumptions. The interviewer initially provided no context but eventually explained the problem statement after 30 minutes of discussion. Business questions, such as 'How will a dayparting system make money?', were also asked.
What does DynamoDB use internally for indexes? This question was followed by a discussion where the interviewer incorrectly suggested DynamoDB uses LSM trees for indexing.
Summary
I recently interviewed with Meesho for a Backend Developer SDE 1 role. The process included an Online Assessment, a Low-Level Design round, and a High-Level Design discussion. I was ultimately rejected after the Hiring Manager round.
Full Experience
My Interview Experience at Meesho
I recently had the opportunity to interview with Meesho for a Backend Developer role. Thought I'd share my experience — it was a great learning process, and might be helpful to others preparing for similar rounds.
Round 1: Online Assessment (OA)
Total Questions: 3
Difficulty: 2 Medium, 1 Hard
I managed to fully solve 2 questions and partially solve 1 question.
Round 2: Low-Level Design (LLD)
This was a pure design round. The problem statement was:
Design a Shop Manager Application with coupon handling capabilities.
Some of the requirements:
- Add products to inventory.
- Create and manage carts.
- Add items to cart.
- Support two types of coupons: Flat and Percentage based.
- Apply coupons to calculate final cart price.
- Handle stock reduction on checkout.
import java.util.*;// Product class class Product { private int productId; private String productName; private double price; private int quantity;
public Product(int productId, String productName, double price, int quantity) { this.productId = productId; this.productName = productName; this.price = price; this.quantity = quantity; } public int getProductId() { return productId; } public String getProductName() { return productName; } public double getPrice() { return price; } public int getQuantity() { return quantity; } public void reduceQuantity(int qty) { this.quantity -= qty; }}
// Item in the cart class Item { private int productId; private int quantity; private double price;
public Item(int productId, int quantity, double price) { this.productId = productId; this.quantity = quantity; this.price = price; } public int getProductId() { return productId; } public int getQuantity() { return quantity; } public double getPrice() { return price; }}
// Cart class class Cart { private int cartId; private List<Item> items; private boolean active;
public Cart(int cartId) { this.cartId = cartId; this.items = new ArrayList<>(); this.active = true; } public int getCartId() { return cartId; } public List<Item> getItems() { return items; } public boolean isActive() { return active; } public void deactivate() { active = false; } public void addItem(Item item) { items.add(item); } public double getCartPrice() { double total = 0; for (Item item : items) { total += item.getPrice() * item.getQuantity(); } return total; } public double getCartPriceWithDiscount(Coupon coupon, int currentDate) { double cartPrice = getCartPrice(); return cartPrice - coupon.calculateDiscount(cartPrice, currentDate); }}
// Abstract Coupon class abstract class Coupon { protected int couponId; protected double minimumPurchase; protected double maxDiscountLimit; protected int expiryDate; protected String couponName;
public Coupon(int couponId, double minimumPurchase, double maxDiscountLimit, int expiryDate, String couponName) { this.couponId = couponId; this.minimumPurchase = minimumPurchase; this.maxDiscountLimit = maxDiscountLimit; this.expiryDate = expiryDate; this.couponName = couponName; } public boolean isValid(int currentDate) { return currentDate <= expiryDate; } public abstract double calculateDiscount(double cartPrice, int currentDate); @Override public String toString() { return "Coupon ID: " + couponId + ", Name: " + couponName; }}
// Percentage coupon class PercentageCoupon extends Coupon { private double percentageDiscount;
public PercentageCoupon(int couponId, double minimumPurchase, double maxDiscountLimit, int expiryDate, String couponName, double percentageDiscount) { super(couponId, minimumPurchase, maxDiscountLimit, expiryDate, couponName); this.percentageDiscount = percentageDiscount; } @Override public double calculateDiscount(double cartPrice, int currentDate) { if (!isValid(currentDate) || cartPrice < minimumPurchase) return 0; return Math.min((cartPrice * percentageDiscount) / 100.0, maxDiscountLimit); }}
// Flat coupon class FlatCoupon extends Coupon { private double flatDiscount;
public FlatCoupon(int couponId, double minimumPurchase, double maxDiscountLimit, int expiryDate, String couponName, double flatDiscount) { super(couponId, minimumPurchase, maxDiscountLimit, expiryDate, couponName); this.flatDiscount = Math.min(flatDiscount, maxDiscountLimit); } @Override public double calculateDiscount(double cartPrice, int currentDate) { if (!isValid(currentDate) || cartPrice < minimumPurchase) return 0; return flatDiscount; }}
// Manager class class ShopManager { private int cartIdCounter = 0; private Map<Integer, Product> inventory = new HashMap<>(); private Map<Integer, Cart> carts = new HashMap<>(); private Map<Integer, Coupon> coupons = new HashMap<>();
public void addProductToInventory(Product product) { inventory.put(product.getProductId(), product); } public void addCoupon(Coupon coupon) { coupons.put(coupon.couponId, coupon); System.out.println("Added coupon: " + coupon); } public int createCart() { for (Cart cart : carts.values()) { if (cart.isActive()) { return cart.getCartId(); } } int cartId = cartIdCounter++; Cart newCart = new Cart(cartId); carts.put(cartId, newCart); return cartId; } public void addItemToCart(int cartId, int productId, int quantity) { Cart cart = carts.get(cartId); Product product = inventory.get(productId); if (product == null || product.getQuantity() < quantity) { System.out.println("Insufficient stock or invalid product."); return; } Item item = new Item(productId, quantity, product.getPrice()); cart.addItem(item); } public double calculateCartPriceWithCoupon(int cartId, int couponId, int currentDate) { Cart cart = carts.get(cartId); Coupon coupon = coupons.get(couponId); if (cart == null || coupon == null) { System.out.println("Invalid cart or coupon."); return 0; } return cart.getCartPriceWithDiscount(coupon, currentDate); } public void checkoutCart(int cartId) { Cart cart = carts.get(cartId); if (cart == null) return; for (Item item : cart.getItems()) { Product product = inventory.get(item.getProductId()); product.reduceQuantity(item.getQuantity()); } cart.deactivate(); System.out.println("Cart " + cartId + " checked out."); }} public class ShoppingApp { public static void main(String[] args) { ShopManager shop = new ShopManager();
// Add products shop.addProductToInventory(new Product(1, "T-Shirt", 1000, 10)); shop.addProductToInventory(new Product(2, "Jeans", 2000, 5)); // Add coupons shop.addCoupon(new FlatCoupon(1, 1500, 500, 30, "SUMMER30", 500)); shop.addCoupon(new PercentageCoupon(2, 1000, 300, 30, "SPRING20", 20)); // Create cart and add items int cartId = shop.createCart(); shop.addItemToCart(cartId, 1, 1); // T-Shirt shop.addItemToCart(cartId, 2, 1); // Jeans // Calculate final price double totalPrice = shop.calculateCartPriceWithCoupon(cartId, 1, 25); // valid date System.out.println("Total price after discount: ₹" + totalPrice); // Checkout shop.checkoutCart(cartId); }
}
Round 3: Hiring Manager (HM) Discussion
Started with a casual introduction and discussion around my current project experience.
Discussed challenges faced and solutions implemented in my recent backend services.
Then came a High-Level Design (HLD) problem:
Problem:
Design an e-commerce application for a mega sale event where:
- 1000 items go live.
- 1 billion users hit the system concurrently.
Discussion Points:
What possible issues could occur from a normal user's perspective?
I mentioned:
- Service downtime
- High latency
- Cart synchronization problems
- Inventory overselling
- Payment gateway failures
She was particularly interested in rare edge cases where user made the payment but didn't get the product so, need to solve this in futher discussion.
Discussed ways to handle this in a distributed system:
- Using distributed locks / optimistic locking
- Eventual consistency patterns
- Caching strategies
HM round didn't go well for me...
Final verdict : Rejected
Interview Questions (2)
Design a Shop Manager Application with coupon handling capabilities.
Some of the requirements:
- Add products to inventory.
- Create and manage carts.
- Add items to cart.
- Support two types of coupons: Flat and Percentage based.
- Apply coupons to calculate final cart price.
- Handle stock reduction on checkout.
Design an e-commerce application for a mega sale event where:
- 1000 items go live.
- 1 billion users hit the system concurrently.
Summary
I participated in the Meesho Data Challenge 2024, won, and was invited to interview for a Data Scientist-1 role in Bangalore. The interview process consisted of four rounds covering DSA, SQL, Statistics, ML/DL, system design, and project discussions. I received a confirmation from HR on the same day as my final interview round.
Full Experience
Participated in Meesho Data Challenge 2024 (won!) and hence got the chance to interview for open roles at Meesho.
HR contacted on 10th April 2025 and shared the interview details:
- Round 1: DSA, SQL, Statistics & Mathematics, Basic ML/DL/GenAI Knowledge
- Round 2: ML Depth
- Round 3: ML Breadth (case study based)
- Round 4: Overall Discussion
Round 1 (17/04/2025)
- What do you understand by p-value?
- If we fail to reject the null hypothesis then do we accept an alternate hypothesis?
- We want to sample values between [0, 1] uniformly but it should remain within the unit circle. How do you do?
- Explain bias-variance tradeoff
- Training on a large dataset, training loss is getting reduced but validation loss is stagnant, how will you address it?
- Coding
-
Given a list of citizens in a country, Info of birth date and death date, Find the max population throughout the history
-
Find the max number of libraries that can be installed from ‘libaries_needed’: You are given three lists: Libraries_needed = [‘pandas’, ‘numpy’] Libraries_wd_no_preq = [‘A’, ‘B’, ‘C’] Libraries_wd_preq = [[‘A’, ‘B’], [‘B’]]
Here 0th index elements are prerequisites for ‘pandas’ and so on
-
- Explain ReLU activation function
- What is the drawback of using ReLU
- Explain positional encoding in transformers
- Why did authors use sine and cosine? Why can’t we use binary values?
Round 2
-
First (21/04/2025)
- Explain layer and batch normalization
- Discussed potential alternate solution of Meesho Hackathon project
- Convex and non-convex loss functions
- CNNs (projects are CV based)
- Discussion on pooling techniques
- Segmentation basics and pooling techniques in that
- Classification metrics: class imbalance, comparison between ROC-AUC and PR-AUC
- If loss is NaN then possible reasons?
-
Second (25/04/2025) : This was an additional interview with another panel.
- Bias-variance tradeoff
- Regularization techniques
- Why does L1 regularization create sparsity?
- Optimal batch size and why?
- Why do we go into the negative of the gradient?
- Maximum Likelihood Estimation and Maximum a Posteriori Estimation
- Cross Entropy Loss reasoning and relation to KL divergence
- If all weights are initialized to same values then what would happen
- Dropout and what happen at training time
- Multi GPU training, parallelism, PEFT, QLoRA (mentioned in my resume)
Round 3 (30/04/2025)
- In-depth Q&A of my preferred project (Tip: if any project with model building from scratch then discuss that)
- How does ViT work?
- We want to build a visual search system for Meesho? How will you approach it?
- Focus on model building
- Which model will you select and why?
- How do you train it
- Evaluation and Business Metrics
Later that day I received confirmation from HR.
Interview Questions (30)
What do you understand by p-value?
If we fail to reject the null hypothesis then do we accept an alternate hypothesis?
We want to sample values between [0, 1] uniformly but it should remain within the unit circle. How do you do?
Explain bias-variance tradeoff
Training on a large dataset, training loss is getting reduced but validation loss is stagnant, how will you address it?
Given a list of citizens in a country, Info of birth date and death date, Find the max population throughout the history
Find the max number of libraries that can be installed from ‘libaries_needed’:
You are given three lists:
Libraries_needed = [‘pandas’, ‘numpy’]
Libraries_wd_no_preq = [‘A’, ‘B’, ‘C’]
Libraries_wd_preq = [[‘A’, ‘B’], [‘B’]]
Here 0th index elements are prerequisites for ‘pandas’ and so on
Explain ReLU activation function
What is the drawback of using ReLU
Explain positional encoding in transformers
Why did authors use sine and cosine? Why can’t we use binary values?
Explain layer and batch normalization
Convex and non-convex loss functions
CNNs (projects are CV based)
Discussion on pooling techniques
Segmentation basics and pooling techniques in that
Classification metrics: class imbalance, comparison between ROC-AUC and PR-AUC
If loss is NaN then possible reasons?
Bias-variance tradeoff
Regularization techniques
Why does L1 regularization create sparsity?
Optimal batch size and why?
Why do we go into the negative of the gradient?
Maximum Likelihood Estimation and Maximum a Posteriori Estimation
Cross Entropy Loss reasoning and relation to KL divergence
If all weights are initialized to same values then what would happen
Dropout and what happen at training time
Multi GPU training, parallelism, PEFT, QLoRA (mentioned in my resume)
How does ViT work?
We want to build a visual search system for Meesho? How will you approach it?
- Focus on model building
- Which model will you select and why?
- How do you train it
- Evaluation and Business Metrics
Summary
I experienced a 90-minute machine coding round for an SDE-1 Backend role at Meesho, where I implemented core functionalities of a clinical booking system and discussed a follow-up on concurrency, which was well-received.
Full Experience
I had my machine coding round of 90 min yesterday. The interviewer joined 15 minutes late, so the interview time extended 15 min than discussed time.
The interviewer shared hackerrank link which had question description which layed down all the requirements and features needed.
There were 7 features to be applied and other bonus features if I had time to code them up.
The question was a basic clinical booking system, where we had patients and doctors. Doctors could register with their names and their specialization like Cardiologist, Orthopedic etc. They can choose their slots of availability (30 min slots were allowed).
Patients could register themselves, book an appointment with the doctor of their concerns in the available slots. A patient can book only 1 slot with a doctor and it should be just a 30 min slot, they cannot extend it to 2 slots. But patient can have slots booked with other doctors in the same day
If the slot is already filled by another patients, then patients could join a waitlist. A patient can also cancel their appointments, in which case the first patient in waitlist will get the available slot.
Also patients and doctors can view their appoitnments for the day.
These were the core funtionalities required in the interview. I coded up these core functionalities and discussed my code and a few edge cases with the interviewer. He said the code looked good and asked me a follow up question about concurrency, i.e., asked if there were 2 patients trying to book the slot at the same time, how will you decide which patient gets the slot, like in bookmyshow, if there are 1000s of people booking at the same time, how is it decided which person gets the ticket. I could answer the follow up question and the time was also running out.
The interviewer was polite and quite the entire time I was coding.
Interview Questions (2)
Design and implement a basic clinical booking system with the following core functionalities:
- Doctors can register with their names and specialization (e.g., Cardiologist, Orthopedic).
- Doctors can choose their availability slots (30 min slots were allowed).
- Patients can register themselves.
- Patients can book an appointment with the doctor of their concerns in the available slots.
- A patient can book only 1 slot with a doctor and it should be just a 30 min slot; they cannot extend it to 2 slots.
- A patient can have slots booked with other doctors on the same day.
- If the slot is already filled by another patient, then patients could join a waitlist.
- A patient can also cancel their appointments, in which case the first patient in the waitlist will get the available slot.
- Patients and doctors can view their appointments for the day.
If there were 2 patients trying to book the slot at the same time, how will you decide which patient gets the slot, like in BookMyShow, if there are 1000s of people booking at the same time, how is it decided which person gets the ticket?
Preparation Tips
Advice:
- Prepare for follow up questions from all design patterns.
- Keep your coding speed high to atleast cover all the core functionalities and add validations.
Summary
I participated in an SDE1 LLD/Machine Coding round at Meesho, which required designing a stock/trading system. Despite being allowed to use Google for syntax, I couldn't complete the problem within the 90-minute timeframe, highlighting the need for extensive practice in this area.
Full Experience
90 minutes were given, two interviewrs joined. Test was on hacckerrank. (I prefer Java for LLD, but I did lost touch so I asked the interviewer for syntax help from google, he allowed). I could not do it in 90 minutes. I think it requires a rigourous practive of 10-20 days.
Interview Questions (1)
There exist a stock/Trading System. 1.) Users can place/modify/cancel Orders. 2.) A trade can only be made when selling price is greater than or equal to buying price. If a there are multiple ways then choose the order with older rank. 3.) Maintain a OrderBook which will keep track of unexecuted Orders. 4.) Maintain state for a trade.
-->Maintain Concurrency & thread safety, deal with Exceptions as well. -->Input/Output are not given, you can create urself.
example he gave me to understand (i dont remember correctly but similar to this) user1 buys abc order. user2 sells abc order.
Bonus Feature (It's optional only If you get time solve) 1.) Elimainate all the orders after their expiry date.
Summary
I applied for Meesho's open campus recruitment through HackerEarth and was shortlisted for the Online Assessment. I proceeded through multiple virtual interview rounds covering Data Structures & Algorithms, Low-Level Design, and Hiring Manager questions, but ultimately got rejected.
Full Experience
Applied on HackerEarth for the Open campus recruitment process and got shortlisted (based on resume ig) for the OA.
OA (2 hour and 45 min)
Got 3 medium (upper level) to hard questions. Was able to solve 1 question completely and 2 partially. (Can't share the exact questions)
- Find a subsequence with length k and min score.
- Tree based multiple BFS question.
- Difficult graph based question.
Selected for the virtual interview process. Each round was an elimination round (i was told this in the official mail) and was hosted on google meet.
During the start of each round the interviewer introduced himself and was asked to do the same. So am not repeating this detail in each round individually.
Round 1 (DSA based - 30 min)
Only one question was asked and was told the write pseudocode for it in the google doc provided.
- Multi source BFS problem.
Got call for the 2nd round.
Round 2 (LLD based - 60 min)
Hacker rank's codepair platform was used, which provides a way to do pair programming (multiple people running or writing code on the same file).
Was told that i would be judged on the completeness of the code and then based on the quality/cleanliness and use of OOPs and design patterns in my code.
- Was asked to implement 6 functions for a shopping manager service.
Cleared all the doubts about requirements in the first 15 mins and then got to implementation. Was under time pressure so couldn't give too much time to design since the first and foremost requirement was a working code, still did my best to make it as lossely coupled as possible, while handling all the edge cases which came to my mind as well as choosing the most efficient ways to implement different functions (time complexity wise). Took around 60-65 mins
Than discussed about the code with the interviewer and ran it.
Went above the time limit by a bit, but couldn't have implemented it faster.
Got call for the 3rd round.
Round 3 (Hiring Manager based - 30 min)
- Got asked about my project and role in internship.
- Was asked to give a demo of one of the projects on my resume.
- Got asked some questions on OS fundamentals about mutex, semaphore, deadlock, etc.
- Was asked about my inclination towards a role, like backend or frontend, etc.
- A scaling question related to network.
At the end of the previous round as well as this round, I asked some questions about the work they do and was impressed by the quality and scale of work available at meesho. It definetely changed the image about meesho and other young startups i had in my mind and motivates me to want to work in them.
Edit : Got rejected
Interview Questions (7)
Find a subsequence with length k and minimum score.
Implement 6 functions for a shopping manager service. The implementation should focus on completeness, quality/cleanliness, and use of OOPs and design patterns.
Discuss my project and role during my internship.
Give a demonstration of one of the projects listed on my resume.
Questions on Operating System fundamentals, specifically covering concepts like mutex, semaphore, and deadlock.
Questions about my inclination towards a specific role, such as backend or frontend.
A question related to network scaling.
Preparation Tips
Advice
If you can't think of the optimal solution, keep thinking, atlast if you dont have any option implement the brute force and don't lose hope in the middle of the test, you don't know how others will perform.
Advice
- I took too much time explaining my role in internship, since i did not prepare for questions on it thorougly and was recollecting from my memory about something which happened 2 years back, so my explaination was a bit blurry. So thoroughly go through your projects and internship work, and focus on explaining why you did what you did, instead of explaining tech stack specefic things, like structure or call order etc.
- Also took a bit more time giving the demo of my project, due to starting everything locally, etc. So get your demo ready before the interview itself.
Summary
I successfully navigated the interview process for an SDE Trainee position at Meesho, which included an Online Assessment, multiple technical rounds, and a final managerial/behavioral round, ultimately receiving an offer.
Full Experience
- Resume Shortlisting
2. Online Assessment (OA)- 3 DSA questions
- Knapsack – 10/10
- Tree-based problem – 9/10
- Graph-based problem – 6/10
3. Interview Round 1- One easy-level array question
- ✅ Cleared
4. Interview Round 2- Low-Level Design (LLD) of a Cab Booking System
- ✅ Cleared
5. Interview Round 3- Mostly a deep dive into my resume: projects, previous experience
- Some managerial and behavioral questions
- I felt it went quite well
Edit: Got offer
Interview Questions (2)
I encountered a Knapsack problem as part of the Online Assessment.
During Interview Round 2, I was asked to complete a Low-Level Design (LLD) for a Cab Booking System.
Summary
I went through an off-campus interview process for an SDE trainee role at Meesho, which included an online test and two interview rounds, but I was not able to clear the second round.
Full Experience
- Off campus Opportunity
2. Resume Selection -->Cleared
3. Online Test --> 3 coding question
a. KnapSack
b. Tree
b. Graph
Cleared
4. Interview R1 --> LCS and Linked List easy question -->Cleared
5. Interview R2 --> LLD design a cart and coupon system -->Nah
A lot of inconsistency, interviewers were sitting in office with so much background noise I could not hear a thing they said to be honest.
Interview Questions (2)
A coding question related to finding the Longest Common Subsequence (LCS) of two sequences.
Design a cart and coupon system at a low-level, considering its components, data models, and interactions.
Summary
I recently appeared for the Meesho hiring process for a Software Developer Trainee role and wanted to share my full journey from Online Assessment to the final round. Unfortunately, I received a rejection email the next day, but I found the process structured and fair for the initial coding rounds.
Full Experience
🧵 My Meesho Interview Experience – 2025 | Role: Software Developer Trainee
Hi everyone!
I recently appeared for the Meesho hiring process and wanted to share my full journey—from Online Assessment to the final round. Hope this helps others preparing for similar roles.
✅ Online Assessment (HackerEarth)
- Platform: HackerEarth
- Problems: 3 DSA coding problems
- Solved: 2.5/3 (2 full + partial third)
- Status: Cleared to next round
- Note: Received interview confirmation through email.
🧠 Round 1 – DSA Coding Round (45 mins)
- Platform: Google Meet (Live Coding)
- Problem: Tree-based question (framed using Meesho content style)
- Solved in ~20 mins
- Last 10 mins: Interviewer asked me to write comments and clean the code
- Outcome: Was informed during the call itself that I’m moving to Round 2
💻 Round 2 – Machine Coding Round (60 mins)
- Platform: HackerRank
- Task: Implement a fully working Inventory Management System
- Requirements: Full functionality + edge case handling
- Status: All test cases passed
- Outcome: Again, got confirmation during the call that I was selected for Round 3
🧑💼 Round 3 – HR + Problem Solving (30 mins)
- Format: Mixed discussion
- Discussion: General intro, background, project talk
- Challenge: Interviewer threw a problem-solving question without any examples or clarity. It felt more like a brain-teaser than a structured problem.
- My response: Discussed multiple edge cases and possible approaches; he mentioned that I was close to solving it.
❌ Final Outcome
- Unfortunately, I got a rejection mail the next day.
- Still a great experience overall – I liked the structured and fair process for R1 and R2.
Interview Questions (1)
Implement a fully working Inventory Management System with full functionality and edge case handling.
Preparation Tips
📌 Takeaways
- Be sharp with DSA: Especially Trees, Graphs, and custom problem statements.
- Machine coding is important – focus on clean code, structure, and handling edge cases.
- HR rounds can get unpredictable – stay calm and reason out your thoughts clearly even if problem is vague.
Summary
I interviewed for an SDE-1 position at Meesho in Bengaluru, which included an Online Assessment, Machine Coding, and Hiring Manager rounds. Despite perceived weaknesses in certain areas, I successfully joined the company.
Full Experience
Status:- 2024 Graduate from A private University Working as a SDE-1 At a well settled Startup Location Bengaluru
Interview Info 1st:- OA round 2nd:- Machine Coding Round 3rd:- Hiring Manager Round
Applied through Instahyre and 1 week later got an email from recruiter with the Hackerrank OA Assignment Attached
OA Round
3 DSA Based questions are there in the OA round Questions are not too difficult if you are practicing for DSA regularly
1st one is regarding some sorting and comparison based question in groups of numbers.
2nd one is related to dp on stocks not exactly from the standard.

3rd one is the standard DP question https://leetcode.com/problems/unique-paths/description/
similar to this one.
2nd Round Machine Coding Round Interviewer was so friendly as it is my first machine codeing round. He already told me what is expected from this round The Round is on Hackerrank platform similar to coderpad.
I got a question to design a Vending machine system. In that user can check the number of items, stock up the inventory, add unit of a particular item, user can do transaction, user can get the change.
I am attaching the code for better understanding
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import javax.naming.InitialContext;
import com.google.common.collect.Multiset.Entry;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;
public class Product{
int productCode;
String productName;
int price;
public Product(int productCode, String productName, int price){
this.productCode= productCode;
this.productName =productName;
this.price = price;
}
public int getProductCode(){
return productCode;
}
public String getProductName(){
return productName;
}
public int getProductPrice(){
return price;
}
}
public class PaymentService{
int amount;
public PaymentService(){
amount = 0;
}
// public void setAmount(int amount){
// this.amount = amount;
// }
// public int getAmount(){
// return amount;
// }
public void insertMoney(int coins, Map<Product,Integer> selectedproductQuantity){
amount = amount + coins;
int totalCartPrice = calculateCurrentCartPrice(selectedproductQuantity);
if(amount<totalCartPrice){
System.out.println(String.format("Payment received: %d. Remaining amount: %d", amount, totalCartPrice-amount));
}else {
String items ="";
for(Map.Entry<Product,Integer> entry : selectedproductQuantity.entrySet()){
items+= entry.getKey().getProductName();
items+= ' ';
}
resetAmount();
System.out.println(String.format("Payment received: %d. Dispensing %s. Returning change: %d", amount, items, amount-totalCartPrice));
}
}
public void resetAmount(){
amount = 0;
}
private Integer calculateCurrentCartPrice(Map<Product,Integer> selectedproductQuantity){
int totalPrice =0;
for(Map.Entry<Product,Integer> entry : selectedproductQuantity.entrySet()){
Product product = entry.getKey();
Integer quantity = entry.getValue();
totalPrice += product.getProductPrice()*quantity;
}
}
}
public class InventoryService{
Map<Integer, Integer> productQuantity;
public void registerItemIntoInventory(Product product, int quantity){
productQuantity.put(product.getProductCode(), quantity);
}
public void addStockInMachine(int itemCode, int quantity){
Integer currentProductQuantity = productQuantity.getOrDefault(itemCode, 0);
currentProductQuantity+=quantity;
productQuantity.put(itemCode, currentProductQuantity);
}
public Map<Integer,Integer> getProductQuantityMap(){
return productQuantity;
}
}
public class VendingMachine{
InventoryService inventoryService;
PaymentService paymentService;
Map<Integer, Product> productMap;
Map<Product,Integer> productCart;
public VendingMachine(){
this.inventoryService = new InventoryService();
this.productMap = new HashMap<>();
this.productCart = new HashMap<>();
this.paymentService = new PaymentService();
}
public void viewItems(){
Map<Integer,Integer> productQuantityMap = inventoryService.getProductQuantityMap();
List<Product> products = new ArrayList<>(productMap.values());
if(products.isEmpty()){
System.out.println("No items available");
}
for(Product product: products){
int quantity = productQuantityMap.get(product.getProductCode());
System.out.println(String.format("%d %s %d %d", product.getProductCode(), product.getProductName(), product.getProductPrice(), quantity));
}
}
public void registerItem(String productName, int price, int quantity){
Product product = new Product(productMap.size()+1, productName, price);
productMap.put(product.getProductCode(), product);
inventoryService.registerItemIntoInventory(product, quantity);
System.out.println(String.format("Item added successfully, item_code: %d", product.getProductCode()));
}
public void selectItem(int itemCode){
Product product = productMap.get(itemCode);
Map<Integer,Integer> productQuantityMap = inventoryService.getProductQuantityMap();
int currentProductQuantity = productQuantityMap.get(itemCode);
if(currentProductQuantity==0){
System.out.println("Item is out of stock");
}
productCart.put(product, productCart.getOrDefault(product, 0) + 1);
productQuantityMap.put(product.getProductCode(), productQuantityMap.get(product.getProductCode())-1);
System.out.println(String.format("You selected: %s %d", product.getProductName(), product.getProductPrice()));
}
public void addStock(int itemCode, int quantity){
inventoryService.addStockInMachine(itemCode, quantity);
}
public void cancelTransaction(){
for(Map.Entry<Product,Integer> entry : productCart.entrySet()){
Product product = entry.getKey();
int quantity = entry.getValue();
inventoryService.addStockInMachine(product.getProductCode(), quantity);
}
productCart = new HashMap<>();
paymentService.resetAmount();
}
public void insertMoneyIntoMachine(int coins){
if(productCart.size()==0){
System.out.println("Please select a item first");
return;
}
paymentService.insertMoney(coins, productCart);
}
}
class Result {
/*
* Complete the 'vend' function below.
*
* The function accepts STRING_ARRAY args as parameter.
*/
public static void vend(List<String> args) {
VendingMachine vendingMachine = new VendingMachine();
for(String arg : args){
String part[]= arg.split(" ");
String command = part[0];
switch(command){
case "VIEW_ITEMS":
vendingMachine.viewItems();
break;
case "REGISTER_ITEM":
vendingMachine.registerItem(part[1], Integer.parseInt(part[2]), Integer.parseInt(part[3]));
break;
case "ADDSTOCK":
vendingMachine.addStock(Integer.parseInt(part[1]),Integer.parseInt(part[2]));
break;
case "SELECT_ITEM":
vendingMachine.selectItem(Integer.parseInt(part[1]));
break;
case "INSERT_MONEY":
vendingMachine.insertMoneyIntoMachine(Integer.parseInt(part[1]));
break;
case "CANCEL":
vendingMachine.cancelTransaction();
}
}
}
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
int argsCount = Integer.parseInt(bufferedReader.readLine().trim());
List<String> aargs = IntStream.range(0, argsCount).mapToObj(i -> {
try {
return bufferedReader.readLine();
} catch (IOException ex) {
throw new RuntimeException(ex);
}
})
.collect(toList());
Result.vend(args);
bufferedReader.close();
}
}
make sure to communicate properly with interviewer before making any design decisions or any class decisions. Communication is more important here.
The above code is not compiled as their compiler has some issue that's why i gave a dry run to interviewer.
3rd Round Hiring Manager Round Got confirmation for this round 2 days post maching coding but it is scheduled after a week. This is my first Hiring manager round a little nervous, as my computer fundamentals are weak.
Round started with an introduction from hiring manager side and then from my end too. Do make sure to add some more points into your introduction regarding the impact you have made in your current role.
This round was quite resume grill round, Make sure whatever word you are using while communication, He will ask questions from it.
Read your resume properly and questions to self by thinking like you are not aware about anything in this project.
Post resume grilling, he started asking memory management, Concurrency, race conditions, stack and heaps in the memory.
There are questions on OS too like on indexing.
Networking questions are also there on sockets, TCP/UDP protocols.
Internals of Hashmaps, LFU, LRU. It's implementation everything is verbally.
Behavioral questions how do you handle conflict between you are your colleagues. how do you manage criticism while work. how do you handle payload from other stakeholders while you are fully overloaded.
Probably i will be getting rejected, because I don't have answer to network and os memory fundamentals.
Update:- Joined
Interview Questions (7)
Design a Vending Machine system where users can check available items, stock up inventory, add units of specific items, perform transactions, and receive change. Communication with the interviewer on design decisions was emphasized.
Questions on memory management, concurrency, race conditions, and the concepts of stack and heap memory.
Questions related to Operating Systems, specifically on indexing.
Networking questions covering sockets, TCP, and UDP protocols.
Detailed questions on the internals of Hashmaps, as well as LFU (Least Frequently Used) and LRU (Least Recently Used) caching mechanisms and their implementations.
Behavioral questions included: How do you handle conflict between you and your colleagues? How do you manage criticism while at work? How do you handle payload from other stakeholders when you are fully overloaded?
Summary
I interviewed for a Business Analyst role at Meesho in August 2024, which started with an online assessment followed by a technical interview primarily focused on SQL. Unfortunately, I was rejected after the first interview round and did not proceed to the second.
Full Experience
My interview process for the Business Analyst position at Meesho began with an online assessment. This assessment was 90 minutes long and consisted of 25 multiple-choice questions along with 3 SQL queries to solve.
Following the online assessment, I had a technical interview. This round lasted between 20-30 minutes. We started with mutual introductions, and then the interviewer shared a document containing questions where I was expected to type my answers directly.
The questions in the technical interview were primarily SQL-based:
- The first question involved analyzing a given database schema and then predicting the output of several SQL queries that extensively used window functions like
ROW_NUMBER(),RANK(), andDENSE_RANK(). - The second question asked me to write a straightforward SQL query based on applying a
WHEREcondition to the database. - The third question required me to construct a query involving grouping data and using a
HAVINGclause. - The final question was described as a hard-level SQL query, necessitating the use of subqueries and
WITHstatements.
Although I completed this round, I was unfortunately not shortlisted to proceed to the second interview round.
Interview Questions (1)
Given a sample database table structure and data, predict the output of various SQL queries. These queries specifically involve advanced SQL concepts such as window functions: ROW_NUMBER(), RANK(), and DENSE_RANK(). The task was to understand the behavior of these functions and how they apply to the given dataset.
Summary
I interviewed for the SDE-1 Backend role at Meesho, which involved an online assessment and a machine coding round to design an order management system. Despite a decent approach to the system design problem, I faced challenges with specific inventory locking requirements and time management, leading to a likely rejection.
Full Experience
I participated in an online assessment conducted on HackerRank, which consisted of three coding questions: two medium and one hard. The HR mentioned that I needed to complete at least 58% to qualify for the next round. After about 1.5 weeks, I was scheduled for a 1-hour 30-minute machine coding round.
For the machine coding round, I was provided with a HackerRank link but also allowed to use my own IDE. I opted for HackerRank, which unfortunately cost me some time dealing with boilerplate code. The main task was to design an order management system for an e-commerce platform. I needed to implement four core functions:
addProduct(productid, quantity)createOrder(orderid, list of product ids and their corresponding quantities)confirmOrder(orderid)getStock(productid)
createOrder is called, and the stock should only be reduced when confirmOrder is called. This particular detail caused some confusion, and I only partially understood it initially.
The interviewer left and an HR proctored the session, with the interviewer planning to rejoin at the end. I proceeded with my implementation, but for the inventory locking, I initially thought of a
cancelOrder function to refill stock if an order was cancelled, reducing inventory at createOrder. The interviewer was not pleased with this approach upon rejoining. After some quick thinking, I came up with an alternative: maintaining two variables for product counts – one for 'fully available' and another for 'not yet confirmed but in order'. I discussed this revised approach and the necessary changes, which seemed to satisfy the interviewer. However, by then, time had run out, and I wasn't able to implement these changes or even run a single test case.
My feedback indicated that the interviewer was happy with my overall Low-Level Design (LLD), but suggested I could improve on clarifying requirements and time management. I believe using my own IDE might have saved considerable time spent manually coding getters, setters, and constructors.
Given that the HR is unresponsive, I suspect the verdict is a rejection.
Interview Questions (2)
Given an array, find the number of pairs (a, b) such that a^b <= a&b, where a and b are elements from the array.
Design an order management system for an e-commerce platform. The system should implement the following core functionalities:
addProduct(productid, quantity): Adds a product with a specified quantity to the inventory.createOrder(orderid, list of product ids and their corresponding quantities): Creates a new order. Inventory for products in the order should be blocked at this stage.confirmOrder(orderid): Confirms an existing order. The stock for products in the order should be reduced upon confirmation.getStock(productid): Retrieves the current stock level for a given product.
Summary
I interviewed for the SDE-2 role at Meesho in Bengaluru, which involved a DSA round and a Machine Coding round, ultimately leading to a rejection.
Full Experience
I recently interviewed for the SDE-2 position at Meesho in Bengaluru. My background includes 2.3 years of experience as a fullstack software developer at a product-based MNC. The interview process consisted of two main rounds.
Round 1 (DSA): This one-hour round was conducted on Hackerrank. I was presented with two problems. The first problem was similar to Number of Visible People in a Queue on LeetCode. The second problem was exactly Find the Longest Equal Subarray from LeetCode. I managed to pass all test cases for the first problem and 11 out of 15 for the second, which resulted in my selection for the next round.
Round 2 (Machine Coding): This round lasted two hours and focused on designing a system similar to Splitwise. The requirements included handling expenses split in three ways: EQUAL, EXACT, and PERCENTAGE. I was asked to implement four specific methods: addUser(), splitExpense(), showExpenses(), and showExpensesForUser(). While I structured the code well and applied some design patterns, I unfortunately couldn't complete the full implementation within the allotted time, which led to my rejection.
Interview Questions (3)
You are given an integer array heights of length n representing the heights of people standing in a queue. For each person i, you need to count the number of people j such that i < j, heights[i] > heights[j], and for all k such that i < k < j, heights[k] < heights[i]. Return an integer array answer of length n where answer[i] is the number of people i can see to their right in the queue.
You are given a 0-indexed integer array nums and an integer k. A subarray nums[i..j] is considered an equal subarray if all elements inside of it are equal. Return the length of the longest equal subarray nums[i..j] such that j - i + 1 - count(nums[i..j]) <= k where count(nums[i..j]) is the number of distinct elements in the subarray. In simpler terms, you can delete at most k elements from the subarray to make all remaining elements equal.
Design a system similar to Splitwise. The system should support three ways of splitting expenses: EQUAL, EXACT, and PERCENTAGE. The core functionalities to be implemented include adding users, splitting expenses, showing all expenses, and showing expenses for a specific user. Specifically, I needed to implement the following methods: addUser(), splitExpense(), showExpenses(), and showExpensesForUser().
Summary
I successfully interviewed for the SDE 1 position at Meesho in Bangalore and received an offer. The process involved an online assessment with DSA problems, a machine coding round to design a social media system, a code pair round focusing on DSA, and a final hiring manager discussion about my projects and system design concepts.
Full Experience
I got a call from a recruiter on March 3, 2024, after they found my profile on LinkedIn. They inquired about my current tech stack and compensation before scheduling an invite for an Online Assessment. My experience was 8 Months Full-Time and 6 Months Internship.
Round - I: Online Assessment (March 8 | 100 mins | Hackerrank Platform)
The OA consisted of 3 DSA problems:
- Ques 1 (Hard): Given a 2-d array of integers of size n^2
data,data[i]represents that the ith data point was inserted into the cache at timedata[i][0]. It lives in the cache fordata[i][1]time. For an array ofqqueries,queries[q], find the number of data items in the cache at each timequery[i]. - Ques 2 (Medium): Given two arrays each of length
n,arr1, andarr2, in one operation, any two elements of an array can be swapped. This can occur any number of times. Find the maximum possible sum ofi*(arr2[i]-arr1[i])for all1 <= i <= nafter rearranging the arrays. - Ques 3 (Medium): The beauty of an array of length
mis defined as the number of integersi (1 <= i <= m)such thata[i]=i. Given an arrayarrofnintegers, the following operations can be performed on the array while its length is greater than 1: Choose somei (1 <= i <= length of the array)and deletearr[i]without changing the order of the remaining elements.
I was able to solve all three questions within the given time constraint. 😊
Round - II: Machine Coding (April 2 | 90 mins | Hackerrank | Virtual Interview)
I received a call from the recruiter on March 12, informing me that I had qualified for the next round, which was scheduled for April 2.
The task was to design a Social Media system with the following functionalities:
- Create Post
- Delete Post
- Get Feed (Latest of the user & their followers)
- Get Feed Paginated
- Follow user
- Unfollow user
This machine coding round involved several test cases that needed to be cleared. I was able to explain my whole approach and code it in just 60 minutes. There were mandatory and bonus functions to implement, and I successfully implemented all of them. 🧑💻
Round - III: Code Pair (May 21 | 60 mins | Hackerrank | Virtual Interview)
The HR confirmed on April 15 that I had qualified for the next round, which was scheduled for May 21.
The interviewer told me that there would be two DSA questions to be solved in 60 minutes.
- Ques 1 (Medium): It was related to a stack-based balls collision question, similar to Asteroid Collision. I was able to solve & describe it in 40 mins. This question took more time due to edge cases which needed to be handled properly.
- Ques 2 (Medium): It was a hashmap and string based question.
I was able to solve both questions within the given time duration.
Round - IV: HM Round (May 30 | 60 mins | Google Meet)
I received confirmation from HR that I had qualified for the HM round, which was scheduled for May 30.
The interview began with the interviewer introducing himself. He had 11 years of experience and had been with Meesho for the past 6 years. Afterward, I introduced myself, and we proceeded to discuss my projects in detail. The conversation then delved into handling high-traffic scenarios and various transactional concepts in Spring Boot.
Result: I am pleased to share that I have received confirmation from HR that I have been selected for the SDE 1 position at Meesho. ✌️
Interview Questions (5)
Given a 2-d array of integers of size n^2 data, data[i] represents that the ith data point was inserted into the cache at time data[i][0]. It lives in the cache for data[i][1] time. For an array of q queries, queries[q], find the number of data items in the cache at each time query[i].
Given two arrays each of length n, arr1, and arr2, in one operation, any two elements of an array can be swapped. This can occur any number of times. Find the maximum possible sum of i*(arr2[i]-arr1[i]) for all 1 <= i <= n after rearranging the arrays.
The beauty of an array of length m is defined as the number of integers i (1 <= i <= m) such that a[i]=i. Given an array arr of n integers, the following operations can be performed on the array while its length is greater than 1: Choose some i (1 <= i <= length of the array) and delete arr[i] without changing the order of the remaining elements.
Design a Social Media with following functionalities:
- Create Post
- Delete Post
- Get Feed (Latest of the user & their followers)
- Get Feed Paginated
- Follow user
- Unfollow user
Summary
I interviewed for an SDE2 role at Meesho, where I tackled a machine coding challenge to design a ride-sharing application. Despite implementing the core functionalities and demonstrating design patterns, I was ultimately rejected.
Full Experience
During my SDE2 interview at Meesho, I was presented with a machine coding problem: to design a ride-sharing application. I implemented the core features including drivers publishing rides, riders searching (with an earliest strategy), and booking rides. I also added bonus functionalities to show user-specific ride histories. My solution involved designing classes for User, Vehicle, and Ride, along with a RideManager implemented as a singleton to handle concurrency. I mentioned the possibility of using a factory pattern for selection strategies but couldn't implement it due to time constraints. Unfortunately, my interview resulted in a rejection.
Interview Questions (1)
Design a ride sharing application with the following core functionalities:
- Driver can publish a ride.
- Rider can search for a ride based on strategies such as shortest, fastest.
- Rider can select a ride.
- Show all rides taken and published by a user.
- Calculate fuel saved.
Summary
I recently interviewed at Meesho for the SDE-2 role and received an offer. The interview process consisted of three distinct rounds: a Problem Solving & Data Structures round with two specific coding problems, a Machine Coding round focused on designing the Snake & Ladder game, and a final Hiring Manager round covering project discussions and behavioral questions.
Full Experience
I'm a B.E. (IEE - 2020 Graduate) from a Tier 1 college with 2.2 years of experience as an SDE 1 - Backend at a product-based company. Recently, I interviewed at Meesho for the SDE-2 position. The interview process comprised three rounds.
The first was a Problem Solving & Data Structures Round lasting an hour. I was given two coding questions to solve. The first problem was 'Minimum steps to reach target by a knight', and the second was 'Remove All Adjacent Duplicates in String II'. I was able to approach both effectively.
Next was the Machine Coding Round, which lasted 1 hour and 30 minutes. This round involved designing the classic Snake & Ladder game. I focused on designing a robust and extensible solution for this challenge.
Finally, I had the Hiring Manager Round, which was an hour long. This round primarily revolved around discussions about my past projects and a series of behavioral questions to assess my fit within the team and company culture.
Ultimately, I received an offer and was selected for the SDE-2 role.
Interview Questions (3)
You are given a string s and an integer k. A k-duplicate removal consists of choosing k adjacent and identical letters from s and removing them, causing the left and right sides of the deleted substring to concatenate. We repeatedly make k-duplicate removals on s until we no longer can. Return the final string after all such duplicate removals have been made. The task is to implement this logic efficiently.
Design a functional and extensible Snake & Ladder game. The design should cover core game mechanics such as player turns, dice rolls, board representation (including snakes and ladders positions), and win conditions. Additionally, consider aspects like object-oriented design principles, extensibility for future features (e.g., multiple players, different board sizes), and error handling.