Skip to content

Rapido Data Science Interview Questions & Answers

Curated interview practice questions with answers. These are practice scenarios, not a verified list of past interview questions.

About Rapido hiring for Data Science roles

Rapido is a Bengaluru-based ride-hailing platform that started with bike taxis and expanded into auto rickshaws, cabs and parcel delivery. It is known for affordable rides and a subscription-style model for driver partners. It hires software engineers, data scientists, data analysts, product managers and operations roles to run its mobility platform across many Indian cities.

For Data Science roles, this Rapido practice set focuses most on Deep Learning and NLP (8), SQL for Data Science (5), MLOps and Model Deployment (5), Feature Engineering (5). It has 3 easy, 26 medium, 11 hard questions, so you can start easy and work up to the harder ones.

Company type
Product
Headquarters
Bengaluru, India
Main India offices
Bengaluru

Rapido Data Science interview process

  1. Online coding or analytics assessment
  2. Technical round 1 (DSA or SQL)
  3. Technical round 2 (design or case)
  4. Hiring manager round

Typical pattern based on public candidate experiences. Rounds vary by role, team and year.

Solved for RapidoStart 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

A Pandas merge suddenly returns many more rows than the left table had. What happened?

Save to ▾
Show answer
The join key is probably not unique on the right side, so each left row matches several right rows and the result multiplies. Check with right['key'].duplicated().sum(). Other causes are null or blank keys matching each other after cleaning, or joining on the wrong column. Fix it by deduplicating or aggregating the right table first, and use merge(..., validate='many_to_one') so Pandas raises an error when the assumption breaks.
02

Your SQL result does not match the number on the official dashboard. How do you resolve it?

Save to ▾
Show answer
I would first align definitions: date range, time zone, filters like test users or cancelled orders, and whether the metric counts users or events. Then compare at a smaller grain, by day or by city, to find where the gap starts. I would read the dashboard's underlying query and check data refresh times. Once found, I would document the agreed definition so the same mismatch does not repeat.
03

Most of your products sell zero units on most days, with occasional sales. Which forecasting approach suits this?

Save to ▾
Show answer
This is intermittent demand, and standard models like ARIMA forecast a small constant that is useless for stocking. Croston's method and its SBA variant forecast the size of non-zero demand and the interval between sales separately. Alternatives are aggregating to weekly level, or using a global gradient boosting model with Tweedie or Poisson loss. Evaluate with MAE or MASE, not MAPE, because zero actuals break percentage errors.
04

You must forecast demand for a new product that has only three weeks of history. What do you do?

Save to ▾
Show answer
Three weeks is too little to learn seasonality, so borrow information. Find similar past launches by category, price band and channel, and use their early sales curves as analogues. A global model trained across many products, with product attributes as features, can also forecast a cold-start item. Combine this with planned marketing spend and business judgement, show a wide interval, and update the forecast weekly as real data arrives.
05

What is the difference between SGD and Adam optimisers?

Save to ▾
Show answer
SGD updates weights using the gradient times a fixed learning rate, often with momentum. Adam keeps running averages of gradients and their squares, giving each parameter its own adaptive step size. Adam converges fast with little tuning and is the default for transformers. Well-tuned SGD with momentum sometimes generalises better on vision tasks. AdamW, which decouples weight decay, is the common choice for modern deep learning.
06

What is mixed precision training?

Save to ▾
Show answer
Mixed precision training uses 16-bit floats, float16 or bfloat16, for most operations while keeping a 32-bit master copy of the weights. It roughly halves memory use and speeds up training on modern GPUs with tensor cores. With float16, a loss scaler multiplies the loss to avoid gradients underflowing to zero. bfloat16 has a wider range and usually needs no scaling. Final accuracy is normally the same as full precision.
07

Tell me about a time you automated a manual step in a machine learning workflow.

Save to ▾
Show answer
Situation: each monthly retrain needed a day of manual data pulls, notebook runs and copying files to servers. Task: make it reliable and hands-off. Action: I wrapped the steps into a scheduled pipeline with data validation checks, logged runs in MLflow and added an approval step before promotion. Result: retraining time dropped from a day to under an hour of review, and there were no more failed deployments from missed steps.
08

