Data Engineering · Speaking Practice

One Hour. Seven Stages.

🎯 27 Core Questions 🌐 Simple English 💻 SQL Exercise 🎧 Listen · Recall · Repeat
60:00 Ready
Stage 1Introduction Stage 2Warehouse Stage 3Quality Stage 4Databricks Stage 5SQL & Delivery Stage 6Collaboration Stage 7Your Questions MuMicron · EHSS
Stage 01 · 00–06 Minutes

Introduction & Motivation

BackgroundStrengthsRole fit
Q01

Could you briefly introduce yourself?

### Background

Hi, I’m **Blair Chen**, a Senior Data Engineer with **seven years of experience in Singapore**, working on data warehousing and analytics for **global payments and e-commerce**.

### Skills

My strengths are **SQL, Python, Spark, Flink, AWS, dimensional modeling, data warehousing, and data governance**. I have experience with both **batch and real-time data warehousing**, with **more extensive experience on the batch side**. I build reliable data pipelines and reusable datasets that business teams can trust.

### Enterprise Experience

My two most recent roles were at **TC** and **Mi**.

At **TC**, I spent **four years** working across three areas:

1. **Data warehouse architecture:** Built models for cross-border payments, from collection to payout. 2. **Data governance and asset management:** Improved the **data quality score** and made our data assets more **standardized, reliable, and easier to understand**. 3. **Pipeline and SLA optimization:** Improved pipeline performance and reporting reliability.

At **Mi**, I focused on three areas:

1. **Data warehouse standards:** Defined **data domains**, helping shift development from report-specific tables to reusable models built around business processes. 2. **Reservation data mart:** Built a reusable mart that supported **CRM targeting**. 3. **AI analytics:** Built a **natural-language analytics agent** on top of the mart using **LangGraph, RAG, and controlled SQL**.

I’m interested in **Traveloka** because this role focuses on scalable warehouse architecture, trusted metrics, and reliable data pipelines for a transactional business. I would bring hands-on data engineering experience and practical AI capability where it adds value.

- **6Estates:** Built an AWS pipeline for commercial invoices using S3, Glue, PySpark, and Athena. Standardized schemas, deduplicated records, checked data quality, and identified unit-price anomalies. - **Working with analysts:** I align on the business definition, table grain, keys, and delivery time. I then build reusable models and validate completeness, uniqueness, freshness, and source reconciliation. - **Why I’m looking:** I’m seeking a hands-on data engineering role with end-to-end ownership. My AI agent work is an additional capability built on governed data. - **Career move from Mi:** My role shifted mainly toward operational support, with less engineering and development ownership than I expected. - **Career move from TC:** After four years, I wanted broader architecture challenges and room to grow. - **Gap:** My data engineering role was subject to a 180-day non-compete agreement.

Recall: Background → TC → Mi → role
What are your main strengths?

My strongest areas are data modeling, Spark troubleshooting, and building reliable data pipelines. I can use a project example to explain each area.

Q02

Why are you interested in this role?

I’m interested in **this role** because this role focuses on **scalable warehouse architecture, trusted metrics, and reliable data pipelines** for a transactional business.

Recall: Match → contribution → growth
Why healthcare?

Accuracy, privacy, and traceability are important in healthcare. These are also important in payments. I would bring those engineering practices while learning the healthcare business and its data definitions.

Q03

Why did you leave Mi?

Following a company restructuring, most of the core engineering work moved to Beijing, and the Singapore team became smaller.

My responsibilities shifted toward operational support and ad-hoc requests, with fewer opportunities to work on new development.

I chose to leave voluntarily and look for a role where I can contribute more to hands-on engineering and end-to-end delivery.

Recall: Change → scope → direction
This role includes support. Are you comfortable with that?

Yes. Production support is part of engineering ownership. I’m looking for a balance between maintaining reliable systems and developing improvements and new solutions.

Stage 02 · 06–20 Minutes

Warehouse & Pipelines

Source / CDCODS → DWDMerchant / Store / OrderReporting
Q04

How do you design and load an analytical data warehouse?

**Q1: What is the difference between OLTP and OLAP?** **OLTP (Online Transaction Processing)** supports daily transactions. **OLAP (Online Analytical Processing)** supports historical analysis and aggregation. **Q2: What are Facts, Dimensions, and Measures?** **Facts** record business events, such as payments. **Dimensions** provide context, such as users and merchants. **Measures** are numeric values, such as payment amounts. **Q3: How do you design a Fact Table?** Define the **business process**, then declare the **grain**: exactly what one row represents. Next define the **keys, dimensions, measures, source logic, loading strategy, and quality checks**. ### Schemas & Keys **Q4: What is the difference between Star Schema and Snowflake Schema?** A **Star Schema** connects a fact table directly to denormalized dimensions. It is simpler and requires fewer joins. A **Snowflake Schema** normalizes dimension hierarchies into separate tables, reducing duplication but requiring more joins. **Q5: What are the main key and dimension concepts?** A **business key** is a source-system identifier, such as `merchant_id`. A **conformed dimension** has consistent definitions across data marts. A **degenerate dimension** is an identifier, such as an order number, stored in a fact table without a separate dimension table. ### Dimension History & Loading **Q6: What is SCD, and how do Type 1 and Type 2 differ?** **SCD (Slowly Changing Dimension)** defines how dimension changes are handled. **Type 1** overwrites the old value without preserving history. **Type 2** adds a new row with effective dates to preserve history. **Q7: What is the difference between Full Snapshot and Incremental Loading?** **Full snapshot loading** captures the complete dataset for each snapshot date. **Incremental loading** processes only new or changed records. Retained daily snapshots preserve each day's state, but do not capture every change within a day. ### Warehouse Layers & DM Design **Q8: What are the main Data Warehouse layers?** **ODS (Operational Data Store)** holds raw or near-raw source data. **DWD (Data Warehouse Detail)** contains cleaned, standardized detailed records. **DIM (Dimension)** contains reusable descriptive entities. **DM (Data Mart)** contains business-oriented analytical datasets and metrics. **ADS (Application Data Service)** serves specific reports or applications. **Q9: How do you design a DM Table, and why is it reusable?** Define the **business process, grain, keys, dimensions, metrics, source logic, loading strategy, and governance controls**. **Milestone metrics** capture key timestamps or states, such as KYC approval. **Time-series metrics** capture rolling or cumulative values, such as 30-day payment amount. A DM standardizes shared business logic so reports can reuse it. ### Data Processing & Partitioning **Q10: What are ETL, ELT, and Partitioning?** **ETL (Extract, Transform, Load)** transforms data before loading it into the target. **ELT (Extract, Load, Transform)** loads data first, then transforms it inside the target. **Partitioning** divides a table by a column, such as date, so queries can skip irrelevant data. **Date partitioning** can also simplify incremental loading and data retention.

