Company Interview Questions · Consulting & Big 4

BCG X: AI/ML Engineer & Forward-Deployed DS

❓ 6 questions🏢 BCG X🆕 Recent reports

BCG X: AI/ML Engineer & Forward-Deployed Data Scientist Interview Process. 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 public interview guides for BCG X AI/ML Engineer and Data Scientist roles and a public candidate thread about the BCG X Forward-Deployed AI Scientist final round. The questions are paraphrased, and the model answers are written by EasyLearnSpace.

Roles AI/ML Engineer; Data Scientist; Forward-Deployed AI Scientist / Engineer
Rounds Recruiter screen (sometimes a one-way video with behavioural questions) → timed online coding + ML quiz (CodeSignal / HackerRank) → technical deep dive and system design → partner / culture interviews
Final round (forward-deployed) 3 × 45-minute virtual interviews: background + a business case, higher-level than a typical DS interview
What they judge Could they put you in front of a client? Business framing, ROI, adoption, communication

01Rounds at a glance

02Questions and model answers

Q1
Flatten a nested JSON object into a single-level dictionary.
def flatten(obj, parent="", sep="."):
    out = {}
    if isinstance(obj, dict):
        for k, v in obj.items():
            out.update(flatten(v, f"{parent}{sep}{k}" if parent else k, sep))
    elif isinstance(obj, list):
        for i, v in enumerate(obj):
            out.update(flatten(v, f"{parent}{sep}{i}" if parent else str(i), sep))
    else:
        out[parent] = obj
    return out

print(flatten({"a": 1, "b": {"c": 2, "d": [3, 4]}}))  # {'a':1,'b.c':2,'b.d.0':3,'b.d.1':4}
Q2
Compute the average of a column in a CSV that is too large for memory.
import pandas as pd

total, count = 0.0, 0
for chunk in pd.read_csv("big.csv", usecols=["amount"], chunksize=1_000_000):
    s = chunk["amount"].dropna()
    total += s.sum(); count += len(s)
print(total / count)
  • Stream in chunks, keeping a running sum and count. Alternatives: DuckDB (SELECT avg(amount) FROM 'big.csv'), Polars lazy scan, or Spark for distributed data. For a running variance, use Welford's algorithm.
Q3
Design a pipeline that makes unstructured client documents (contracts, scanned reports) searchable.
  • Ingest: connectors (SharePoint, S3) → file-type detection → OCR for scans (Azure Document Intelligence or Textract) → layout-aware parsing (tables, clauses).
  • Enrich: extract metadata (parties, dates, contract type) with an LLM using structured output; detect and redact PII.
  • Index: chunks by clause or section → embeddings + BM25 → a hybrid index with metadata filters and document-level ACLs.
  • Serve: search UI + RAG Q&A with citations; a re-ranker; "find all contracts with auto-renewal clauses" via metadata plus semantic search.
  • Govern: audit logs, retention policy, an evaluation set built with client SMEs; measure time saved per review.
Q4
Design a bank fraud-detection system that alerts customers by text message.
  • Real-time scoring at authorisation: features (velocity, merchant risk, geo-distance, device) from an online feature store, a GBM model, a latency budget under 100 ms.
  • Decision tiers: approve / SMS confirmation ("Reply YES if this ₹24,999 purchase was you") / decline.
  • SMS flow: send through a gateway, hold the transaction for N minutes; YES approves, NO blocks the card and opens a case; no reply follows the default policy.
  • Feedback loop: customer replies and chargebacks become labels; retrain regularly; monitor false-positive rates by segment.
  • Risks: SMS phishing (never include links), delivery delays, fairness across customer groups.
Q5
Case: a retailer wants AI to reduce churn in its subscription business. How do you approach it as a consultant?
  1. Frame the value: churn rate, revenue at risk, the cost of retention offers. "A 1-point churn reduction ≈ ₹X crore a year."
  2. Hypotheses: price sensitivity, poor onboarding, delivery issues, competitor offers.
  3. Data: subscriptions, usage, support tickets, NPS, delivery performance.
  4. Approach: a churn-risk + uplift model → segment-specific actions (onboarding fixes, targeted offers, service recovery).
  5. Metrics: retained revenue, offer ROI, and a controlled pilot in 2 regions.
  6. Adoption: who uses the scores (the CRM team), workflow integration, a dashboard, training, and governance for model refresh. - Keep the technical detail light and tie every step to client value.
Q6
Why BCG X, and why a client-facing, forward-deployed role?
  • "I enjoy turning ambiguous business problems into shipped AI products. A forward-deployed role puts me close to the client's real constraints and users, where impact is measured, not assumed."
  • Show evidence: a time you handled ambiguity, brought stakeholders along, and drove adoption (not just model accuracy).
  • Ask good questions back: how teams split between BCG X engineers and consultants, and how success is measured after go-live.

03How to prepare for BCG X

Sources

Created by Ajeetkumar