Top 30 Data Engineering Interview Questions and Answers
30 multiple-choice questions on Data Engineering, drawn from 30 bites out of the 46 tagged Data Engineering on Tezvyn. Answer them here or read straight down. Every question carries the correct option, why it is correct, and a link to the bite it came from.
30 questions. Pick an answer, or open “Show the answer” to read it.
Answers are graded in your browser. Nothing is saved, and no XP or streak is earned here. The app keeps score.
Question 1 of 30
To efficiently manage large datasets and avoid duplicating storage across versions, data versioning systems primarily utilize which technique?
Show the answer
Answer: c · Storing each unique data file once and using lightweight pointers to represent different dataset versions.
Data versioning systems achieve efficiency by storing only one copy of each unique data file and using lightweight pointers to reference these files across different dataset versions, avoiding full duplication. Option B describes the inefficient approach that data versioning aims to solve.
Question 2 of 30
Your team wants to measure six-month LTV impact of a pricing change. Which architecture avoids survivorship bias and cross-experiment collision traps common in long-term holdbacks?
Show the answer
Answer: a · Assign users with a deterministic hash on a durable account ID, check a dedicated holdback flag before any regular experiment flags, seal metrics only after the observation window plus a bounded grace period, and use clustered standard errors with an intent-to-treat model.
Option A is correct because it pins users indefinitely with durable identity storage, isolates the holdback from newer experiments via namespace ordering, seals metrics only after the full window closes, and uses intent-to-treat with clustered errors to avoid survivorship bias. Option B is tempting because deterministic bucketing is correct, but device IDs are not durable across reinstalls, incremental computation violates the sealed observation window, and analyzing only exposed users creates survivorship bias by dropping unexposed bucketed users.
Read the full bite: How would you architect long-term holdback experiment groups?
Question 3 of 30
When writing a query that groups by department and filters on COUNT(*) > 10, why must the predicate be in HAVING rather than WHERE?
Show the answer
Answer: b · WHERE is evaluated before GROUP BY, so the aggregate count does not yet exist
WHERE filters individual rows before grouping and aggregation occur, so aggregate values like COUNT(*) have not been computed yet and do not exist at that stage. Option D is wrong because repeating the aggregate expression in WHERE does not help; the aggregate still does not exist when WHERE is evaluated.
Read the full bite: What is the difference between WHERE and HAVING in SQL?
Question 4 of 30
Why should batch product metadata and streaming click events typically use different physical storage formats?
Show the answer
Answer: c · Row-oriented formats minimize write overhead for high-velocity events, while columnar formats improve projection and compression for batch analytics
Row-oriented formats minimize write overhead for streaming ingestion while columnar formats allow efficient projection and compression for batch training data. Choosing columnar for both is tempting but adds unnecessary write overhead to high-velocity events.
Read the full bite: Design ingestion for clickstream and batch product metadata
Question 5 of 30
When handling a GDPR erasure request, what is the correct way to update aggregated analytics dashboards derived from the user's data?
Show the answer
Answer: d · Reprocess the underlying data pipeline to exclude the user and rebuild all affected metrics
The card states that aggregated dashboards must be fixed by reprocessing the underlying pipeline or using differential privacy, because simple subtraction fails for complex metrics like averages and funnels. Option B represents the common misconception of manually adjusting aggregates, which does not reliably remove the user's influence from derived metrics.
Read the full bite: How do you fulfill a GDPR erasure request across data stores?
Question 6 of 30
Which of the following describes a proper ETL implementation?
Show the answer
Answer: b · A scheduled process automatically extracts data from several sources, transforms it, and loads it into a central database.
ETL is intended as an automated, three-phase pipeline run on recurring schedules, which option B illustrates. Option A represents the manual-run footgun the card warns against, while B omits the required transformation phase and D describes a one-time task lacking recurring automation.
Question 7 of 30
When building a time-decay attribution pipeline in a cloud warehouse, which practice distinguishes a model that measures true incremental impact from one that only captures correlation?
Show the answer
Answer: c · Comparing the model's fractional credit allocations against holdout experiments that test channel lift
Holdout experiments validate that attributed credit reflects causal incrementality rather than mere correlation. Identity stitching is essential for resolving users across touchpoints, yet it does not prove that a specific channel caused the conversion.
Read the full bite: Describe the architecture for multi-touch attribution with time-decay
Question 8 of 30
Why is it architecturally necessary to keep batch historical features in a KV store while maintaining session-level streaming features in a separate in-memory cache?
Show the answer
Answer: a · The batch path produces terabyte-scale pre-aggregated profiles that are updated infrequently, while the streaming path handles high-velocity session events with natural TTL decay; a single storage system cannot optimize for both access patterns under the 50ms SLA.
The card states that batch and streaming data have fundamentally different latency, volume, and freshness requirements, so one storage system cannot handle both optimally without breaking the sub-50ms SLA. Distractor A sounds plausible because the follow-ups mention exactly-once semantics for billing, but the card never cites billing consistency as the reason for the dual-store split.
Read the full bite: Design a sub-50ms real-time bidding feature pipeline
Question 9 of 30
When converting a large list of flat dictionaries to a pandas DataFrame, which method minimizes Python-level overhead by leveraging vectorized C-backed construction?
Show the answer
Answer: c · Pass the list of dicts directly to pd.DataFrame so the constructor builds the block manager in one pass
Passing the list directly to pd.DataFrame leverages a C-backed constructor that builds the block manager in a single vectorized pass. Option D is tempting but wrong because iteratively using pd.concat creates a new DataFrame each iteration, resulting in quadratic time complexity from repeated memory copies.
Read the full bite: Most efficient way to convert list of dicts to pandas DataFrame
Question 10 of 30
What is the main architectural reason to avoid using an incrementing user property to track the 3-invite aha moment?
Show the answer
Answer: c · An incrementing user property would conflate lifetime invites with the first-week window and cannot naturally enforce a fixed seven-day expiration or reversal.
User properties persist until overwritten, so they cannot enforce a fixed seven-day expiration and conflate lifetime behavior with first-week behavior. Distractor D is tempting because late arrivals are a real concern, but windowing does not remove the need to handle them; pipelines must explicitly reconcile late data.
Read the full bite: How would you instrument events and query a 3-invite aha moment?
Question 11 of 30
When backfilling a 90-day feature for millions of users, which strategy best protects production while ensuring the backfilled data matches live logic?
Show the answer
Answer: d · Reuse the live feature pipeline on a separate batch cluster, process bounded daily partitions, stage the results, validate them, and promote atomically.
Reusing the live pipeline on isolated compute with bounded partitions prevents both resource contention and logic drift, while staging and validation ensure correctness before atomic promotion. Option B is tempting because off-peak hours feel safer, but duplicating logic creates silent drift and direct production access can still impact serving.
Read the full bite: Backfill a complex feature for millions of users without impacting production
Question 12 of 30
To guarantee exact reproducibility of a historical training dataset after both schema and data have evolved in the feature store, what should a pipeline pin?
Show the answer
Answer: d · Both the schema version and the data timestamp or commit ID
Reproducibility requires pinning both the schema version and the data snapshot because schema evolution and data history are independent dimensions; pinning only the schema version would retrieve current data rather than the exact historical state used for training.
Read the full bite: How would you implement versioning for feature definitions in a feature store?
Question 13 of 30
You need to trace how a deprecated field in an upstream microservice affects downstream dashboards without slowing production APIs. Which strategy best achieves this?
Show the answer
Answer: d · Emit metadata asynchronously at service boundaries and store column-level relationships in a central graph catalog.
Capturing metadata asynchronously at service boundaries records provenance where data originates without adding latency, while a graph catalog enables fast column-level impact analysis. Option A is tempting but wrong because synchronous instrumentation would introduce crippling latency to production APIs.
Read the full bite: How would you implement data lineage for microservices analytics?
Question 14 of 30
Which approach best prevents broken dashboards and silent data loss when a source database adds nullable columns in a CDC pipeline?
Show the answer
Answer: a · Use a schema registry with compatibility checks, land raw events flexibly in a bronze layer, and enforce schemas only when casting to silver tables
Decoupling ingestion from serving lets the bronze layer absorb drift without breaking historical data, while registry compatibility rules catch breaking changes early. Pausing for coordinated ALTER TABLES creates downtime and does not scale, making it the most tempting but dangerous distractor.
Read the full bite: Design a CDC pipeline that handles schema evolution gracefully
Question 15 of 30
A transaction event at 08:50 must be joined to a user profile table where the user upgraded to premium at 09:00. Which join behavior preserves point-in-time correctness for the training row?
Show the answer
Answer: a · Match the most recent profile row with a timestamp less than or equal to 08:50.
An AS OF join retrieves the latest dimension record known at or before the event timestamp, so the 08:50 event correctly sees the pre-upgrade standard tier. Option D is the most tempting distractor because joining on user_id alone and taking the latest record silently leaks future state into the training set.
Read the full bite: Design system ensuring point-in-time correctness for training data joins
Question 16 of 30
A platform team advocates for a declarative feature platform to reduce boilerplate. Which risk best illustrates why this choice could fail without the right organizational maturity?
Show the answer
Answer: b · The team must own the opinionated abstractions for checkpointing, schema evolution, and exactly-once semantics, requiring deep infrastructure expertise.
Declarative platforms centralize ownership of checkpoints, schema evolution, and exactly-once semantics within the platform team, so adopting one without that infrastructure maturity fails; option A describes imperative platforms, and D wrongly assumes declarative means no-code.
Read the full bite: Argue for declarative or imperative feature platforms with trade-offs
Question 17 of 30
Which client-side strategy best maximizes throughput for a 100 req/min API without triggering excessive 429 errors?
Show the answer
Answer: b · Bound concurrency to a small worker pool, proactively pace requests using rate-limit headers, and apply exponential backoff with jitter on 429s.
The correct answer combines proactive throttling, header-aware dynamic pacing, bounded concurrency, and resilient retries as described in the card. Option A is tempting because it limits concurrency, but it still creates burst traffic and ignores headers, relying on the server to punish the client rather than preventing 429s proactively.
Read the full bite: Design a rate-limited REST API data collection script
Question 18 of 30
Why might a dashboard query for unique visitor count still trigger an expensive raw event scan even when pre-aggregated rollups exist?
Show the answer
Answer: c · Because distinct counts are non-additive and cannot be safely reused across dimension slices outside the rollup definition
Non-additive measures such as distinct counts require carefully structured rollups and cannot be combined or re-sliced arbitrarily, causing cache misses when the query dimensions differ. Distractor B confuses staleness with structural mismatch; a stale rollup returns outdated results rather than forcing a fallback to raw scans.
Read the full bite: Trade-offs between pre-aggregated and raw event data for dashboards
Question 19 of 30
You must add a new attribution field to existing signup events consumed by BI tools and ML pipelines. Which strategy best prevents downstream breakage?
Show the answer
Answer: b · Register a backward-compatible schema version with the new field as nullable, land events in a raw layer that tolerates drift, then propagate to modeled tables after validation
Option B follows backward-compatible serialization, protects the immutable raw layer, and validates changes before they reach BI. Option C is tempting because rewriting history feels clean, but it destroys the immutable event log and incurs heavy reprocessing costs, while C and D immediately break old readers.
Read the full bite: How do you manage event schema evolution without breaking reports?
Question 20 of 30
In which situation would a formal ETL pipeline be considered unnecessary overhead?
Show the answer
Answer: b · When a system operator needs to perform a genuine one-time data transfer that requires no transformation
The card states that ETL adds unnecessary overhead for genuine one-time transfers that a system operator can handle manually without automation. Option D mirrors the canonical example where ETL is the ideal choice.
Question 21 of 30
When scraping a dynamic website, what is the primary reason to prioritize finding its hidden API calls over using a headless browser?
Show the answer
Answer: a · To efficiently retrieve data that is loaded by JavaScript and not present in the initial HTML response.
The card states that finding API calls is for when data is missing from the initial HTML but visible in the browser, offering a faster and more reliable alternative. Headless browsers are generally used for complex interactions or when the API is too difficult to replicate, making them a 'last resort'.
Read the full bite: Scraping Dynamic Sites: Find the API, Not Just Render
Question 22 of 30
Which design best balances user experience, data quality, and scalability for tracking share clicks?
Show the answer
Answer: a · Batch structured events with hashed IDs using exponential backoff retry, then land in partitioned columnar storage
Option A is correct because it combines non-blocking batching with resilient retry, privacy-preserving identifiers, and scalable partitioned storage. Option B is tempting because beacon delivery and partitioned tables are valid choices, but including raw emails violates privacy guardrails and risks PII exposure.
Read the full bite: Describe the end-to-end data flow for tracking a 'Share' button click
Question 23 of 30
What is the defining architectural difference that makes ELT attractive with modern cloud data warehouses?
Show the answer
Answer: a · ELT loads raw data first and runs transformations using the warehouse's own scalable compute, keeping raw data for reprocessing
ELT loads raw data then transforms in place using the warehouse's elastic compute, preserving raw data for reprocessing. The other options either trivialize the difference, drop extraction, or describe ETL's pre-load transform.
Read the full bite: What is the difference between ETL and ELT?
Question 24 of 30
In a valid onboarding A/B test pipeline, why is it critical to log an exposure event before the variant renders?
Show the answer
Answer: c · To create an intent-to-treat cohort and avoid survivorship bias from only tracking completers
Logging exposure before rendering establishes an intent-to-treat cohort and prevents survivorship bias from only tracking users who completed the flow. Option A confuses the exposure event with deterministic bucketing, which is a separate assignment step that occurs earlier in the pipeline.
Read the full bite: How do you technically implement an A/B test for onboarding flows?
Question 25 of 30
When building data infrastructure to measure causal viral growth, which layer must be hardened first before downstream feature stores or model serving can be trusted?
Show the answer
Answer: b · An identity resolution layer that links inviter and invitee across devices and sessions
The card emphasizes that without clean attribution between inviter and invitee, any k-factor model is built on garbage data, and a broken join causes the feature store to serve incorrect network topology. Fast streaming ingestion is valuable but cannot fix a broken identity link, making attribution the prerequisite.
Read the full bite: What data pipelines and infrastructure feed a viral user acquisition model?
Question 26 of 30
An interviewer asks you to trace a purchase click from the frontend to a BI dashboard. Which description best demonstrates you understand analytics as a supply chain?
Show the answer
Answer: b · The frontend instruments the event, which is then routed, ingested into the warehouse, transformed into a model, and consumed by the BI tool
Option B correctly traces the full supply chain through instrumentation, routing, ingestion, transformation, and consumption. Option C is tempting because it describes a normal application request flow, but it wrongly stops at the production database and omits the analytics-specific ingestion and modeling layers.
Read the full bite: Describe tracking a user event end-to-end from frontend to BI tool
Question 27 of 30
Which statement best describes the separation of concerns between dbt, traditional Python ETL, and Airflow?
Show the answer
Answer: c · dbt executes declarative SQL transformations inside the warehouse, while Airflow schedules tasks and Python ETL relies on external compute.
dbt runs declarative SQL directly in the warehouse with native lineage, testing, and documentation, whereas Python ETL uses external compute and Airflow only orchestrates tasks without transformation semantics. Option B is wrong because dbt complements rather than replaces Airflow, as it does not orchestrate general workflows like file transfers or API calls.
Read the full bite: Describe dbt's role and how it differs from traditional ETL
Question 28 of 30
Why do analytics SDKs batch events and send them to an ingestion endpoint rather than writing each click directly to the production database?
Show the answer
Answer: b · Batching plus an asynchronous pipeline scales better and decouples analytics from the app's critical path
Buffering and asynchronous ingestion absorb traffic spikes and keep analytics from slowing or coupling to the app's request path. Variant assignment is handled separately by deterministic hashing, not by the write strategy.
Question 29 of 30
An experiment pipeline ingests one billion events daily across variant, country, device, and high-cardinality user ID. Which design best satisfies sub-second dashboard latency without causing storage explosion?
Show the answer
Answer: c · Use a stream processor to emit partial rollups by variant, country, and device into a real-time OLAP engine while retaining raw events and using HLL sketches for unique user counts
Partial rollups on high-traffic dimensions with HLL sketches deliver sub-second latency without storage explosion, whereas materializing every combination including user ID creates billions of cells and exhausts resources.
Read the full bite: Design a pre-aggregation architecture for low-latency experiment results
Question 30 of 30
When is a data lake the better choice over a traditional data warehouse?
Show the answer
Answer: b · When sources are diverse or unstructured and you want schema-on-read flexibility
Lakes excel at storing diverse, raw, large-volume data cheaply with schema applied at read time. Fast governed SQL over fixed metrics and strict schema-on-write are exactly what a warehouse is built for.
Could you explain these out loud?
That is what an interview actually tests. Tezvyn gives you questions like these with what the interviewer is really checking, the answer that lands, and the mistake that ends the conversation, in the four minutes before your next meeting.
The iPhone app is on the way
We are building it. Until it lands, nothing here is held back from you: every interview card, your saved cards, streaks and the job board all work in Safari, plus hundreds of free practice quizzes of thirty questions each. Sign in and it all carries over to the app the day it arrives.
Want it as an icon? Tap Share at the bottom of Safari, then Add to Home Screen. It opens full screen and the cards you have read stay available offline.