← Plaid Interview Insights

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

Senior
Jul 2026

Summary

Plaid data engineering round built around a take-home assignment, where you sit down in a locally configured environment and write SQL while talking through your design decisions out loud. The interviewer then picks apart every choice you made until something breaks.

Questions Asked (8)

Q1

Walk through how you designed the pipeline from raw source data through to the final analytical layer. Why did you structure it the way you did?

Data ModelingSystem DesignTechnical Trade-offs
Author's notes

This was basically the whole interview in one question.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by briefly describing the business context and data sources, then walk through each layer of the pipeline (ingestion, storage, transformation, serving) explaining the design choices and trade-offs at each stage. Emphasize how the structure evolved to meet specific requirements like scalability, data quality, and maintainability, and conclude with the impact on downstream users.

Pro tip: Highlight a key trade-off you made (e.g., batch vs. streaming, normalization vs. denormalization) and why it was the right call for your use case, showing you understand that pipeline design is about balancing competing priorities.

1. Set the Context

Briefly describe the business problem, data sources, volume, velocity, and key requirements (e.g., latency, freshness, compliance) that shaped your design.

2. Outline the Pipeline Architecture

Walk through the high-level stages: ingestion, storage, processing/transformation, and serving. Mention the technologies used and why they fit the requirements.

3. Explain Design Decisions and Trade-offs

For each stage, discuss why you chose a particular approach (e.g., batch vs. streaming, schema-on-read vs. schema-on-write) and the trade-offs involved.

4. Discuss Data Modeling and Quality

Describe how you modeled the data for the analytical layer (e.g., star schema, data vault) and the measures taken to ensure data quality, lineage, and governance.

5. Conclude with Impact and Lessons Learned

Summarize the outcomes (e.g., improved performance, reduced costs, faster insights) and reflect on what you would do differently or how the design evolved.

Key Points to Mention

  • Data sources and ingestion patterns (e.g., batch, streaming, CDC)
  • Storage choices (e.g., data lake, warehouse, lakehouse) and file formats (e.g., Parquet, Avro)
  • Transformation frameworks (e.g., Spark, dbt) and orchestration (e.g., Airflow)
  • Data modeling techniques for the analytical layer (e.g., dimensional modeling, normalization)
  • Trade-offs between latency, cost, complexity, and maintainability
  • Data quality, monitoring, and governance practices

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

Q2

Star schema or snowflake for this model, and what drove that choice?

Data ModelingTechnical Trade-offs
Author's notes

Said star schema, justified it on query simplicity and warehouse optimizer behavior.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the business context and query patterns, then recommend a star schema as the default for analytical workloads due to its simplicity and performance. Acknowledge that snowflake is appropriate when dimension tables are large and normalization is critical, but emphasize that the choice should be driven by trade-offs between query performance, storage, and maintainability.

Pro tip: Mention that in modern cloud data warehouses (e.g., Snowflake, BigQuery), storage is cheap and compute is expensive, so denormalized star schemas often win—but be ready to discuss edge cases like rapidly changing dimensions or strict data governance.

1. Clarify Requirements

Ask about the use case: Is it for BI/reporting, real-time analytics, or ML? What are the query patterns (e.g., aggregations, drill-downs)? What are the SLAs?

2. Compare Star vs. Snowflake

Explain that star schema has denormalized dimensions for simpler queries and faster joins, while snowflake normalizes dimensions to reduce redundancy and storage, but increases join complexity.

3. Evaluate Trade-offs

Discuss trade-offs: star offers better query performance and usability; snowflake offers better storage efficiency and data integrity, but can hurt performance due to more joins.

4. Consider Modern Context

Note that in cloud warehouses, columnar storage and automatic optimization often make star schema preferable; snowflake may still be useful for large, frequently updated dimensions.

5. Make a Recommendation

State your choice based on the context, and justify it with the trade-offs. For Plaid, where data is often used for analytics and reporting, star schema is likely the better default.