Recall: Define → explain → give an example → state the trade-off
Q05

Walk me through a data warehouse you built.

I mainly built data warehouses for **cross-border payments and merchant collection** at **TC**. ### How the Foundations Fit This Warehouse The source applications handled **OLTP** transactions, while the warehouse supported **OLAP** reporting and historical analysis. For each analytical model, I start with the **business process and grain**, then define its keys, dimensions, measures, source logic, loading strategy, and quality checks. Facts represent measurable business events; dimensions such as **Merchant, Store, and Order** provide reusable context. I choose a **Star Schema** when simpler reporting joins are useful, and a **Snowflake Schema** when normalized hierarchies justify the extra joins. A **business key** comes from the source; a **surrogate key** is warehouse-generated and can distinguish historical dimension versions. Shared **conformed dimensions** keep definitions consistent across marts, while an order identifier can remain a **degenerate dimension** when it needs no separate descriptive table. I also classify measures as **additive**, **semi-additive**, or **non-additive**; for example, balances should not usually be summed across time, and ratios should not be summed directly. I also separate **dimension history** from **data loading**: SCD Type 1 overwrites a value, while Type 2 preserves effective-dated versions. Full snapshots capture a complete state; incremental loads process changes, and a daily snapshot cannot show every intra-day change. Finally, **ETL vs. ELT** describes where transformations happen. I use **date partitioning** when it matches query filters and retention needs, so queries can skip irrelevant data. ### Data Warehouse Development Process 1. I defined the **business goals and requirements**. 2. I ingested raw source data into my **ODS**, the Operational Data Store (**Databricks counterpart: Bronze Delta tables in cloud object storage**). 3. I cleaned and standardized detailed data in **DWD / DIM** (**Databricks counterpart: Silver Delta tables**). 4. I built reusable subject-oriented models in **DM** (**Databricks counterpart: Gold facts and dimensions**). 5. I served downstream applications through **ADS** (**Databricks counterpart: curated Gold serving tables or views**). The architecture followed **ODS → DWD → DM → ADS**. In a lakehouse comparison, these layers are broadly **Bronze → Silver → Gold → Gold serving**, but the mapping is conceptual rather than one-to-one. | **TC DWH area** | **My design and responsibility** | **Databricks counterpart** | | --- | --- | --- | | **ODS** | Raw source landing; full snapshots and minimal transformation preserve the source of truth. | Bronze Delta tables in cloud object storage; retain raw CDC only when the source connector provides it. | | **DWD / DIM** | Clean, deduplicate, standardize, and validate detailed business records and shared dimensions. | Validated Silver Delta tables with quality rules and controlled change handling. | | **DM / DWS** | Reusable subject models such as **Merchant, Store, and Order**; shared facts, dimensions, and metrics. | Governed Gold facts and dimensions for consistent business analysis. | | **ADS** | Application-specific datasets for **BI, regulatory reporting, and AML compliance**. | Curated Gold serving tables or views for reports and applications. | | **Internal DAG scheduler** | Dependency-based scheduling, triggers, retries, SLA monitoring, and alerting. | Databricks Workflows / Jobs as a conceptual orchestration counterpart. | | **Hive tables / HDFS** | Hive tables stored on HDFS, with storage and table metadata managed in the existing platform. | Delta tables on cloud object storage; table format and storage layer are separate concepts. | | **Data governance** | Asset scoring and controls for standards, data quality, security, and cost. | Unity Catalog and related platform governance controls, subject to the implemented design. | Across all layers, we applied **data governance and SLA monitoring**, and used **DAG-based dependency scheduling**, which improved our SLA from **95% to over 99%** through dependency cleanup, trigger-based scheduling, and proactive monitoring and alerting.

Data Warehouse Hourglass Architecture
Many source systems converge into reusable subject models, then expand into multiple consumption products.
MySQL → Binlog
Apache InLong / CDC
Kafka Change Events
Other SourcesFiles / APIs / Databases
ODS — Raw Source of TruthHive on HDFS · Full snapshots · Minimal transformation · Standardized data types
Governance across every layerStandards 35% · DQC 35%
Security 15% · Cost 15%
DAG orchestrationTrigger-based scheduling
SLA: 95% → 99%+
DWD — Detailed Business RecordsDeduplication · Null handling · Format standards · Common terminology
DM — Narrow WaistMerchant · Store · Order
ADS — Consumption LayerBI Dashboards · Regulatory Reports · AML Compliance · T+1 before 10 AM
The DM layer forms the narrow waist: reusable subject models connect many upstream sources to many downstream products.
Reference Architecture · CDC to Lakehouse Illustrative pattern; confirm the target platform and team ownership.
End-to-end CDC architecture from source databases through CDC capture, staging, and Databricks Bronze, Silver, and Gold layers to consumers

