Curated interview practice questions with answers. These are practice scenarios, not a verified list of past interview questions.
About Groww hiring for Data Science roles
Groww is an Indian investment platform offering stocks, mutual funds, futures and options, fixed deposits and other financial products. Its engineering and analytics teams work on trading systems, user experience, risk and growth. It hires for software engineers, SDETs, data analysts and data scientists. Many users are first-time retail investors.
For Data Science roles, this Groww practice set focuses most on Machine Learning (6), Deep Learning and NLP (6), A/B Testing & Experimentation (5), Feature Engineering (5). It has 6 easy, 26 medium, 8 hard questions, so you can start easy and work up to the harder ones.
Company type
Fintech
Headquarters
Bengaluru, India
Main India offices
Bengaluru
Groww Data Science interview process
Online assessment or assignment
Technical round (coding or SQL)
Design or problem solving round
Hiring manager round
Typical pattern based on public candidate experiences. Rounds vary by role, team and year.
Solved for GrowwStart practicing
3 QUESTIONS FREESign up to unlock the full question bank and track your progress.Unlock every question and answer, then continue practising company-wise and package-wise.
✓ 3 questions free • Unlock the rest in seconds
01
Your test shows a 2 percent lift in conversion, but revenue per user went down. What do you do?
Do not ship on conversion alone. Check whether the change shifted buyers to cheaper items, increased discount usage or pulled in low-value orders. Break down revenue into conversion times average order value, look at item mix, and confirm the revenue drop is statistically meaningful rather than noise. Then go back to the agreed primary metric and guardrails; if revenue is the business goal, it should guide the decision.
They store same-type values in contiguous memory and run vectorised operations in compiled C, avoiding Python loop overhead and per-object type checks.
g = df.groupby('customer_id')['amount']
total = g.transform('sum')
count = g.transform('count')
# Leave-one-out mean; NaN when it is the customer's only order
df['avg_other_orders'] = (total - df['amount']) / (count - 1)
df.loc[count == 1, 'avg_other_orders'] = float('nan')
# For time-aware features, use only earlier orders instead
05
What are quantile and power transforms such as Box-Cox and Yeo-Johnson, and when do you use them?
Power transforms reshape a skewed feature to look more normal. Box-Cox needs strictly positive values, while Yeo-Johnson also handles zero and negative values; both learn a lambda parameter from training data. A quantile transform maps values to a uniform or normal distribution by rank, which is robust to outliers. They help linear models, distance-based methods and neural networks, but tree models rarely need them.
First understand why data is missing. Then drop rows or columns with too many nulls, impute with mean/median/mode or a model (KNN), add a 'was_missing' flag, and fit imputers on training data only.
07
What is a sample ratio mismatch in an experiment and what do you do about it?
A sample ratio mismatch means the observed split between groups differs from the planned split, for example 52 to 48 instead of 50 to 50 with a large sample. A chi-square test on the counts confirms it. It usually signals a bug in assignment, redirects, bot filtering or logging, so the results cannot be trusted. Do not analyse the metric; find and fix the root cause and rerun the test.
08
Your sales forecast scores well in k-fold cross-validation but fails in production. What could be wrong with the validation?
Random k-fold mixes future and past rows, so the model trains on data from after the period it predicts. That leaks information and inflates scores. Use time-based splits instead: train on an expanding or rolling window and validate on the next period, like TimeSeriesSplit in scikit-learn. Leave a gap between train and validation when features use lagged values, so the test reflects real forecasting conditions.
Use grid search, random search or Bayesian optimisation with cross-validation, starting with a coarse random search and narrowing the promising ranges.
10
Write a basic PyTorch training loop for one epoch.
model.train()
for X, y in train_loader:
X, y = X.to(device), y.to(device)
optimizer.zero_grad()
logits = model(X)
loss = loss_fn(logits, y)
loss.backward()
optimizer.step()
# evaluation
model.eval()
with torch.no_grad():
val_loss = sum(loss_fn(model(Xv.to(device)), yv.to(device)).item() for Xv, yv in val_loader)
11
You need to use a device_id column with millions of unique values in a streaming model. How would feature hashing help?
Feature hashing, the hashing trick, maps categories or tokens into a fixed number of columns using a hash function, without storing a vocabulary. It handles very high-cardinality or ever-changing values, like URLs or device IDs, with constant memory and works well in streaming systems. The trade-off is collisions, where different values share a column, and the features cannot be reversed for explanation. Choose a large enough number of buckets.
Convolution filters slide over the input to detect local patterns, pooling reduces size, and deeper layers combine edges into shapes and objects. Used mainly for images.
13
Write Python code to calculate the sample size per group needed to detect a lift from 5 percent to 5.5 percent conversion.
RFM stands for recency, frequency and monetary value. From the transactions table, for each customer as of a cut-off date: recency is days since the last purchase, frequency is the number of orders in the last 90 days, and monetary is total or average spend in that window. Compute them using only data before the cut-off, add trends like spend this month versus last, and the label from the period after.
15
What are precision and recall trade-offs in practice?
Raising the threshold improves precision but lowers recall. Fraud detection leans to recall, while spam filters often prefer precision; choose by the cost of each error.
16
Write pytest unit tests for a feature function that computes days since last purchase.
SELECT
a.variant,
COUNT(DISTINCT a.user_id) AS users,
COUNT(DISTINCT o.user_id) AS converters,
ROUND(COUNT(DISTINCT o.user_id) * 1.0
/ COUNT(DISTINCT a.user_id), 4) AS conv_rate
FROM assignments a
LEFT JOIN orders o
ON o.user_id = a.user_id
AND o.created_at >= a.assigned_at
WHERE a.experiment_id = 'checkout_v2'
GROUP BY a.variant;
A large language model is a neural network, usually a decoder-only transformer, trained on huge amounts of text to predict the next token. With billions of parameters and further instruction tuning, it can answer questions, summarise, write code and follow instructions. It does not look up facts; it generates likely text based on patterns learned in training, so it can be fluent but wrong. Data scientists use LLMs through APIs or open-weight models.
20
You must classify support messages into 40 categories, but some categories have only 20 examples. What do you do?
Start with a pretrained sentence embedding model plus a simple classifier, or fine-tune a small transformer with class weights. For the rare categories, try few-shot approaches such as SetFit or an LLM with examples in the prompt, and generate or collect more examples. Merge categories that are rarely distinguishable. Report per-class F1 rather than overall accuracy, and route low-confidence predictions to a human queue.
An AI agent is an LLM that works in a loop: it plans a step, calls a tool, reads the result and decides the next step until the goal is met. For example, it might query a database, run Python on the result and write a summary. Agents handle multi-step tasks but are less predictable, slower and costlier than a single call. Good designs limit tools and steps, log every action and keep a human check for risky actions.
It lets a model weigh which input positions matter most for each output, computing weighted combinations of values from query-key similarity. It is the core of transformers.
23
The average delivery time is 30 minutes, yet many customers complain about late orders. How do you investigate?
An average hides the shape of the distribution. Delivery times are usually right-skewed, so a 30-minute mean can include many orders taking 60 minutes or more. Look at the median, the 90th and 95th percentiles and a histogram, then break them down by city, time of day and restaurant. Report the share of orders beyond the promised time, because that is what customers actually experience.
24
You added an index but the query is still slow. How do indexes work, and when do they fail to help or even hurt?
An index is a separate sorted structure, usually a B-tree, that lets the database find rows without scanning the whole table, like a book index. It speeds up filters, joins and sorting on the indexed columns. Indexes cost storage and slow down inserts, updates and deletes because each index must be updated. They may be ignored for low-selectivity columns or when a function is applied to the column in WHERE.
25
What is Bayesian A/B testing and how are its results reported?
Bayesian A/B testing starts with a prior on each variant's metric, updates it with observed data and produces a posterior distribution. Instead of a p-value, you report things like the probability that treatment beats control, say 94 percent, and the expected loss if you choose the wrong variant. Business teams find this easier to interpret. Priors must be chosen sensibly, and continuous monitoring still needs discipline about decision rules.
26
Describe a production incident with a model and how you handled it.
Situation: one morning our recommendation model started showing the same five products to all users. Task: restore service and find the cause. Action: I rolled back to the previous model version within 20 minutes, then traced the issue to an upstream table that had arrived empty, so all user features were defaults. Result: we added data volume checks before scoring and a blameless postmortem. Rollback readiness saved us that day.
27
Write a FastAPI endpoint that serves predictions from a saved scikit-learn model.
Guardrails are checks around the model that keep inputs and outputs safe and on-topic. Input guardrails detect prompt injection, abuse or off-topic requests. Output guardrails check for personal data, toxic content, policy violations or invalid formats before the answer reaches the user. They can be rules, classifiers or a second LLM call. Good guardrails also define fallback responses and log blocked cases for review.
29
Tell me about a time you found a mistake in your own analysis after sharing it.
Situation: after presenting a retention report, I noticed I had counted test accounts as users. Task: correct it before decisions were made. Action: I reran the numbers that evening, informed my manager and the audience with a short note showing old and new figures and what changed, and added a filter and a check to the shared query. Result: the conclusion held with smaller numbers, and the team valued the transparency.
30
A customer asks why their loan application was rejected by your model. How do you respond?
I would give a clear, individual explanation, not a technical dump. Using SHAP or reason codes, I would list the top factors, such as high existing EMI burden or short credit history, and say what could improve the outcome. I would also check that the model does not rely on protected attributes or close proxies. For regulated lending, a human review path and documented reason codes are essential.
31
Tell me about a time you deployed a model under a tight deadline.
Situation: a pricing model had to go live before a sale in ten days. Task: deploy safely in that window. Action: I cut scope to batch scoring instead of real-time, reused our standard Docker and Airflow template, wrote tests for the key features and set up a dashboard for score distribution. Result: it went live two days early and ran without incidents during the sale. Real-time scoring followed a month later.
32
How do you check whether a variable is normally distributed?
Start visually with a histogram and a Q-Q plot; points close to the straight line suggest normality. Check skewness and kurtosis values. Then use a formal test such as Shapiro-Wilk for small samples or Anderson-Darling. Remember that with very large samples, tests flag tiny harmless deviations, so judge by the plots too. If data is skewed, consider a log transform or a non-parametric method.
33
Write a Python function that deterministically assigns users to experiment variants using hashing.
import hashlib
def assign(user_id, experiment, variants=('control', 'treatment'), weights=(50, 50)):
key = f'{experiment}:{user_id}'.encode()
bucket = int(hashlib.sha256(key).hexdigest(), 16) % 100
cumulative = 0
for v, w in zip(variants, weights):
cumulative += w
if bucket < cumulative:
return v
# Same user + experiment always gets the same variant;
# salting with the experiment name keeps tests independent
34
A feature works well offline but is not available at prediction time in production. How do you handle this?
This is training-serving skew. The feature might be computed from data that arrives later, like final order status. First confirm exactly when each feature is available in production. Rebuild the training set using point-in-time values, as they were at prediction time, or drop the feature. A feature store with point-in-time joins and the same feature code for training and serving prevents this. Expect offline scores to drop, but they become honest.
35
Write Pandas code to read a large CSV in chunks and compute total sales per city.
# process 1 million rows at a time
import pandas as pd
totals = {}
for chunk in pd.read_csv('sales.csv', usecols=['city', 'amount'], chunksize=1_000_000):
part = chunk.groupby('city')['amount'].sum()
for city, amt in part.items():
totals[city] = totals.get(city, 0) + amt
result = pd.Series(totals).sort_values(ascending=False)
36
Why do we use activation functions? Why is ReLU popular?
WITH steps AS (
SELECT user_id,
MAX(CASE WHEN event = 'visit' THEN 1 ELSE 0 END) AS visited,
MAX(CASE WHEN event = 'add_to_cart' THEN 1 ELSE 0 END) AS carted,
MAX(CASE WHEN event = 'purchase' THEN 1 ELSE 0 END) AS purchased
FROM events
WHERE event_date >= '2026-10-01'
GROUP BY user_id
)
SELECT SUM(visited) AS visits, SUM(carted) AS carts, SUM(purchased) AS buyers,
ROUND(100.0 * SUM(carted) / NULLIF(SUM(visited), 0), 1) AS visit_to_cart_pct,
ROUND(100.0 * SUM(purchased) / NULLIF(SUM(carted), 0), 1) AS cart_to_buy_pct
FROM steps;
38
What is the difference between bagging and boosting?
Bagging trains models in parallel on bootstrap samples and averages them (reduces variance, e.g. Random Forest). Boosting trains models one after another, each fixing the previous errors (reduces bias, e.g. XGBoost).
39
Your dataset is highly imbalanced (2% positives). How do you handle it?
Use stratified splits, class weights, resampling (SMOTE or undersampling) and threshold tuning, and judge the model with PR-AUC or F1 instead of accuracy.
40
Write Python code to compute a 95% bootstrap confidence interval for the mean.
import numpy as np
def bootstrap_ci(x, n_boot=10000, seed=42):
rng = np.random.default_rng(seed)
x = np.asarray(x)
means = [rng.choice(x, size=len(x), replace=True).mean() for _ in range(n_boot)]
return np.percentile(means, [2.5, 97.5])
print(bootstrap_ci([12, 15, 9, 20, 14, 11, 18]))
Tips to crack the Groww Data Science interview
Learn stock market basics like orders, settlement, mutual fund NAV and SEBI regulations for domain discussion.
Practise test scenarios for order placement, market hours and payment failures for QA roles.
Prepare analytics cases on first-time investor activation and retention, which are central to Groww's growth.
Keep a one-minute story ready for every project on your CV: problem, your part, tools, result.
Practise the hard questions on this page aloud; Groww interviewers usually ask follow-ups on your first answer.
Frequently asked questions
How many rounds are there in the Groww Data Science interview?
Candidates usually go through 4 stages: Online assessment or assignment; Technical round (coding or SQL); Design or problem solving round; Hiring manager round. The exact rounds change with the role, team, location and your experience, so confirm the process with the recruiter.
Which topics should I prepare for the Groww Data Science interview?
This practice set leans on Machine Learning (6), Deep Learning and NLP (6), A/B Testing & Experimentation (5), Feature Engineering (5). Revise those first, then practise explaining one or two of your own projects end to end, because most Groww interviewers ask you to walk through real work.
Are these the exact questions asked at Groww?
No. These are curated practice questions that match the skills and difficulty usually tested in fintech interviews like Groww's. They are not a leaked or verified list of past questions.
Where does Groww hire Data Science professionals in India?
Groww has large teams in Bengaluru. Openings and locations change often, so check the Groww careers page and filter by city and experience.