Write Python code to compute a 95% bootstrap confidence interval for the mean.

Save to ▾
Show answer
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]))
09

What is the difference between one-hot, label and ordinal encoding?

Save to ▾
Show answer
One-hot encoding creates a binary column per category and suits nominal data like city for linear models. Label encoding maps categories to integers arbitrarily; it is fine for tree models but implies a false order for linear models. Ordinal encoding also uses integers but in a meaningful order, like low, medium, high mapped to 0, 1, 2. Choose based on whether categories have a natural order and which model you use.
10

What is the difference between a subquery and a correlated subquery?

Save to ▾
Show answer
A normal subquery runs once on its own and its result is used by the outer query, for example WHERE price > (SELECT AVG(price) FROM products). A correlated subquery refers to columns of the outer query, so it is logically evaluated once per outer row, for example comparing each product with its own category average. Correlated subqueries can be slow; joins or window functions are usually faster alternatives.
11

Your forecast uses actual daily temperature as a feature and looks great in backtesting, but it performs worse in production. Why?

Save to ▾
Show answer
In backtesting you used the actual temperature for future days, which you will never know at forecast time. In production the model gets a weather forecast, which has its own error, so performance drops. This is a subtle form of leakage. Fix the backtest by using the weather forecast that was available on each forecast date, or lagged actuals, so offline results match what production can really achieve.
12

Describe a project where you worked with very little labelled data.

Save to ▾
Show answer
Situation: we had to classify 50,000 support tickets into 12 categories with only 600 labelled. Task: reach usable accuracy in a month. Action: I used a pretrained sentence embedding model with logistic regression, then active learning to pick the most uncertain tickets for agents to label in short daily batches. Result: with 2,000 labels we reached 86 percent macro F1. I learned that smart labelling beats waiting for perfect data.
13

Every time you rerun yesterday's report, the count of new users changes. What is going on and how do you fix it?

Save to ▾
Show answer
Likely causes are late-arriving events, deduplication running after your query, time zone boundaries or records being updated. First compare runs to see which rows change. Then define the metric on a stable basis: use event time with a fixed cut-off, wait for a data freshness window before publishing, and snapshot the result. Document whether numbers are provisional, and make pipelines idempotent so reruns give the same answer.
14

Soon after a new model version went live, customer complaints spiked. How do you roll back safely and learn from it?

Save to ▾
Show answer
Roll back immediately to the previous registry version through the deployment pipeline, rather than editing servers by hand, and confirm metrics recover. Then investigate offline: compare predictions of both versions on the same traffic, check feature pipelines and data changes, and review what the offline evaluation missed. Add the failing cases to the test set, and use canary or shadow rollout with alert thresholds for future releases.
15

How does dropout work?

Save to ▾
Show answer
During training it randomly switches off a fraction of neurons so the network cannot depend on any single unit, acting as a regulariser against overfitting.
16

Your power analysis says you need 200,000 users per group, but the page gets only 5,000 users a week. What are your options?

Save to ▾
Show answer
Waiting 80 weeks is unrealistic. Options: test a bolder change so the expected effect is larger; use a more sensitive metric closer to the change, like add-to-cart instead of purchase; apply CUPED to reduce variance; or move the test to a higher-traffic page. If none work, accept a larger MDE explicitly, or decide using qualitative research and a staged rollout with monitoring instead of a formal test.
17

What is the vanishing gradient problem?

Save to ▾
Show answer
Gradients shrink as they pass through many layers (for example with sigmoid), so early layers barely learn. ReLU, residual connections and good initialisation help.
18

How does Kubernetes help in serving machine learning models?

Save to ▾
Show answer
Kubernetes runs containerised model services across a cluster. It restarts failed containers, scales the number of replicas based on traffic or CPU, rolls out new versions gradually and can roll back, and schedules GPU workloads on the right nodes. Tools built on it, like KServe or Seldon, add model-specific features such as canary releases and autoscaling to zero. The trade-off is operational complexity, so small teams often use managed services.
19

How do you perform feature selection?

Save to ▾
Show answer
Use filter methods (correlation, chi-square), wrapper methods (RFE), embedded methods (Lasso, tree importance) and domain knowledge, validating each choice with cross-validation.
20