My ODS was the raw landing layer, with source data stored as Hive tables backed by HDFS (**Databricks counterpart: Bronze Delta tables in cloud object storage, which can retain raw CDC events and the operation and source metadata provided by the connector**).

I cleaned and standardized detailed records in DWD / DIM (**Databricks counterpart: Silver Delta tables, where CDC changes can be validated, deduplicated, applied in source order, and handled for deletes and approved schema changes**).

My DM contained reusable business models such as Merchant, Store, and Order (**Databricks counterpart: Gold facts and dimensions**).

My ADS served BI dashboards, regulatory reports, and AML compliance (**Databricks counterpart: curated Gold serving tables or views for downstream reporting and applications**).

Your experience: InLong + Kafka and warehouse layers. Databricks Bronze/Silver/Gold and managed CDC connectors are reference design choices unless you have used them in production.

Recall: Define → explain → give an example → state the trade-off
Q06

Tell me about a Spark performance issue you solved.

One example was a **critical Spark job** for cross-border remittance analytics. It usually took around **30 minutes**, but at peak times ran for as long as **75 minutes** and occasionally failed with **Executor OOM**. ### 1. Background & Problem The job calculated unique senders with `COUNT(DISTINCT sender_id)` and summed remittance amounts by provider, destination country, and currency. It supported transaction monitoring and operational reporting. ### 2. First Attempt — Configuration Tuning Before I knew the cause was data skew, I tried configuration changes: increasing shuffle partitions and executor memory, enabling **AQE**, and testing a sort-based aggregation by disabling the hash aggregation path where supported. The sort-based attempt stopped the OOM, but its sorting overhead pushed runtime beyond **one hour**. More partitions and executor memory did not remove the long-running tasks. That showed configuration tuning alone was not enough. ### 3. Investigation — Spark UI & Hot-Key Skew I then checked the **Spark UI**, comparing task durations, shuffle volumes, and key distribution. Most tasks completed normally, but a few reducers ran much longer. The distribution showed two extreme hot keys — **Wise-US-USD** and **PandaRemit-KR-KRW** — with more than **7 million transactions** in total. ### 4. Root Cause — Distinct Aggregation Under those hot keys, `COUNT(DISTINCT sender_id)` created a very large in-memory distinct set in **HashAggregate**, driving heavy GC and Executor OOM. AQE helped with milder skew, but could not make these two groups small enough. ### 5. SQL Rewrite — Two-Stage Aggregation & Targeted Salting After the Spark UI showed a few unusually slow reducers, I counted rows by **provider, destination country, and currency** and compared the key volumes. **Wise-US-USD** and **PandaRemit-KR-KRW** stood out, with more than **7 million transactions combined**; those were the hot keys I targeted. I reduced the data first at **business key + sender_id** grain, then aggregated back to the original business grain. I applied deterministic **8-way salting only to the two extreme keys**, hashing `sender_id` so each sender stayed in one bucket and the distinct count remained exact. ### 6. Results The final job completed in **13 minutes**, down from a peak of **75 minutes**. The OOM failures stopped, and the run became more stable. ### 6. Likely Follow-up Questions **Why did `COUNT(DISTINCT)` cause OOM?** A skewed key forced one task to hold millions of sender IDs in memory, causing heavy GC and executor OOM. **Why did AQE not solve it completely?** AQE helped with moderate skew, but the two extreme keys still needed a query-level fix. **What is two-stage aggregation?** Deduplicate by business key and sender first, then count at the original business grain. **Why salt only the hot keys?** It spreads oversized groups across tasks without adding shuffle overhead to normal keys. **Why use deterministic eight-way salting?** Hashing `sender_id` keeps each sender in one bucket; eight buckets gave these hot keys more parallelism. ### SQL example — Two-stage aggregation An exact distinct count can be reduced in two stages: ```sql WITH unique_senders AS ( SELECT DISTINCT provider, destination_country, currency, sender_id FROM remittance_events ), sender_counts AS ( SELECT provider, destination_country, currency, COUNT(*) AS unique_senders FROM unique_senders GROUP BY provider, destination_country, currency ) SELECT provider, destination_country, currency, unique_senders FROM sender_counts; ``` For the extreme hot keys, I would salt only those keys during the first stage, then combine partial results at the original business grain. For exact distinct counts, each sender must map consistently to one salt bucket. ### 7. One-minute Interview Summary **Spark UI → find skew → HashAggregate OOM → config first: SortAggregate + AQE → still slow → two-stage aggregation → 8-way targeted salting → 75 min to 13 min**

Aggregation + ShuffleMulti-stage distinct processing
Aggregation HashMap per taskHolds grouping keys + aggregation buffers
Many distinct key–sender pairsHigh cardinality increases memory usage
Memory pressure rises
Possible Executor OOMSpill does not prevent every OOM
Spill to diskHashAggregate can fall back to sorting

Conceptual illustration; actual behavior depends on the execution plan and runtime memory conditions.

Recall: Define → explain → give an example → state the trade-off
Q07

Tell me about a Flink production issue you solved.

