DataLane

Interview prep

Pick a stack. Get the questions and the answers.

164 questions across 19 stacks. Not leaked exams — the shape of screens at banks, marketplaces, consultancies, and AI teams. Each item lists who typically asks it, then the answer you should say out loud.

Stacks
19
Questions
164
Companies named
96
SQL11 questionsWindows, grain, and the query you can defend on a whiteboardSnowflake13 questionsCredits, Time Travel, and warehouses you can explain to FinOpsdbt10 questionsStaging, marts, tests, and CI that does not rebuild the warehouseAirflow10 questionsIdempotent DAGs, catchup, and why XCom is not a data busDatabricks10 questionsDelta, medallion, and the lakehouse questions platform teams askKafka10 questionsPartitions, consumer groups, and the streaming trade you can defendSpark9 questionsJobs, shuffles, and the PySpark questions that show you have shippedAWS10 questionsS3, Glue, Athena, Redshift — pick the service in sixty secondsAzure10 questionsADF, Synapse, Fabric — who owns the pipeline on a Microsoft stackBigQuery9 questionsBytes scanned, partitions, and slots — the GCP warehouse screenPython & modeling10 questionsQuality checks, SCD, grain — the language plus the warehouse designAI / RAG / MLOps10 questionsRetrieval, features, and the boundary between DE and MLSystem design12 questionsEnd-to-end platforms: grain, SLAs, CDC, lakes, and what you page at 3amDagster5 questionsAssets, checks, and why the DAG is a data graphApache Flink5 questionsEvent time, watermarks, and what exactly-once actually meansTrino5 questionsFederated SQL that can melt the source if you are carelessClickHouse5 questionsMergeTree, ORDER BY, and why tiny inserts diePostgreSQL5 questionsThe OLTP source: CDC, EXPLAIN, and do not scan prodData quality5 questionsContracts, freshness, and when to fail the job

This week in screens

Themes people are discussing in public (HN, vendor blogs, editorial review of posts). We do not scrape LinkedIn — that violates their terms. A Monday job appends new shapes when a key is configured.

  • 2026-08-28 · Coinbase · Ledger grain

    A deposit webhook retried. How do you not mint two ledger rows?

    Idempotency key (or natural key on payment_id + event_type) and an upsert. A running-balance column you overwrite is not a ledger.

    Practice sql →
  • 2026-08-26 · Apple · Shared lake, one writer

    Two engines must share one lake table. What do you refuse to do?

    Dual-write CSV or two independent Delta copies. Pick Iceberg (or UniForm) with a single writer. Two writers is how the copies lie.

    Practice system-design →
  • 2026-08-22 · LinkedIn · Rebalances under load

    Your consumer group rebalances every few minutes during peak. What do you check first?

    max.poll.interval.ms vs processing time, cooperative sticky assignment, and whether a slow partition (hot key) is triggering leave/join. Adding consumers without fixing poll interval often makes lag worse.

    Practice kafka →
  • 2026-08-18 · Snowflake · Cortex in a dashboard

    A hiring manager asks you to put Cortex COMPLETE in a Looker explore. What do you say?

    No. Materialize the label in ELT once, version the prompt, and let BI read a column. Dashboard refresh is a token bill and a non-deterministic metric.

    Practice snowflake →
  • 2026-08-10 · Capital One · Fan-out revenue

    Revenue doubled after a “harmless” dimension join. How do you prove it in five minutes?

    Row counts before and after the join, then GROUP BY the join key HAVING count(*) > 1 on the dimension. Fix the grain or aggregate the dim. Never DISTINCT the fact.

    Practice sql →

By company

Publicly discussed screen shapes. Updated 2026-08-28.

All 20 companies →

Say it out loud

Interviewers want the first sentence of the answer, then a trade-off. Read the solution, close the tab, repeat.

Company pills are a hint

They mark the shape of the question — marketplace grain, bank controls, consultancy diagrams — not a leaked bank.

Then practice SQL

Windows and joins live in theSQL Playground. Cert-style MCQ is onpractice tests.

↑↓ navigate openesc close