You have 50,000 unlabelled images and budget to label only 3,000. How do you use the budget well?

Save to ▾
Show answer
Do not pick 3,000 at random. Label a small diverse seed set, using embedding clustering to cover variety, and train a first model. Then use active learning: label the images the model is least confident about or that disagree across models. Use semi-supervised methods like pseudo-labelling high-confidence images, or self-supervised pretraining on all 50,000. Keep a randomly sampled test set so evaluation stays unbiased.
21

You want to test a new pricing algorithm in a two-sided marketplace where buyers and sellers interact. Why is user-level randomisation a problem and what would you do?

Save to ▾
Show answer
Treated and control buyers compete for the same sellers' supply, so a treatment that makes treated buyers buy more takes inventory from control buyers, exaggerating the measured lift. Use designs that limit interference: switchback tests that alternate the whole market between variants over time slots, or randomise by city or region. Analyse at the switch or cluster level with appropriate variance, and accept that these tests need longer to reach power.
22

Your sales forecast scores well in k-fold cross-validation but fails in production. What could be wrong with the validation?

Save to ▾
Show answer
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.
23

Your manager asks whether collecting more training data will improve the model. How do you answer using a learning curve?

Save to ▾
Show answer
A learning curve plots training and validation scores against the size of the training set. If both scores are low and close, the model has high bias and needs more features or a more flexible model. If training is high but validation is much lower and the gap narrows as data grows, the model has high variance and more data will help. It tells you whether collecting more data is worth the cost.
24

What are guardrails in LLM applications?

Save to ▾
Show answer
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.
25

What is named entity recognition?

Save to ▾
Show answer
Named entity recognition finds and labels spans of text such as person names, organisations, locations, dates and amounts. For example, in an invoice email it can pull out the vendor, invoice number and total. It is usually framed as token classification with BIO tags. spaCy and fine-tuned transformer models are common tools. Domain-specific entities, like medicine names, usually need custom labelled training data.
26

Write SQL to find the median order value per city.

Save to ▾
Show answer
SELECT city, PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY amount) AS median_amount FROM orders GROUP BY city; -- PERCENTILE_CONT interpolates; PERCENTILE_DISC returns an actual value
27

What is the difference between a Pandas Series and a DataFrame?

Save to ▾
Show answer
A Series is a one-dimensional labelled array: one column of values with an index. A DataFrame is a two-dimensional table made of several Series that share the same index, and each column can have its own dtype. Selecting one column, like df['price'], gives you a Series. Selecting with a list, like df[['price']], gives you a DataFrame. Many methods work on both, but the output shape is different.
28

Tell me about a feature you engineered that significantly improved a model.

Save to ▾
Show answer
Situation: our delivery time model kept underestimating late-night orders. Task: reduce large errors. Action: I noticed restaurant prep time depended on how busy the kitchen was, so I built a feature for active orders at that restaurant in the last 30 minutes, computed point in time. Result: MAE dropped by 14 percent and late-night errors fell the most. It taught me to study the worst errors before adding generic features.
29

What is bootstrapping in statistics?

Save to ▾
Show answer
Bootstrapping estimates the uncertainty of a statistic by resampling your data with replacement many times, computing the statistic on each resample, and looking at the spread of results. It gives confidence intervals for things with no simple formula, like the median, a ratio or a model metric such as AUC. It needs no normality assumption, but it relies on the sample being representative and can be slow on very large data.
30

What are precision and recall trade-offs in practice?

Save to ▾
Show answer
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.
31

Write SQL to find users who logged in on at least three consecutive days.

Save to ▾
Show answer
WITH d AS ( SELECT DISTINCT user_id, CAST(login_at AS DATE) AS day FROM logins ), g AS ( SELECT user_id, day, day - CAST(ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY day) AS INT) AS grp FROM d ) SELECT DISTINCT user_id FROM g GROUP BY user_id, grp HAVING COUNT(*) >= 3; -- date minus row number is constant within a streak (PostgreSQL syntax)
32

What is LoRA and parameter-efficient fine-tuning?

