Skip to content

Postman Data Science Interview Questions & Answers

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

About Postman hiring for Data Science roles

Postman is an API platform used by millions of developers to design, test, document and monitor APIs. It began as a side project by Abhinav Asthana in Bengaluru and grew into a global company with headquarters in San Francisco. Its Bengaluru office hosts major engineering teams that hire software engineers, test engineers, developer advocates and product roles.

For Data Science roles, this Postman practice set focuses most on Machine Learning (7), Computer Vision (5), Python for Data Science (4), A/B Testing & Experimentation (4). It has 1 easy, 26 medium, 13 hard questions, so you can start easy and work up to the harder ones.

Company type
Product
Headquarters
San Francisco, USA
Main India offices
Bengaluru

Postman Data Science interview process

  1. Online coding assessment or take-home task
  2. Technical round 1 (DSA or problem solving)
  3. Technical round 2 (system design or API design)
  4. Hiring manager and culture round

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

Solved for PostmanStart 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 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.
02

Write a Python function to flatten a nested list of any depth.

Save to ▾
Show answer
def flatten(items): out = [] for x in items: if isinstance(x, list): out.extend(flatten(x)) else: out.append(x) return out print(flatten([1, [2, [3, 4]], 5])) # [1, 2, 3, 4, 5]
03

Your test shows a 2 percent lift in conversion, but revenue per user went down. What do you do?

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

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.
05

CNN vs RNN vs Transformer — what is the difference?

Save to ▾
Show answer
CNNs use convolutions to find spatial patterns (images). RNNs/LSTMs process sequences step by step but struggle with long context. Transformers use self-attention to look at all tokens at once — parallel and better at long-range context; they power modern LLMs.
06

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])}
07

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.
08

What is the difference between semantic, instance and panoptic segmentation?

Save to ▾
Show answer
Semantic segmentation gives each pixel a class, such as road or car, but does not separate two cars. Instance segmentation separates individual objects of countable classes, giving each car its own mask. Panoptic segmentation combines both: every pixel gets a class, and countable objects also get an instance ID, while background stuff like sky stays semantic. Autonomous driving and robotics often need panoptic or instance output.
09

Marketing wants to measure the impact of a TV and outdoor campaign that cannot be randomised at user level. How do you design the measurement?

Save to ▾
Show answer
Plan a geo experiment: select comparable cities or regions, randomly assign some to run the campaign and keep others as control, matching them on past sales trends. Measure the difference in sales during and after the campaign, using methods like difference-in-differences or synthetic control to build a counterfactual. Run a pre-period check that test and control regions track each other, and include enough regions for reasonable power.
10

How do you get reliable JSON output from an LLM?

Save to ▾
Show answer
Use the provider's structured output or JSON schema mode when available, which constrains the output to your schema. Otherwise, describe the exact schema in the prompt with an example, and use low temperature. Always parse and validate the response in code, for example with Pydantic, and on failure retry with the error message included. Keep schemas small and flat, and use enums for fields with fixed values.
11

You must run object detection on an edge camera at 30 frames per second. How do you meet that target?

Save to ▾
Show answer
Start with a lightweight one-stage detector at the smallest input size that keeps acceptable accuracy. Optimise it: export to ONNX, then use a hardware runtime like TensorRT or OpenVINO, with FP16 or INT8 quantisation calibrated on real images. Prune or distil from a larger model if needed. Profile the full pipeline, including decoding and preprocessing, and run detection every few frames with tracking in between if compute is tight.
12

How do one-stage and two-stage object detectors differ?

Save to ▾
Show answer
Two-stage detectors, like Faster R-CNN, first propose candidate regions and then classify and refine each one, which gives strong accuracy, especially for small objects, but is slower. One-stage detectors, like YOLO and SSD, predict boxes and classes directly over a dense grid in a single pass, making them fast enough for real-time video. Modern one-stage models have closed most of the accuracy gap, so they dominate edge and video use cases.
13

Write Python code to find the top 3 most similar documents to a query using cosine similarity on embeddings.

Save to ▾
Show answer
import numpy as np def top_k(query_vec, doc_vecs, k=3): q = query_vec / np.linalg.norm(query_vec) d = doc_vecs / np.linalg.norm(doc_vecs, axis=1, keepdims=True) scores = d @ q idx = np.argsort(-scores)[:k] return list(zip(idx, scores[idx])) # doc_vecs shape: (n_docs, dim), query_vec shape: (dim,)
14

Your daily sales forecast badly misses the Diwali spike every year. How do you fix it?

Save to ▾
Show answer
The model is treating Diwali as noise because the festival moves on the calendar and a fixed yearly seasonality does not align. Add explicit holiday features: a flag for Diwali and a few days before and after, since buying starts early. Include other regional festivals and sale events too. Models like Prophet or gradient boosting with holiday features handle this well. Then backtest specifically on past festive periods to confirm the fix.
15

