← Plaid Interview Insights

Plaid·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
Apr 2026

Summary

Plaid system design round focused on distributed rate limiting, which sounds straightforward until you start thinking about cross-region consistency. There was also a follow-up scheduling problem that I didn't see coming and probably didn't handle as cleanly as the first part.

Questions Asked (2)

Q1

Design a globally distributed rate limiting system that enforces per-API-key limits (e.g. 100 req/sec) across multiple geographic regions, where requests can hit any region but the limit must be respected globally, not per-region.

System DesignTechnical Trade-offs
Author's notes

This is the kind of question where you can talk for 40 minutes and still feel like you left half of it on the table.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and constraints, then propose a hybrid architecture that combines local rate limiting with a globally consistent counter store. Discuss trade-offs between accuracy, latency, and availability, and justify your design choices for Plaid's financial-grade reliability.

Pro tip: Emphasize that perfect global accuracy is often unnecessary; propose a tunable trade-off (e.g., allowing small overages) to avoid cross-region latency and single points of failure. Show awareness of Plaid's need for auditability and compliance by including logging and monitoring.

1. Clarify Requirements and Constraints

Ask about expected scale (API keys, RPS), latency SLAs, consistency requirements (strict vs eventual), and failure tolerance. Confirm that the limit is per API key globally and that requests can hit any region.

2. High-Level Architecture

Propose a multi-region deployment with a global rate limiter service. Consider using a globally distributed data store (e.g., Redis with CRDTs, DynamoDB global tables) or a gossip-based approach to share counters.

3. Rate Limiting Algorithm and Data Model

Choose an algorithm (e.g., sliding window, token bucket) and design the data model for per-key counters. Discuss how to handle atomic increments across regions.

4. Consistency and Latency Trade-offs

Explain how to balance strong consistency (e.g., using consensus like Raft) against latency and availability. Propose a hybrid: local enforcement with periodic global sync, allowing small overages.

5. Failure Handling and Monitoring

Describe fallback strategies (e.g., fail-open vs fail-closed), handling region failures, and monitoring for abuse. Include logging for audit and compliance.

Key Points to Mention

  • Choice of rate limiting algorithm (token bucket vs sliding window) and its impact on burst handling.
  • Use of a globally distributed store (e.g., Redis with active-active replication, DynamoDB global tables) or a custom gossip protocol.
  • Trade-offs between strong consistency (higher latency) and eventual consistency (possible overages).
  • Handling of clock skew and synchronization across regions.
  • Fallback strategies when the global store is unavailable (e.g., local limits with conservative thresholds).
  • Monitoring, alerting, and audit logging for compliance and debugging.

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

Q2

You're scheduling tasks in a worker system under rate limiting. Compare two strategies: prioritizing the highest-cost tasks first versus maximizing the number of tasks completed. What are the trade-offs and when would you pick each?

Technical Trade-offsSystem Design
Author's notes

I blanked for a second because this felt like it came from a completely different interview.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the system's goals and constraints, such as rate limits, task costs, and business priorities. Then compare the two strategies in terms of throughput, latency, fairness, and resource utilization. Finally, discuss scenarios where each strategy is preferable, emphasizing trade-offs and potential hybrid approaches.

Pro tip: Mention that the choice often depends on whether the system is optimizing for user-perceived latency or overall throughput, and that a hybrid approach like weighted fair queuing can balance both. Also, highlight the importance of monitoring and adapting the strategy based on real-time metrics.

1. Clarify requirements and constraints

Ask about the rate limiting specifics (e.g., requests per second), task cost distribution, and business SLAs. Understand what 'cost' means (e.g., execution time, resource consumption).

2. Define evaluation metrics

Identify key metrics: throughput (tasks/sec), latency (especially for high-cost tasks), fairness, and resource utilization. Consider both average and tail latencies.

3. Analyze highest-cost-first strategy

Discuss benefits: reduces latency for expensive tasks, prevents starvation of long tasks, and may improve overall system efficiency if high-cost tasks are bottlenecks. Drawbacks: may reduce total number of tasks completed, increase latency for small tasks, and lead to unfairness.

4. Analyze maximize-number-of-tasks strategy

Discuss benefits: increases throughput and fairness for small tasks, improves user-perceived responsiveness for simple operations. Drawbacks: may starve high-cost tasks, leading to timeouts or SLA violations, and can cause resource underutilization if high-cost tasks are critical.

5. Recommend scenarios and hybrid approaches

Suggest when to use each: highest-cost-first for batch processing or when long tasks are critical; maximize-number for interactive systems with many small tasks. Mention hybrid strategies like weighted fair queuing or priority aging to balance both.

Key Points to Mention

  • Rate limiting constraints and how they affect scheduling decisions
  • Task cost distribution (e.g., heavy-tailed vs. uniform)
  • Latency vs. throughput trade-offs and their impact on user experience
  • Fairness and starvation prevention (e.g., aging, priority inversion)
  • Resource utilization and system efficiency (e.g., avoiding idle resources)
  • Business SLAs and criticality of tasks (e.g., some tasks must complete within a deadline)

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