Company Interview Questions · Product & Retail Tech

Myntra & Meesho: Data Scientist / Analyst

❓ 6 questions🏢 Myntra & Meesho🆕 Recent reports

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

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

Sources

Created by Ajeetkumar