Company Interview Questions · Product & Retail Tech
Myntra & Meesho: Data Scientist / Analyst
Myntra & Meesho: Data Scientist / Analyst Interview Experiences. Rounds, real reported questions and model answers, compiled from public candidate reports (sources at the end). Practice mode hides every answer: say your answer first, press Show answer, then rate yourself. Use 🔁 Review again to build your revision list and 🎲 Random question for a quick drill.
About this interview
Compiled from a public Myntra Data Analyst Intern report (Bengaluru, August 2025, offer) and a public Meesho Data Scientist interview guide that aggregates six candidate reports (including a DS2 recommendation case). The questions are paraphrased, and the model answers are written by EasyLearnSpace.
| Myntra | Meesho | |
|---|---|---|
| Role | Data Analyst Intern; Data Scientist (guide) | Data Scientist / Data Scientist 2 |
| Rounds | Technical (SQL, Python, Excel, scenario problems; about 6–7 medium SQL questions) → HR (culture, communication) | (Online assessment: stats, SQL, 1 PySpark) → technical (45–90 min: DSA, SQL, stats, ML) → ML depth on resume projects → case (DS2: recommendation system design) |
| Outcome | Offer accepted | 3 of 6 candidates stopped at round 1; none reported offers |
| Note | Practical SQL decides the result | DSA is often the hardest part; derive the maths behind your projects |
01Rounds at a glance
- E-commerce data science: recommendations, search ranking, pricing, returns prediction, seller analytics.
- Meesho's guide-reported questions: combination sum, asteroid collision, union-find, logistic regression from scratch; chi-square, Type I/II errors; PySpark lazy evaluation and anti-joins; LoRA vs QLoRA.
02Questions and model answers
Q1
Meesho DS2 case: design a product recommendation system for a value-commerce app.
- Users: many are first-time internet shoppers with sparse histories, so handle cold start with popularity by region and category, plus onboarding preferences.
- Pipeline: 1. Candidate generation: item-to-item co-view/co-buy, two-tower embeddings, trending in the user's region and price band. 2. Ranking: a GBM or DNN predicts P(click), P(order) and P(return); combine into expected value = P(order) × margin × (1 − P(return)). 3. Re-ranking: diversity, seller fairness, price band, out-of-stock filtering.
- Evaluation: offline recall@k and NDCG; online A/B on orders per user, GMV and return rate (a guardrail).
- Serving: precompute candidates, run real-time ranking under 100 ms, refresh features hourly.
Q2
What is the difference between LoRA and QLoRA?
- LoRA: freeze the base model and train low-rank adapters (ΔW = BA) on chosen layers. The base runs in FP16/BF16.
- QLoRA: the same adapters, but the frozen base is quantized to 4-bit (NF4) with double quantization and paged optimisers. A 7–70B model can be fine-tuned on a single GPU.
- Trade-off: QLoRA uses far less memory and is slightly slower; quality is usually close to LoRA.
Q3
PySpark: what is lazy evaluation, and what are left semi and left anti joins?
- Lazy evaluation: transformations (
filter,select,join) build a logical plan. Nothing runs until an action (count,collect,write). That lets the Catalyst optimiser push down filters and combine stages. - Left semi join: returns the left rows that have a match (columns from the left only), like
EXISTS. - Left anti join: returns the left rows with no match, like
NOT EXISTS. Example: users who never ordered.
active = users.join(orders, "user_id", "left_semi")
never_ordered = users.join(orders, "user_id", "left_anti")
Q4
Type I vs Type II error, and how power relates to the p-value threshold.
- Type I (α): a false positive, rejecting a true null hypothesis (shipping a feature that does nothing).
- Type II (β): a false negative, missing a real effect. Power = 1 − β.
- A lower α (stricter p-value threshold) lowers power, unless you increase the sample size. Power also rises with the effect size and lower variance.
- Plan the sample size before the test, with α = 0.05 and power 0.8 as typical values.
Q5
Myntra SQL: find the top 3 brands by revenue in each category, excluding returned orders.
WITH rev AS (
SELECT p.category, p.brand, SUM(oi.price * oi.qty) AS revenue
FROM order_items oi
JOIN products p ON p.product_id = oi.product_id
LEFT JOIN returns r ON r.order_item_id = oi.order_item_id
WHERE r.order_item_id IS NULL
GROUP BY p.category, p.brand
)
SELECT category, brand, revenue
FROM (SELECT rev.*, DENSE_RANK() OVER (PARTITION BY category ORDER BY revenue DESC) AS rk FROM rev) t
WHERE rk <= 3;
Q6
Coding: the asteroid collision problem.
def asteroid_collision(a):
st = []
for x in a:
while st and x < 0 < st[-1]:
if st[-1] < -x: st.pop(); continue
if st[-1] == -x: st.pop()
break
else:
st.append(x)
return st
print(asteroid_collision([5, 10, -5])) # [5, 10]
- Use a stack for asteroids moving right. Each element is pushed and popped at most once, so it is O(n).
03How to prepare
- Myntra (analyst / DS): fast, accurate SQL; Excel and pandas for scenarios; clear business communication.
- Meesho: medium–hard DSA, statistics depth, PySpark basics, and recommendation design for sparse, price-sensitive users.
Sources
Created by Ajeetkumar