Key Points to Mention

  • Query performance and simplicity of star schema
  • Storage efficiency and normalization benefits of snowflake
  • Impact of cloud data warehouse capabilities (columnar storage, compute scaling)
  • Maintainability and ETL complexity
  • Use case: BI vs. operational analytics
  • Plaid's data ecosystem and common analytical needs

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

Q3

How would you handle incremental loads for this pipeline? What's your strategy and what are the failure modes?

Data ModelingSystem Design
Author's notes

Went with high-watermark on updated_at first, which is the obvious answer, and they immediately asked about late-arriving data.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the pipeline's data sources, volume, and latency requirements, then propose a concrete incremental strategy (e.g., CDC, watermarking, or merge/upsert) with trade-offs. Explicitly enumerate failure modes like duplicates, late data, schema drift, and partial failures, and describe detection and recovery mechanisms for each.

Pro tip: Plaid deals with financial data where correctness and auditability are critical, so emphasize idempotency, exactly-once semantics, and reconciliation checks rather than just performance. Mention how you'd monitor data freshness and completeness with metrics and alerts, since silent data loss is often worse than a loud failure.

1. Clarify requirements and constraints

Ask about data volume, update frequency, latency SLAs, source systems, and whether the pipeline must support backfills or reprocessing. This scopes the problem and shows you avoid premature design.

2. Choose an incremental extraction strategy

Propose a method such as change data capture (CDC), timestamp/watermark-based extraction, or log-based replication, and explain why it fits the constraints. Discuss how you'd handle initial full load vs. subsequent increments.

3. Design idempotent loading and merging

Describe how you'd load increments into the target (e.g., merge/upsert on a primary key, partition overwrite, or append with dedup) ensuring idempotency so retries don't corrupt data. Mention use of staging tables and transactional writes.

4. Enumerate failure modes and mitigations

List concrete failure modes: duplicate records, missed late-arriving data, schema evolution, partial batch failures, source outages, and clock skew. For each, explain detection (e.g., counts, checksums, watermarks) and recovery (e.g., replay, backfill, dead-letter queues).

5. Add monitoring, reconciliation, and backfill strategy

Describe how you'd monitor freshness, volume, and data quality, and how you'd reconcile source and target counts. Explain how backfills are triggered and how they interact with ongoing incremental loads.

Key Points to Mention

  • Idempotency and exactly-once processing to avoid duplicates on retries
  • Watermarking or CDC to track progress and handle late-arriving data
  • Schema evolution and drift handling (e.g., Avro/Protobuf registry, additive changes)
  • Partial failure recovery: staging, transactional loads, dead-letter queues, and replay
  • Monitoring data freshness, volume anomalies, and reconciliation checks
  • Backfill strategy that doesn't conflict with incremental loads (e.g., partition-based reprocessing)

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

Q4

What happens to your model if events arrive out of order or timestamps have timezone inconsistencies?

Data ModelingTechnical Trade-offs
Author's notes

Blanked for a second.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Acknowledge that out-of-order events and timezone inconsistencies can corrupt model state and lead to incorrect analytics or decisions. Then describe a robust strategy: normalize timestamps to UTC, use event-time processing with watermarks and allowed lateness, and design idempotent, order-independent updates. Finally, discuss trade-offs between correctness, latency, and complexity.

Pro tip: Emphasize that you would validate assumptions with data profiling and add monitoring for late/out-of-order events, showing you think about production reliability, not just theoretical fixes.

1. Clarify the impact

Explain how out-of-order events can cause incorrect aggregations, stale state, or duplicate processing, and how timezone inconsistencies can shift event times, leading to wrong windowing or joins.

2. Normalize timestamps

Store all timestamps in UTC and include the original timezone as metadata. Convert to local time only for display or business logic that requires it.

3. Handle out-of-order events

Use event-time processing with watermarks to define completeness, allow a configurable lateness window, and buffer or reprocess late events. For stateful models, design updates to be idempotent and commutative where possible.

4. Design for idempotency and replay

Ensure that reprocessing the same event multiple times does not change the model state. Use unique event IDs, deduplication, and versioned state to support replay and correction.

5. Monitor and iterate

Track metrics like late event rate, watermark lag, and timezone conversion errors. Use these to tune allowed lateness and improve data quality.

