← Plaid Interview Insights

Plaid·Machine Learning Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
Jun 2026

Summary

System design round at Plaid for an MLE role, focused entirely on building a fraud detection system for a fintech data-connectivity platform. The question was massive and kept branching into follow-ups I wasn't fully ready for. Left feeling like I covered maybe 70% of what they wanted.

Questions Asked (5)

Q1

Design an end-to-end ML system for detecting fraud across the full user lifecycle on a fintech data-connectivity platform, covering bank-account linking, identity verification, and suspicious transaction behavior. The system needs near-real-time scoring and graded actions (allow, step-up, review, block) with a low false-positive rate.

System DesignTechnical Trade-offsData Modeling
Author's notes

This is the main question and it's enormous.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scope and requirements, then structure your answer around the full user lifecycle: account linking, identity verification, and transaction monitoring. For each stage, describe data sources, feature engineering, model choices, and how you'd combine signals into a unified risk score with graded actions. Emphasize near-real-time constraints, low false positives, and trade-offs between precision and recall.

Pro tip: Anchor your design around a unified risk score that aggregates signals from all lifecycle stages, and explicitly discuss how you'd handle concept drift and feedback loops from manual reviews to continuously improve the model.

1. Clarify Requirements and Constraints

Ask about data volume, latency requirements, acceptable false positive rate, and regulatory constraints. Define what 'near-real-time' means (e.g., <100ms for transactions, <1s for linking).

2. Design Data Pipeline and Feature Engineering

Outline data sources (device, network, bank metadata, user behavior) and how to compute features in batch and streaming. Discuss feature store for consistency between training and serving.

3. Modeling Approach for Each Lifecycle Stage

Propose models for account linking (e.g., graph-based anomaly detection), identity verification (e.g., classification with KYC data), and transaction monitoring (e.g., sequence models or gradient boosting). Explain how to combine them into a unified risk score.

4. Real-Time Scoring and Actioning

Describe the serving architecture (e.g., stream processing, low-latency model serving) and how to map risk scores to graded actions (allow, step-up, review, block) using thresholds tuned for low false positives.

5. Monitoring, Feedback, and Iteration

Explain how to monitor model performance, detect drift, and incorporate feedback from manual reviews and user outcomes to retrain and improve the system.

Key Points to Mention

  • Unified risk score aggregating signals from linking, identity, and transactions
  • Feature store for consistent real-time and batch features
  • Handling class imbalance and low false positive rate via precision-recall trade-offs
  • Real-time inference architecture (e.g., Kafka, Flink, model serving with low latency)
  • Graded action policy with thresholds and business rules
  • Feedback loops from manual review and step-up challenges for continuous learning

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

A fraud ring is sharing a single device across 50 newly created accounts, each linking a different bank. How would your graph features and velocity counters detect this, and how fast?

System DesignAlgorithms & Data StructuresTechnical Trade-offs
Author's notes

I liked this one because it felt concrete.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by modeling the fraud ring as a bipartite graph of devices and accounts, then compute graph features like degree centrality and connected components to identify the shared device. Next, implement velocity counters to track account creation and bank linking rates per device, and discuss detection latency based on streaming vs batch processing.

Pro tip: Emphasize that real-time detection requires a streaming architecture with incremental graph updates and sliding window counters, but also mention the trade-off between latency and accuracy due to potential false positives from shared devices like family computers.

1. Graph Modeling

Represent devices and accounts as nodes, with edges indicating account creation or login events. This bipartite graph reveals the shared device connecting 50 accounts.

2. Feature Extraction

Compute graph features such as degree of the device node (50), number of connected components, and clustering coefficient. Also calculate account-level features like number of accounts per device.

3. Velocity Counters

Implement time-windowed counters for events like account creations per device, bank links per account, and unique banks per device. Use sliding windows (e.g., 1 hour, 1 day) to capture bursts.

4. Detection Logic

Set thresholds or use anomaly detection models on these features. For example, a device with >10 accounts in 24 hours triggers an alert. Combine graph and velocity signals for higher confidence.

5. Latency and Scalability

Discuss implementation: streaming graph processing (e.g., Flink, Kafka Streams) for real-time detection (sub-second to minutes), vs batch (hours). Mention trade-offs in accuracy and cost.

Key Points to Mention

  • Bipartite graph of devices and accounts to identify shared device
  • Graph features: degree centrality, connected components, clustering coefficient
  • Velocity counters: sliding window counts of account creations and bank links per device
  • Real-time detection using streaming architecture (e.g., Flink, Kafka) with incremental graph updates
  • Trade-off between latency and false positives; need for thresholds and possibly manual review
  • Scalability considerations: distributed graph processing, sharding, and efficient counter storage

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q3

Your offline PR-AUC improved after a model update but online fraud loss didn't drop. What are the likely causes and how would you diagnose it?

Root Cause AnalysisA/B Testing & ExperimentationProduct Analytics & Metrics
Author's notes

Classic gap-between-offline-and-online question.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by acknowledging that offline PR-AUC and online fraud loss measure different things, so a disconnect is common. Then systematically check for data leakage, distribution shift, threshold misalignment, and evaluation metric mismatches. Finally, propose a diagnostic plan that includes online A/B testing and error analysis on recent fraud cases.

Pro tip: Emphasize that offline metrics are proxies; always validate with online experiments and consider business impact metrics like fraud loss per transaction. Mention that PR-AUC can be misleading if the positive class is rare and the threshold is not tuned to the business cost ratio.