You need forecasts for 50,000 SKUs every week. Would you build one model per series or one global model?

Save to ▾
Show answer
One classical model per SKU is simple and interpretable but expensive to maintain, and it fails for short or sparse series. A global model, such as LightGBM trained on all SKUs with lags, calendar and product features, learns shared patterns and handles new items better. In practice I would use a global model as the main engine, keep statistical models for a few high-value series, and compare both in a rolling backtest.
16

Write a Python function that deterministically assigns users to experiment variants using hashing.

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

Write SQL to find customers who ordered in January 2026 but not in February 2026.

Save to ▾
Show answer
SELECT DISTINCT o.customer_id FROM orders o WHERE o.order_date >= '2026-01-01' AND o.order_date < '2026-02-01' AND NOT EXISTS ( SELECT 1 FROM orders f WHERE f.customer_id = o.customer_id AND f.order_date >= '2026-02-01' AND f.order_date < '2026-03-01' );
18

How would you structure a data science codebase so notebooks do not become unmaintainable?

Save to ▾
Show answer
Keep notebooks for exploration and reporting only. Move reusable logic into a Python package with modules for data loading, features, training and evaluation, and import it into notebooks. Keep settings in config files, write unit tests for feature functions, and use pre-commit with a formatter and linter. Track experiments in a tool like MLflow. A clear folder template and code reviews keep the team consistent as the project grows.
19

What is RLHF and why is it used for LLMs?

Save to ▾
Show answer
Reinforcement learning from human feedback aligns a model with human preferences. Humans rank several model answers to the same prompt, a reward model is trained on these rankings, and the LLM is then optimised to produce answers with higher reward, typically with PPO and a penalty for drifting too far from the original model. Simpler methods like DPO learn directly from preference pairs. It makes models more helpful and safer.
20

You must classify support messages into 40 categories, but some categories have only 20 examples. What do you do?

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

Tell me about a time you found a mistake in your own analysis after sharing it.

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

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.
23

How do XGBoost, LightGBM and CatBoost differ?

Save to ▾
Show answer
All three are gradient boosting libraries. XGBoost grows trees level by level with strong regularisation and is very mature. LightGBM uses histogram binning and leaf-wise growth, so it is usually fastest on large data but can overfit small data without limits on leaves. CatBoost handles categorical features natively with ordered target statistics and uses symmetric trees, so it gives good results with little tuning. Choice depends on data size, categoricals and latency needs.
24

Your model performance degrades every few months. Would you retrain on a fixed schedule or based on triggers?

Save to ▾
Show answer
Scheduled retraining, like monthly, is simple and predictable but may be too late after a sudden change or wasteful when nothing changed. Trigger-based retraining runs when monitoring shows drift or a performance drop, which reacts faster but needs reliable monitoring. Many teams combine both: a regular schedule plus triggers for big shifts. Either way, a retrained model must pass the same evaluation gate before replacing the current one.
25

How does linear regression work and what are its assumptions?

Save to ▾
Show answer
It fits a line minimising squared error. Assumes linearity, independent errors, constant variance (homoscedasticity), normally distributed residuals and no strong multicollinearity.
26

Write Pandas code to read a large CSV in chunks and compute total sales per city.

Save to ▾
Show answer
# 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)
27

What are quantile and power transforms such as Box-Cox and Yeo-Johnson, and when do you use them?

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

Write SQL to compute a 7-day rolling average of daily active users.