Key Points to Mention

  • Event time vs. processing time and the role of watermarks
  • UTC normalization and timezone-aware timestamp handling
  • Idempotent and commutative updates for order independence
  • Allowed lateness and reprocessing strategies
  • Trade-offs between correctness, latency, and system complexity
  • Monitoring and alerting for late or out-of-order data

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

Q5

Your pipeline has duplicate rows coming in from the source. How does your model handle that, and where does deduplication live?

Data ModelingSystem Design
Author's notes

Put dedup in the staging layer, which felt right.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the source of duplicates and the desired outcome (e.g., exactly-once semantics). Then explain where deduplication should live in the pipeline (e.g., ingestion, transformation, or serving layer) and how your model handles it (e.g., using primary keys, merge/upsert, or window functions). Emphasize trade-offs and alignment with business requirements.

Pro tip: Mention that deduplication should ideally happen as early as possible to reduce downstream cost, but sometimes late deduplication is necessary for auditability. Also, highlight the importance of idempotent writes to handle retries gracefully.

1. Clarify requirements and constraints

Ask about the definition of a duplicate (e.g., exact match or based on a key), the expected volume, latency requirements, and whether duplicates are acceptable temporarily.

2. Identify deduplication strategies

Discuss options like using primary keys with upserts, window functions (e.g., ROW_NUMBER), or streaming deduplication with state stores. Consider batch vs. streaming contexts.

3. Choose where deduplication lives

Evaluate placing deduplication at ingestion (e.g., in the ETL tool), in the transformation layer (e.g., SQL), or in the serving layer (e.g., materialized views). Justify based on trade-offs.

4. Explain implementation details

Describe how your model handles duplicates: e.g., using MERGE statements, deduplication in dbt models, or Apache Flink for streaming. Mention idempotency and exactly-once processing.

5. Address monitoring and edge cases

Discuss how to detect duplicates (e.g., data quality checks), handle late-arriving data, and ensure deduplication logic is maintainable and scalable.

Key Points to Mention

  • Primary keys and unique constraints for deduplication
  • Window functions like ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...)
  • Idempotent writes and exactly-once semantics
  • Trade-offs between early vs. late deduplication (cost, latency, auditability)
  • Tools: dbt, Apache Spark, Flink, Kafka Streams, or SQL MERGE
  • Monitoring and alerting for duplicate detection

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

Q6

The source schema changes and a new column gets added, or an existing column gets renamed. How does your pipeline not break?

Data ModelingTechnical Trade-offs
Author's notes

Schema evolution.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by acknowledging that schema evolution is inevitable and pipelines must be designed to handle it gracefully. Then walk through a layered strategy: schema registry with compatibility checks, defensive coding with schema-on-read, and automated alerting for breaking changes. Emphasize trade-offs between strict enforcement and flexibility, and how you'd validate changes in staging before production.

Pro tip: Mention that you treat schema changes as API contract changes—version them, enforce backward compatibility, and have a rollback plan. This shows you think about data as a product and understand the business impact of pipeline failures.

1. Detect and classify schema changes

Use a schema registry or metadata store to capture the new schema and automatically classify the change as additive (new column), rename, type change, or deletion. This determines the risk level and required action.

2. Enforce compatibility policies

Apply backward/forward compatibility rules: additive changes are usually safe, renames and type changes are breaking. Reject incompatible changes at ingestion or route them to a quarantine area for manual review.

3. Design pipelines for resilience

Use schema-on-read with flexible formats (Avro, Parquet, JSON) and avoid hardcoding column names. Implement default values for missing columns and alias mapping for renames to keep downstream consumers working.

4. Automate testing and validation

Run schema compatibility tests in CI/CD and validate data quality in staging. Use canary deployments to catch issues before full rollout, and maintain a rollback strategy.

5. Monitor and alert

Set up monitoring for schema drift and pipeline failures. Alert on unexpected changes and track metrics like null rates for new columns to quickly identify and resolve issues.