One example was an **hourly cross-border remittance dashboard** built with **Kafka, Flink, ClickHouse, and Spark SQL**. Flink processed payment events using **Event Time + 1-hour TUMBLE windows**, and the dashboard had a **30-minute freshness SLA**, measured from the end of each window. ### 1. Problem The **10:00–11:00 result was still missing after 11:35**, although the Flink job was still running. ### 2. Troubleshooting I first ruled out common performance issues: **Kafka lag was small, backpressure was LOW, checkpoints were healthy, and the ClickHouse sink had no latency spike**. Then I checked Watermarks by Source subtask. I found that **one Source subtask’s output Watermark was stuck at 10:48**, while the **other active inputs had progressed beyond 11:00**. Because the downstream window operator follows the **minimum Watermark of its active input channels**, the stalled input prevented the window from firing. ### 3. Root Cause **The Source subtask had stopped receiving new events**, but its input was still considered **ACTIVE**. With no new events to advance its Watermark, it stayed at 10:48 and blocked the whole window. ### 4. Fix I configured a **5-minute source idle timeout**. After five minutes without new events, the quiet input was marked **IDLE**, so it no longer participated in the minimum Watermark calculation. The other active inputs had already advanced beyond **11:00**, allowing the window to fire. I did not need to change the business SQL or TUMBLE logic. ### 5. Result & Validation After the fix, the Watermark progressed normally and the **delayed window produced its result**. **Subsequent hourly windows were available within the 30-minute SLA**. I also validated **Kafka lag, backpressure, checkpoints, ClickHouse output, and the final business result**. ### Likely follow-up questions **Why didn't you increase parallelism?** Because **lag and backpressure were already healthy**. This was an Event-Time progress issue, not a processing-capacity issue. **Why could one quiet input block the window?** The quiet Source input’s stalled Watermark held back the **minimum Watermark of the window operator’s active input channels**, preventing the window from firing. **How did the idle timeout fix it?** After five quiet minutes, the quiet input was marked **IDLE** and excluded from the minimum Watermark calculation. The other active inputs had already progressed beyond the window boundary, allowing the window to fire. **What about very late events?** The real-time layer prioritized freshness, while a **T+1 Spark SQL batch calibration job** corrected very late data for final accuracy. ### Interview memory line **SLA miss → rule out lag / backpressure / checkpoint / sink → find Watermark outlier → quiet input still ACTIVE → 5-min idle timeout → Watermark advances → window fires → subsequent windows meet SLA**

Recall: Define → explain → give an example → state the trade-off
Q08

How did you improve data governance and asset management?

I improved data governance by expanding a **DQC-only score into a four-dimensional data-asset framework**. The score covered **standards, data quality, security, and cost**, with daily Spark SQL jobs using **Hive metadata, lineage, security scans, and stale-table checks**. I also introduced **whitelist governance** for approved exceptions. This raised the average score across more than **600 tables from 76 to 86**. ### Governance Framework 1. **Standards — 35%:** naming, comments, dependency rules, ownership, and lineage. 2. **Data Quality — 35%:** timeliness, DQC coverage, row fluctuation, uniqueness / accuracy rules, and alert follow-up. 3. **Security — 15%:** table classification, sensitive-field protection, and owner compliance. 4. **Cost — 15%:** compute and storage efficiency, including stale assets. ### Daily Scoring & Remediation A daily **Spark SQL** job consolidated the control results into **one score per table per day**. We ranked weak assets, assigned owners, tracked remediation, and used a **whitelist only for reviewed and approved exceptions**. The key point is that governance became **measurable and operational** rather than only a DQC checklist.

Data Asset Governance — Overall Strategy
A four-dimensional score turns governance controls into measurable daily asset management.
Standards35%
Data Quality35%
Security15%
Cost15%
Table Naming Standards50%
Comment Standards37.5%
Dependency Standards12.5%
Timeliness Monitoring Coverage20%
DQC Coverage50%
Quality Alert Ticket Operations30%
Table Security Level Setting20%
Sensitive-Field Protection70%
Owner Compliance10%
Compute Cost50%
Storage Cost50%

Standards — 35%

Table Naming · 50%
Non-standard prefix / suffix
Suffix does not match update cycle
Business-domain naming issue
Data-domain naming issue
Comments · 37.5%
Table has no valid comment
Table comment length is unreasonable
Field has no valid comment
Some fields lack comments
Dependencies · 12.5%
Reverse dependency
Raw-layer dependency

Data Quality — 35%

Timeliness · 20%
Task completes after day boundary
Completion exceeds service commitment
DQC Coverage · 50%
Monitoring coverage below standard
Row-fluctuation rule below standard
Uniqueness rule below standard
Accuracy rules insufficient
Alert Tickets · 30%
L1/L2 overdue unresolved alerts
Historical unresolved tickets ≥ 3
Historical unresolved tickets = 2
Historical unresolved tickets = 1
Recall: Define → explain → give an example → state the trade-off
Stage 03 · 20–32 Minutes

Quality & Reliability

ValidateReconcileDetect / DiagnoseRecover / Prevent
Q09

How do you ensure data quality?

I use a practical, layered approach: 1. **Agree on the data contract.** Confirm the business definition, table grain, keys, owner, and freshness expectations. 2. **Validate the data.** Check required fields, valid values, uniqueness, referential integrity, and freshness. 3. **Reconcile results.** Compare source and target counts, key coverage, and key totals by date, site, or status. 4. **Monitor and resolve issues.** Set alerts for business rules, such as checking that country and currency fields use valid three-letter codes. Then investigate affected data, fix the issue, rerun the pipeline, and verify the result. 5. **Improve through governance.** I helped assess more than **600 tables** across standards, quality, security, and cost. The average score rose from **76 to 86**, and table owners addressed the identified gaps.

Recall: Contract → checks → reconcile → remediate → govern
Amounts differ. What do you check?

I check date range, status filters, currency, and cutoff time. Then I compare smaller groups and investigate missing keys, duplicate joins, updates, and late records.