1. Verify offline evaluation validity

Check for data leakage, temporal leakage, or improper cross-validation that could inflate offline PR-AUC. Ensure the offline test set is representative of the online distribution and that the metric is computed correctly.

2. Compare offline and online distributions

Analyze feature and label distributions between offline training/test data and online serving data. Look for covariate shift, concept drift, or changes in fraud patterns that could cause the model to underperform online.

3. Examine threshold and decision logic

Check if the operating threshold was adjusted after the model update. PR-AUC is threshold-independent, but fraud loss depends on the threshold. A higher PR-AUC does not guarantee better performance at the chosen threshold.

4. Analyze online performance and errors

Conduct a detailed error analysis on recent online fraud cases: false negatives (missed fraud) and false positives (blocked legitimate transactions). Compare the new model's predictions with the old model's on the same online data.

5. Run a controlled online experiment

If not already done, set up an A/B test to measure the causal impact of the model update on fraud loss and other business metrics. Ensure proper randomization, sufficient power, and guardrail metrics.

Key Points to Mention

  • Offline PR-AUC vs. online fraud loss: different metrics, different data, different objectives.
  • Data leakage or temporal leakage in offline evaluation inflating PR-AUC.
  • Distribution shift between offline training data and online production data.
  • Threshold selection: PR-AUC is threshold-independent, but fraud loss depends on the threshold.
  • Class imbalance and cost-sensitive evaluation: fraud is rare, and misclassification costs are asymmetric.
  • Online A/B testing and error analysis to diagnose and validate model performance.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q4

How do you evaluate and set thresholds for a model when its own blocks are suppressing the labels you'd use to measure it? What strategy keeps your measurement unbiased?

A/B Testing & ExperimentationTechnical Trade-offsRoot Cause Analysis
Author's notes

Honestly the hardest follow-up.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by acknowledging the feedback loop problem and propose a measurement strategy that decouples evaluation from the model's influence. Then describe how to use a holdout or randomized control group to obtain unbiased labels, and finally explain how to set thresholds based on that unbiased data while monitoring for drift.

Pro tip: Emphasize the importance of pre-registering your evaluation metrics and thresholds before running the experiment to avoid p-hacking and ensure stakeholder trust. Also, consider using counterfactual or off-policy evaluation techniques when randomization is not possible.

1. Identify and quantify the suppression

Analyze the model's impact on label generation to understand the bias. Measure how often the model's decisions prevent the collection of ground truth labels.

2. Design an unbiased measurement strategy

Implement a randomized holdout or control group where the model's decisions are overridden to collect unbiased labels. Ensure the holdout is representative and large enough for statistical power.

3. Collect and analyze unbiased data

Use the holdout group to gather labels and compute unbiased performance metrics. Compare these metrics to those from the model-influenced group to quantify the bias.

4. Set thresholds based on unbiased metrics

Determine thresholds using the unbiased data, considering business objectives and trade-offs between precision and recall. Validate thresholds on a separate unbiased validation set.

5. Monitor and iterate

Continuously monitor the model's performance and the feedback loop. Periodically re-evaluate thresholds and adjust as needed to maintain unbiased measurement.

Key Points to Mention

  • Feedback loops and their impact on label generation
  • Randomized controlled trials (A/B tests) for unbiased evaluation
  • Holdout groups and their role in breaking suppression
  • Counterfactual or off-policy evaluation techniques
  • Pre-registration of metrics and thresholds to avoid bias
  • Statistical power and sample size considerations
  • Monitoring for concept drift and periodic re-evaluation

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q5

The model is flagging a legitimate immigrant population at a higher rate due to IP and geolocation features. How do you detect this disparate impact and fix it without gutting recall?

Technical Trade-offsProduct Analytics & MetricsAdaptability & Ambiguity
Author's notes

Fairness question, which I wasn't expecting in a fraud design loop.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by acknowledging the trade-off between fairness and recall, then propose a structured approach to detect disparate impact using fairness metrics and slice-based analysis. Outline a mitigation strategy that includes feature auditing, bias mitigation techniques, and threshold optimization to reduce disparity while preserving recall.

Pro tip: Emphasize the importance of collaborating with legal, compliance, and product teams to define fairness constraints and ensure the solution aligns with business and regulatory requirements.

1. Define fairness metrics and constraints

Identify relevant fairness metrics (e.g., demographic parity, equal opportunity) and set acceptable thresholds for disparate impact based on business and legal guidelines.

2. Detect disparate impact

Perform slice-based analysis on immigrant population vs. others, compute fairness metrics, and investigate feature importance (IP, geolocation) to confirm bias.

3. Mitigate bias without sacrificing recall

Apply techniques like reweighting, adversarial debiasing, or post-processing threshold adjustments per group, and evaluate impact on recall and precision.

4. Validate and monitor

Test the mitigated model on holdout sets, ensure recall remains within acceptable bounds, and set up continuous monitoring for fairness and performance drift.

Key Points to Mention

  • Fairness metrics: demographic parity, equal opportunity, disparate impact ratio
  • Slice-based evaluation and intersectional analysis
  • Feature auditing: IP and geolocation as proxies for immigration status
  • Bias mitigation techniques: pre-processing, in-processing, post-processing
  • Threshold optimization and cost-sensitive learning
  • Trade-off between recall and fairness, and business impact

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.