SQL · Python · Data Systems
Data Engineer path Data Engineering Interview Lab
Solve SQL and Python tasks. Diagnose pipeline failures. Design reliable data systems.
25 exercises
Daily revenue from changing delivery events
Deduplicate updates before calculating daily revenue.SQLUsers active on seven consecutive days
Find streaks without counting repeated events as extra days.SQLFlatten nested source records
Convert nested dictionaries into safe dotted paths.PythonRepair a replayed incremental load
Keep the newest version, including deletion tombstones.PythonBooking metrics with changing property details
Choose table grain and preserve the history behind a metric.Data modelingDelivery analytics with late and repeated events
Serve live operations and corrected finance reports from one event history.System designA Spark join has one task that never finishes
Use task evidence to distinguish skew from insufficient compute.DebuggingMigrate a live reporting dataset
Connect a consistent snapshot to ongoing changes without losing records.System designAction counts without duplicate joins
Join event tables without multiplying the result.SQLEstimate time spent on each page
Use the next event while acknowledging what the logs cannot tell you.SQLPrices that rise every month
Check strict growth and calendar continuity together.SQLA checkout funnel in the right order
Count users who actually progressed through the stages.SQLAccounts that disagree after migration
Find missing, extra, and changed records even when counts match.SQLTop visitors with tied activity counts
Rank distinct-page counts while preserving ties.SQLMedian values by region
Group records and handle odd and even sample sizes explicitly.PythonDistinct accounts in time ranges
Apply half-open interval boundaries without double-counting activity.PythonReconcile account balances across formats
Compare normalized records, not aggregate totals.PythonSeparate valid events from bad input
Validate an ingestion batch without losing the evidence for rejected rows.PythonA revenue view doubles its totals
Find the table-grain defect before changing SUM.DebuggingA successful backfill writes today’s partition
Separate the processing interval from the wall clock.DebuggingA Spark job reads thousands of tiny files
Distinguish file listing and task overhead from a hot key.DebuggingA warehouse for orders, returns, and refunds
Use separate fact grains for events that can happen more than once.Data modelingConsistent ratings from multiple providers
Resolve identity and rating scales without silently merging different items.System designFresh dashboards without rebuilding everything
Choose materializations from query patterns, correction rules, and refresh cost.System designRepair a Booking Ledger and Occupancy Report
Repair a versioned booking ledger and its nightly occupancy report.Python