Save to ▾
Show answer
Parameter-efficient fine-tuning updates only a small number of parameters instead of the whole model. LoRA freezes the original weights and adds small low-rank matrices to selected layers, often attention projections, training under 1 percent of parameters. This cuts GPU memory and storage, and many task adapters can share one base model. QLoRA goes further by loading the base model in 4-bit precision. Quality is usually close to full fine-tuning.
33

What should you log for a production prediction service?

Save to ▾
Show answer
For each request, log a request ID, timestamp, model version, input features or a hash of them, the prediction and score, and latency. Log errors and fallback use separately. Do not log raw personal data unless needed and allowed; mask it. Aggregate these logs into dashboards for traffic, latency percentiles, error rate and score distribution. Joining logged predictions with later outcomes gives the data for monitoring and retraining.
34

A key metric dropped 8 percent week over week. How do you check whether it is real?

Save to ▾
Show answer
First rule out data issues: tracking changes, pipeline delays, missing partitions or a changed metric definition. Then compare with the same week last year and look for holidays or seasonality. Check normal weekly variation to see if 8 percent is unusual. Break the drop down by platform, region, app version and user type to find where it is concentrated. Finally, check releases, campaigns or outages that happened that week.
35

What is BERT and how is it pretrained?

Save to ▾
Show answer
BERT is an encoder-only transformer that reads text in both directions at once. It was pretrained with masked language modelling, where about 15 percent of tokens are hidden and the model predicts them, plus next sentence prediction in the original version. This gives contextual embeddings, so a word's vector depends on its sentence. You fine-tune BERT with a small task head for classification, NER or question answering.
36

You target-encoded a city column and validation AUC jumped from 0.72 to 0.95. What do you suspect?

Save to ▾
Show answer
Target encoding replaces each category with the average target value for that category, for example the churn rate per city. It handles high-cardinality columns compactly. The main risk is leakage: if a row's own target is included in its encoding, the model sees the answer and overfits. Prevent it with out-of-fold encoding, smoothing toward the global mean for rare categories, and fitting only on training data.
37

What is backpropagation?

Save to ▾
Show answer
It computes the gradient of the loss with respect to every weight by applying the chain rule backwards through the network, so gradient descent can update them.
38

Write Python code that validates prediction requests with Pydantic before passing them to a model.

Save to ▾
Show answer
from pydantic import BaseModel, Field, ValidationError class LoanRequest(BaseModel): age: int = Field(ge=18, le=100) income: float = Field(gt=0) city: str = Field(min_length=2) def predict(payload: dict): try: req = LoanRequest(**payload) except ValidationError as e: return {'error': e.errors()} return {'score': float(model.predict_proba([[req.age, req.income]])[0, 1])}
39

A feature works well offline but is not available at prediction time in production. How do you handle this?

Save to ▾
Show answer
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.
40

What are decorators in Python?

Save to ▾
Show answer
A decorator wraps a function to add behaviour such as logging, timing or caching without changing its code. It is applied with the @name syntax above the function.

Tips to crack the Rapido Data Science interview

  • Practise DSA and design of location-based systems such as nearby driver matching, surge pricing and live tracking.
  • For analyst roles, prepare metrics like ride completion rate, cancellations and captain utilisation, and practise SQL on them.
  • Use the Rapido app in your city and form clear opinions on rider and driver experience before the interview.
  • 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; Rapido interviewers usually ask follow-ups on your first answer.

Frequently asked questions

How many rounds are there in the Rapido Data Science interview?

Candidates usually go through 4 stages: Online coding or analytics assessment; Technical round 1 (DSA or SQL); Technical round 2 (design or case); 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 Rapido Data Science interview?

This practice set leans on Deep Learning and NLP (8), SQL for Data Science (5), MLOps and Model Deployment (5), Feature Engineering (5). Revise those first, then practise explaining one or two of your own projects end to end, because most Rapido interviewers ask you to walk through real work.

Are these the exact questions asked at Rapido?

No. These are curated practice questions that match the skills and difficulty usually tested in product interviews like Rapido's. They are not a leaked or verified list of past questions.

Where does Rapido hire Data Science professionals in India?

Rapido has large teams in Bengaluru. Openings and locations change often, so check the Rapido careers page and filter by city and experience.

Data Science questions for similar companies