How do you reconcile currencies?

I compare each currency separately, or use an agreed exchange rate and conversion date. I use decimal types for monetary values.

Q10

How do you investigate an unexpected metric drop or incorrect value?

I would work through it step by step: 1. **Clarify the issue.** Confirm the metric, affected period, and reports, then align the definition and filters. 2. **Check the pipeline.** Review source arrival times, the latest successful run, row counts, alerts, and recent changes. 3. **Trace the data layer by layer.** Start with the DM (Gold) output, then check the DWD (Silver) data. If needed, ask the business or technical team to verify the records in the source system. 4. **Fix and verify.** Correct the issue at the responsible layer, rerun the pipeline, and confirm that the output and downstream reports are accurate.

Recall: Clarify → check pipeline → trace DM/DWD/source → fix → verify
Q11

What would you do if a data pipeline missed its SLA?

### Batch / offline pipelines

I would first check the DAG run and upstream arrival times to locate the delay, then inspect Spark task duration, skew, shuffle, and failures.

At **TC**, I helped improve the on-time SLA from 95% to over 99% through dependency cleanup, trigger-based scheduling, proactive monitoring, and alerts. On a critical Spark job, I diagnosed hot-key skew and expensive distinct aggregation; targeted query changes reduced runtime from 75 minutes to 13 minutes and resolved executor OOM.

If the SLA were already missed, I would tell stakeholders what data is delayed and when I will update them, perform a safe rerun or backfill, reconcile source and target counts and business totals before publishing, then document the root cause and permanent fix.

### Real-time pipelines

For Kafka and Flink, I would check consumer lag, event-time watermarks by source, backpressure, checkpoints, and sink latency.

On my hourly remittance dashboard, a quiet Flink source subtask stayed active with a lagging watermark and blocked the window. A five-minute idleness timeout let the watermark advance; the delayed window recovered and subsequent windows met the 30-minute SLA. A T+1 Spark SQL calibration handled very late data.

Recall: Impact → diagnose → recover → prevent
What do you tell business users?

I explain which data is affected, what remains reliable, and when the next update will be provided. I do not promise a recovery time before I have enough evidence.

How did you improve the SLA?

I worked on DAG dependency cleanup, trigger-based scheduling, and monitoring and alerts. These changes helped improve the on-time SLA from 95 percent to over 99 percent.

Stage 04 · 32–45 Minutes

Databricks & IDMC

Bronze: rawSilver: trusted detailGold: business modelsGovern / Orchestrate
Q12

What is your Databricks experience?

My main production experience is with **Spark, Hive, and AWS-based pipelines**.

I am building hands-on familiarity with Databricks. My transferable skills include **Spark processing, SQL, data modeling, and troubleshooting**.

I am focusing on **Delta tables, Unity Catalog, and job orchestration**. I would not describe my experience as extensive Databricks production experience yet.

Recall: Production boundary → transferable skills → learning
What have you built on it?

After completing the exercise, describe the exact tables, deduplication, merge, rerun validation, and history query you performed. Until then, say that the exercise is planned or in progress.

Q13

How would you implement your warehouse on Databricks?

I would preserve the **separation of responsibilities**. Bronze would retain source data. Silver would **standardize** (STAN-der-dyze), **validate** (VAL-uh-dayt), and **deduplicate** (dee-DOO-pli-kayt) details. Gold would contain **business-ready models and metrics**.

I would use **Delta tables** for reliable updates, **Unity Catalog** for governance, and **Jobs** for execution and dependencies. **Parquet** is the underlying file format; Delta adds a **transaction log** that tracks committed table versions and supports consistent updates, `MERGE`, and time travel while the required history and data files are retained.

Delta does not automatically prevent **business-key duplicates** or make a whole multi-table pipeline one transaction, so I would still validate keys and business rules. I would design **validation and replay behaviour** from the start.

Recall: Bronze → Silver → Gold + governance
Does Gold contain only aggregates?

No. Gold can include business-ready fact and dimension models as well as aggregates. Purpose and grain matter more than the layer name.

Q14

How do you apply incremental changes and preserve history?

I reduce the source to one **latest valid row per business key**, then use **MERGE**: update a matched row only when the incoming version is newer, insert new keys, and apply deletes as agreed.

I validate counts and freshness, then confirm the job can be rerun safely.

For history, **table history** records technical snapshots; **SCD Type 2** keeps effective-dated business changes. A table snapshot does not replace SCD2.

Incremental MERGE · prepare, match, apply
Incoming changesnew · changed · deleted
→
Prepare sourcededuplicate by key
choose latest valid version
→
Match target by business keyfor example, order_id
Matched keyUpdate when newer; apply agreed delete rule.
No matching keyInsert the new business record.
Validate counts and freshness · confirm safe reruns
Two kinds of history
Table historyWhich technical table snapshot was committed?
SCD Type 2Which business value was valid at that time?
Recall: Latest key version → MERGE → validate · snapshot history ≠ business history
Several dimension versions match one transaction. What now?

I check validity periods and the data contract. If overlaps are permitted, I need an explicit selection rule. I do not silently pick an arbitrary version.

Q15

What do you know about IDMC?

**IDMC** is Informatica’s cloud data-management platform.

For integration, I understand **connections, mappings, mapping tasks, and taskflows**. A **Secure Agent** provides a runtime for supported tasks and connectivity, depending on deployment.

I haven’t used IDMC in production yet, but **incremental loading, validation, scheduling, and recovery** are familiar engineering requirements.