Save to ▾
Show answer
WITH daily AS ( SELECT activity_date, COUNT(DISTINCT user_id) AS dau FROM events GROUP BY activity_date ) SELECT activity_date, dau, AVG(dau) OVER (ORDER BY activity_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS dau_7d_avg FROM daily ORDER BY activity_date;
29

Tell me about a computer vision project where data quality was the biggest challenge.

Save to ▾
Show answer
Situation: a shelf-detection model plateaued at low accuracy. Task: find out why and fix it. Action: I reviewed 500 errors and found that a third were labelling mistakes, with inconsistent boxes for partly hidden products. I rewrote the guidelines with visual examples, had a second annotator review hard images and relabelled the worst batch. Result: mAP rose by 9 points without changing the model, and labelling rework dropped sharply.
30

Your GPU model-serving bill has doubled while traffic grew only 20 percent. How do you bring cost down?

Save to ▾
Show answer
Profile utilisation first; idle or under-filled GPUs are common. Enable dynamic batching so each GPU call handles several requests, right-size instance types and autoscale on queue depth rather than CPU. Reduce model cost with quantisation, distillation or a smaller model for easy requests. Cache repeated predictions, move non-urgent work to batch jobs on cheaper hardware, and track cost per thousand predictions as a standing metric.
31

What is a long-term holdout group and when is it useful?

Save to ▾
Show answer
A holdout is a small share of users, say 2 to 5 percent, kept away from a set of launched features for months. Comparing them with everyone else measures the cumulative, long-term impact of many shipped changes, which individual short tests can overstate because of novelty effects or winner's curse. It is useful for recommendation systems, notifications and marketing, but it costs some value from users who miss improvements.
32

Your dataset is highly imbalanced (2% positives). How do you handle it?

Save to ▾
Show answer
Use stratified splits, class weights, resampling (SMOTE or undersampling) and threshold tuning, and judge the model with PR-AUC or F1 instead of accuracy.
33

Write scikit-learn code to get precision, recall and a confusion matrix at a custom threshold of 0.3.

Save to ▾
Show answer
from sklearn.metrics import confusion_matrix, precision_score, recall_score proba = model.predict_proba(X_test)[:, 1] pred = (proba >= 0.3).astype(int) print(confusion_matrix(y_test, pred)) print('precision', precision_score(y_test, pred)) print('recall', recall_score(y_test, pred))
34

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.
35

How do you pivot data in Pandas?

Save to ▾
Show answer
pd.pivot_table(df, index='region', columns='month', values='sales', aggfunc='sum') reshapes long data into a summary matrix; melt() does the reverse.
36

Explain logistic regression.

Save to ▾
Show answer
It models the log-odds of a binary outcome as a linear function and passes it through a sigmoid to give probabilities, trained by maximising likelihood.
37

Your NLP classifier works well on English reviews but fails on Hinglish reviews. What do you do?

Save to ▾
Show answer
First measure the gap with a labelled Hinglish test set. Hinglish mixes scripts and spellings, so tokenisers built for English split it badly. I would try a multilingual or Indic model such as mBERT, XLM-R or IndicBERT, normalise common spellings, and add labelled Hinglish data, possibly with transliteration. Evaluate per language segment and monitor the language mix in production, because it changes over time.
38

You need to extract fields from scanned invoices that come in hundreds of different layouts. How would you design it?

Save to ▾
Show answer
Fixed templates will not scale to hundreds of layouts. Start with preprocessing: deskew, denoise and detect text regions. Run OCR to get words with their positions. Then use a layout-aware document model, or a vision-language model, to map words to fields like invoice number, GSTIN and total. Add validation rules, such as GSTIN format and line items summing to the total, and send low-confidence documents to human review.
39

Your LLM feature costs far more than planned. How do you reduce cost without hurting quality?

Save to ▾
Show answer
Measure cost per request and find the biggest token users. Shorten system prompts and retrieved context, and cap output length. Route simple requests to a smaller, cheaper model and keep the large model for hard ones. Cache repeated answers and use provider prompt caching for fixed prefixes. Batch offline jobs. Consider fine-tuning a small model for a high-volume narrow task. Check every change against the evaluation set.
40

Write a scikit-learn ColumnTransformer that preprocesses numeric and categorical columns.

Save to ▾
Show answer
from sklearn.compose import ColumnTransformer from sklearn.pipeline import make_pipeline from sklearn.impute import SimpleImputer from sklearn.preprocessing import StandardScaler, OneHotEncoder pre = ColumnTransformer([ ('num', make_pipeline(SimpleImputer(strategy='median'), StandardScaler()), num_cols), ('cat', make_pipeline(SimpleImputer(strategy='most_frequent'), OneHotEncoder(handle_unknown='ignore')), cat_cols) ]) model = make_pipeline(pre, LogisticRegression(max_iter=1000))

Tips to crack the Postman Data Science interview

  • Learn REST API concepts thoroughly, including HTTP methods, status codes, authentication and how to write API tests in Postman.
  • Practise DSA problems and be ready to build or debug a small JavaScript or Node.js feature in a practical round.
  • Show genuine developer empathy by discussing tools you use daily and how you would improve the API development workflow.
  • 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; Postman interviewers usually ask follow-ups on your first answer.

Frequently asked questions

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

Candidates usually go through 4 stages: Online coding assessment or take-home task; Technical round 1 (DSA or problem solving); Technical round 2 (system design or API design); Hiring manager and culture 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 Postman Data Science interview?

This practice set leans on Machine Learning (7), Computer Vision (5), Python for Data Science (4), A/B Testing & Experimentation (4). Revise those first, then practise explaining one or two of your own projects end to end, because most Postman interviewers ask you to walk through real work.

Are these the exact questions asked at Postman?

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

Where does Postman hire Data Science professionals in India?

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

Data Science questions for similar companies