Key Points to Mention

  • Schema registry (e.g., Confluent Schema Registry, AWS Glue) with compatibility levels (BACKWARD, FORWARD, FULL)
  • Schema evolution patterns: additive changes, renaming with aliases, type widening, and default values
  • Defensive coding: schema-on-read, dynamic column mapping, and avoiding SELECT *
  • Automated compatibility checks in CI/CD and contract testing
  • Trade-offs between strict schema enforcement (safety) and flexibility (agility)
  • Impact on downstream consumers: data contracts, versioning, and communication

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

Q7

How do you handle deletes in the source system? Does your model support hard deletes, and what are the implications?

Data ModelingTechnical Trade-offs
Author's notes

Soft deletes with an is_deleted flag and a deleted_at timestamp.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the source system's delete semantics (hard vs. soft deletes) and how they propagate to your model. Then discuss the trade-offs of supporting hard deletes in your model, including data integrity, auditability, and performance. Finally, propose a strategy that balances correctness with practical constraints, such as soft deletes with periodic purging or tombstoning.

Pro tip: Emphasize that deletes are often irreversible and can break downstream consumers; propose a design that makes deletes explicit and auditable, such as using tombstone records, to avoid silent data loss.

1. Clarify delete semantics

Ask whether the source system performs hard deletes (physical removal) or soft deletes (logical flag). Understand if deletes are cascading and how they are captured in change data capture (CDC).

2. Assess model support

Determine if your model currently supports hard deletes. If not, explain how you would extend it, e.g., by adding tombstone records or a deleted_at timestamp.

3. Evaluate implications

Discuss the implications of hard deletes: loss of history, referential integrity issues, impact on aggregations, and potential for accidental data loss. Also consider performance and storage costs.

4. Propose a strategy

Recommend a balanced approach, such as soft deletes with periodic hard deletes for compliance, or using tombstones to propagate deletes while retaining auditability.

5. Address edge cases

Mention handling of late-arriving deletes, idempotency, and ensuring downstream consumers are aware of delete semantics to avoid inconsistencies.

Key Points to Mention

  • Hard deletes vs. soft deletes: definitions and trade-offs
  • Tombstone records for propagating deletes in event-driven systems
  • Impact on referential integrity and foreign key constraints
  • Auditability and compliance requirements (e.g., GDPR right to erasure)
  • Performance and storage implications of retaining deleted data
  • Idempotency and ordering of delete events in streaming pipelines

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

Q8

There are NULLs in your join keys. What does your model do with those rows?

Data ModelingTechnical Trade-offs
Author's notes

Classic trap and I knew it was coming.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Acknowledge that NULL join keys are a common data quality issue and explain how your model handles them based on the join type and business requirements. Discuss the trade-offs between dropping, keeping, or flagging NULL-keyed rows, and how you ensure data integrity and transparency.

Pro tip: Proactively mention that you monitor and alert on NULL join key rates in production, as this shows you think about data reliability beyond just the immediate query.

1. Identify the join type and its default behavior

Explain that INNER JOINs drop rows with NULL keys, while LEFT/RIGHT/FULL OUTER JOINs may keep them depending on the side. Clarify which join your model uses and why.

2. Assess business impact and data quality

Discuss whether NULL keys indicate missing data, pipeline issues, or legitimate cases. Consider the impact on downstream metrics and whether dropping them could bias results.

3. Choose a handling strategy

Decide to either filter out NULL-keyed rows, keep them with a placeholder, or route them to a quarantine table. Justify your choice based on requirements and data contracts.

4. Implement monitoring and documentation

Add logging or alerts for NULL key occurrences and document the handling in data dictionaries or model comments to ensure transparency.

Key Points to Mention

  • Join semantics: how INNER, LEFT, RIGHT, and FULL OUTER joins treat NULL keys differently
  • Data quality: NULLs may signal upstream pipeline failures or missing source data
  • Business impact: dropping NULL-keyed rows can skew metrics or hide issues
  • Trade-offs: filtering vs. keeping vs. quarantining NULL-keyed rows
  • Monitoring: setting up alerts for unexpected NULL key rates
  • Documentation: clearly stating assumptions and handling in data models

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