IDMC and Databricks Lakehouse Reference ArchitectureIllustrative platform architecture; validate connectors, ownership, and deployment details with the implementation team.
Informatica IDMC integrated with a Databricks Delta Lakehouse, showing data integration and quality, Bronze Silver Gold layers, streaming, governance, provisioning, and analytics

In this reference design, IDMC connects data sources and supports integration and quality services around the lakehouse.

Databricks with Delta Lake provides the Bronze, Silver, and Gold data layers; Kafka and stream processing support real-time paths, while cloud data warehouses and analytics tools serve consumers.

I would confirm which connectors, Secure Agent runtimes, governance services, and transformation steps the team actually uses. This diagram is a design reference, not a claim of my production IDMC experience.

Recall: Connection → Mapping → Task → Taskflow
How would you get up to speed?

I would build one source-to-target pipeline, validate its behaviour, and learn the team’s deployment, monitoring, and support standards before taking on more complex flows.

How might IDMC and Databricks work together?

One possible pattern is to use IDMC for source connectivity and ingestion, then Databricks for lakehouse transformations and analytics. I would first confirm the organisation’s existing architecture, ownership boundaries, and operational standards.

Q16

How do Delta Lake and Iceberg manage table operations?

What problems did Delta Lake and Iceberg address?

Before table formats, a common data-lake stack combined **HDFS or S3** storage, a **Hive metastore**, **Parquet** files, and **Spark** compute. I used **Hive, HDFS, and Spark** in my **TC** warehouse. The components work together, but a plain file-based table does not itself provide one shared table-level commit and metadata protocol. This made consistency, metadata planning, row-level changes, schema evolution, and concurrent writes harder to coordinate.

**Delta Lake** and **Apache Iceberg** add table-level metadata and commit management over data files. Parquet can still hold the rows and Spark can still do the compute. The exact features and behavior depend on the engine and catalog.

| **Area** | **Plain Hive and Parquet files** | **What Delta Lake and Iceberg add** |
| --- | --- | --- |
| **Atomic commits and consistent reads** | The files and metastore alone do not provide one shared **atomic table commit protocol**. | Delta commits table versions through its **transaction log**; Iceberg publishes **snapshots** through **atomic metadata commits**. |
| **Metadata planning** | Planning can require **expensive listings** across many partitions and files. | Delta transaction-log metadata and Iceberg **manifests** track table files so engines can plan reads without relying on a **full directory listing**. |
| **Updates, deletes, and CDC** | Often requires **custom file rewrites**, overwrite logic, and coordination. | Both support **table-level changes** through compatible engines; **CDC ordering, deduplication, and business rules** still need to be designed. |
| **Schema evolution** | Writers, readers, files, and metastore definitions need **coordinated changes**. | Table metadata tracks **schema changes**; supported evolution rules still depend on the format, engine, and enabled features. |
| **Concurrent writes** | Independent file writers can **race** without a shared commit protocol. | Writers validate commits **optimistically**; **compatible changes** can commit, while **conflicts** may need a retry or fail. |

1 · Architecture & relationships

Spark SQL / DataFrames · the compute layerSpark executes queries and transformations above either table format.
Delta LakeTransaction log → committed versions
ORAlternative table formats, not a conversion path
Apache IcebergTable metadata → snapshots → manifests

Both reference physical data files in storage. Compatible engines interpret each format’s metadata; Delta does not need to flow into Iceberg.

Table internals · how each format identifies its data files

Delta Lake · transaction log and data files
Delta Lake versions record files added and removed in the transaction log; each version resolves to its active Parquet files

Each Delta version records file additions and removals. Readers use the transaction log to find the active Parquet files for that version.

Source diagram: Delta Lake time travel
Apache Iceberg · snapshots and manifests
Iceberg snapshots point to manifest lists, which reference manifests and the data files in each table snapshot

An Iceberg snapshot references a manifest list, which points to manifests that track the data files in that snapshot.

Source diagram: Amazon EMR, How Iceberg works

Shared idea: Files hold the rows; committed metadata defines the table snapshot readers see.

Five operating principles: Delta Lake and Iceberg

1 · ACID commit

Write files → atomically commit metadata → readers see the new snapshot

2 · Concurrent writes

Both read Delta Version 10 → Job A commits Version 11 → Job B validates against Version 11 → compatible: Version 12 · conflict: retry or fail

3 · Time travel

Keep snapshot metadata and referenced files → query old version · clean required files → old version unavailable

4 · File maintenance

Rewrite / compact for read speed → expire history and clean eligible files for storage

5 · Query layout

Filter pattern → prune partitions or skip files → scan less data

TopicDelta LakeApache IcebergWhat to remember
CommitTransaction logSnapshots, manifests, catalog metadataOnly committed metadata defines the visible table.
Concurrent writesCommit validation; conflicts depend on operation and runtimeSnapshot commit validation; behavior depends on engine and catalogRetry safely; transaction safety is not business deduplication.
HistoryTime travel needs retained log and data filesTime travel needs retained snapshots and referenced filesNeither replaces an independent backup.
CleanupOPTIMIZE rewrites; VACUUM removes eligible old filesRewrite files; expire snapshots; remove orphan filesPerformance rewrite and storage cleanup are separate jobs.
LayoutEvaluate liquid clustering on DatabricksHidden partition transforms and sorting, as supportedChoose from query patterns; measure scan and maintenance cost.

Both formats store data in files and use **committed metadata** to define the snapshot readers see. **Delta Lake** uses a transaction log; **Iceberg** organizes snapshots through manifests. I would distinguish **table guarantees from business validation**, retain **independent backups**, and choose **maintenance and layout** for the workload.

Five follow-up questions

These compare Delta Lake and Apache Iceberg table-format behavior; they are not Delta-only answers.

Recall: Metadata selects files → protect history → maintain files → optimize query layout
Stage 05 · 45–52 Minutes

SQL & Delivery

Latest versionValid statusAggregateTest / Release
Q17

How would you query the latest successful amount per user per day?

I first select the **latest version of each transaction**. Then I keep **successful transactions** and aggregate by **user and payment date**.

I filter status **after deduplication** because a newer record may cancel an earlier successful transaction.

Recall: Latest → status → sum

Assumptions: complete row versions; unique business key = transaction_id; updated_at + event_seq determine order; payment_date is a business date. Validate null keys and ambiguous ordering separately.

IDUserDateAmountStatusUpdatedSeq
T1U1Nov 1100SUCCESS10:001
T1U1Nov 1120SUCCESS11:002
T2U1Nov 150SUCCESS10:001
T2U1Nov 150CANCELLED12:002
T3U2Nov 130SUCCESS09:001

Trace: T1 → 120; T2 → cancelled, exclude; T3 → 30.

UserPayment dateDaily amount
U12026-11-01120
U22026-11-0130
Show Spark SQL solution
WITH ranked AS (
    SELECT
        transaction_id,
        user_id,
        payment_date,
        amount,
        status,
        ROW_NUMBER() OVER (
            PARTITION BY transaction_id
            ORDER BY updated_at DESC, event_seq DESC
        ) AS rn
    FROM payment_updates
)
SELECT
    user_id,
    payment_date,
    SUM(amount) AS daily_amount
FROM ranked
WHERE rn = 1
  AND status = 'SUCCESS'
GROUP BY
    user_id,
    payment_date;
What would you test?

Duplicates, corrected amounts, later cancellations, multiple transactions per user, missing keys, and ambiguous version ordering.

Q18

How do you test and deploy a change?

I test **normal cases and edge cases**, then validate the **schema, uniqueness, and business totals**.

In a test environment, I check the complete flow, including **reruns and recovery** where relevant.

Before release, I review **downstream impact** and prepare a **rollback or recovery plan**. After deployment, I **monitor the first runs and reconcile the output**.

Recall: Test → review → release → monitor
Which CI/CD tools have you used?

State your actual tools and responsibilities. If a platform team owned the infrastructure, explain how you participated in reviews, testing, and controlled releases.

Q19

How have you used CI/CD or DataOps in data engineering?

I treat a data pipeline change like a software change: **review the code, test transformations and data rules, and validate the output** before release.

I follow **controlled promotion between environments**, keep configuration separate, and include **reruns and recovery** in the release plan.

After deployment, I **monitor the first runs and reconcile key results**. I would describe the specific CI/CD tools I have used and be clear about which parts were owned by the platform team.

Recall: Review → test → promote → monitor
Stage 06 · 52–58 Minutes

Collaboration & Governance

ClarifyTrace evidenceAgree scopeCommunicate

1 · Delivery & Governance

Q20

A stakeholder says the dashboard is wrong. What do you do?

I ask for a specific example and expected result. Then I confirm the metric definition, date range, timezone, filters, and freshness.

I trace the result from the report through the mart and details to the source.

I explain whether it is a data error, a definition difference, or a timing issue, and validate the resolution with the stakeholder.

Recall: Example → definition → trace → agree
Two teams use different definitions. What now?

I make the differences explicit and involve the metric owner. We agree on one standard metric, or use clearly named metrics for different purposes.

Q21

How do you handle an unrealistic deadline?

I clarify the decision the request supports and what is essential for the first delivery.

I explain dependencies and risks, then propose a smaller validated output followed by the remaining scope.

I keep the stakeholder updated and clearly state any limitations.

Recall: Need → scope → phased delivery
What if priorities conflict?

I make the business impact and trade-offs visible and ask the appropriate owner to align priorities. I avoid silently delaying one team’s critical work.

Q22

How would you approach your first few months?

First, I would understand the source systems, business definitions, platform standards, and critical SLAs.

Then I would own a manageable pipeline, including its quality checks and support documentation.

As I learn the platform, I would agree on improvements in reliability, reuse, or performance with the team.

Recall: Understand → own → improve
How do you learn an unfamiliar business?

I work through real examples with business users and document definitions, keys, and exceptions. I validate my understanding using sample data before implementing the logic.

Q23

How do you protect sensitive data and manage access?

I first classify the data and understand the approved access and retention requirements.

I follow least-privilege access, use approved roles and secure connections, and avoid exposing sensitive fields in logs or test data.

I document access and changes, and work with security or governance owners when requirements are unclear. I would follow the organisation’s policies and the platform controls in place.

Recall: Classify → least privilege → protect → audit
Q24

How do you handle multiple source systems and complex integrations?

I document each source, its keys, change behaviour, delivery pattern, and data owner before designing ingestion.

I standardize data in a reusable layer, make incremental loads restartable, and reconcile source and target counts and business totals.

For vendor or platform dependencies, I agree on contracts, ownership, monitoring, and escalation paths so operational issues can be traced quickly.

Recall: Inventory → contract → standardize → reconcile
Q25

How do you contribute to code reviews and technical standards?

I review whether the logic matches the agreed grain and business definition, and check correctness, performance, security, and failure handling.

I give specific, respectful feedback and explain the risk behind a suggested change. I also make sure tests and operational notes are clear.

When I am unsure about a platform standard, I check with the owner and apply the agreed pattern consistently.

Recall: Correctness → safety → operability → shared standards

2 · Behavioral & Collaboration

Q&A

Collaboration, Culture & Motivation

**Q1: Do you prefer working independently or in a team?**

Comfortable with both. I can work independently, but I also value teamwork for complex problems and cross-functional alignment.

**Q2: Do you have cross-functional experience?**

Work with **PM/Product** on metrics, **front-end/back-end engineers** on data details, and **data platform teams** on governance.

**Q3: How do you handle conflict at work?**

Stay calm → focus on facts → listen first → clarify misunderstandings → find a practical solution.

**Q4: How do you handle feedback?**

Welcome feedback → reflect → adjust → follow up with improvements.

**Q5: What's your ideal company culture?**

**Transparency, collaboration, continuous learning**, and people supporting each other's growth.

**Q6: What motivates you at work?**

Solving meaningful problems, seeing real business impact, and continuously learning new things.
Q&A

Strengths & Development

**Q7: What's your biggest strength?**

**Reliable and structured**. Deliver accurate work on time and communicate risks early.

**Q8: What's your biggest weakness?**

Sometimes **over-focus on details**; improving by balancing quality and efficiency and asking for feedback earlier. Leadership is also an area I’m continuing to develop.
Q&A

STAR & Experience

**Q9: Tell me about a time you faced a challenge.**

Supported **8 sub-business lines** after colleagues relocated → prioritized by business impact → worked closely with stakeholders → maintained **99%+ SLA**.

**Q10: What's your proudest achievement?**

Cross-border payment data warehouse → improved **data asset score from 76 to 86** → reporting supported business process optimization and conversion improvement.

**Q11: Tell me about a mistake you made.**

Made a schema change without fully checking downstream impact → report error → learned to validate downstream dependencies and communicate before deployment.
Stage 07 · 58–60 Minutes

Your Questions

PlatformChallengesFirst 3 months

1 · Role & Metrics

Choose the two questions that best fit the conversation.

Q&A

Role & Delivery Workflow

Yes. Could you walk me through the workflow for this role, **from a new requirement to final delivery**?

Q&A

Shared Metrics & Validation

How does the team define and validate shared metrics across **Product and Analytics**?

2 · Platform & Expectations

Other questions to choose from

How do Databricks and IDMC divide responsibilities in your current platform?

What are the main data quality or reliability challenges the team is working on?

What would you expect this person to deliver in the first three months?

Closing statement

Thank you for explaining the role. The responsibilities are closely related to my experience in data warehousing, governance, and production reliability. I’m very interested in the opportunity.

When you need a moment

Could you please repeat the last part?

Do you mean the processing logic or the scheduling process?

Let me explain it in three steps.

Let me use an example from my previous project.

Technical Deep Dives

Use these focused references when you want to go deeper than the interview answers.

End-to-end warehouse case: Open ToC Remittance for a source-to-report architecture story you can explain from your real warehouse experience.

Use these pages for follow-up depth. In the interview, lead with your own production examples; describe Databricks and IDMC patterns as design knowledge unless you have personally used them in production.

Final self-check

Supplemental interview track

Mu

Micron · Staff Specialist, EHSS Data

This tab covers the Micron-specific preparation that is not already in the main interview guide. The priorities are inferred from the job description, not confirmed interview questions.

Positioning: Connect your data engineering background to EHSS by showing how you clarify domain definitions, document mappings, and deliver traceable data products with subject-matter experts.

Role-specific data flow

EHSS sources
Incident · Safety · Environment
Source mapping
Definitions · Units · Rules
Trusted dataset
Validation · Reconciliation
Governed data product
Metrics · Lineage
EHSS decisions
Reporting · Analytics

Illustrative interpretation of the role description, not a representation of Micron’s internal architecture.

Micron-specific practice questions

01 · How would you map EHSS source data into a trusted dataset?

I would start with the EHSS owner to define the business meaning and grain of each record. For every target field, I would document the source field, transformation, unit, allowed values, null handling, and ownership.

I would review sample records and exceptions with the domain expert, then use the approved mapping as the basis for implementation, validation, and lineage.

02 · How would you define a safety incident metric consistently across sites?

I would first confirm the incident definition, inclusion rules, reporting period, and the population or exposure denominator with EHSS. I would also clarify how reopened, recordable, near-miss, and corrected incidents are treated.

Then I would standardize site and incident classifications, preserve the source values for traceability, and validate the calculated metric against examples approved by the metric owner.

03 · How would you reconcile EHSS data when site systems use different definitions?

I would not force unlike values into one category without agreement. I would profile each source, document its local codes and definitions, and work with EHSS owners to establish an approved global mapping with explicit unknown and unmapped cases.

I would report reconciliation results by site and category, resolve material differences with owners, and retain both the original source value and the mapped value for auditability.

04 · You are new to EHSS. How would you learn the domain before designing its data?

I would shadow the people who create, review, and report EHSS records, then walk through real examples from entry to final KPI. I would document terms, decision rules, exceptions, and ownership, and play them back to the subject-matter experts.

I would start with a small, high-value dataset and validate its definitions and outputs with users before applying the same standards to more sites or domains.

EHSS vocabulary to clarify with the domain owner

DomainPossible dataDefinition to confirm
EnvironmentEnergy, water, waste, emissionsUnit, site boundary, period, and calculation method
Health & SafetyIncidents, inspections, corrective actionsIncident categories, reportable status, and key dates
SustainabilityCarbon and resource indicatorsOrganizational boundary, emission factors, and reporting basis

Questions for the Micron interviewers

  1. Which EHSS domains and source systems are the first priorities for this role?
  2. How are global metric definitions agreed when sites have different local processes or classifications?
  3. How does EHSS partner with enterprise data and IT teams to own mappings, data quality, and lineage?

Focus for this tab: EHSS definitions · site-to-global mappings · incident and sustainability metrics · reconciliation across sites · domain-owner collaboration.