Skip to content
RED SAGSkills
hardData Engineer interview question

A metric definition changed and you must backfill two years of a large fact table while the daily pipeline keeps running. How do you do it safely?

What the interviewer wants to hear

  • Make the job parameterised by date and idempotent per partition
  • Build into a separate table or version and validate before swapping
  • Run in controlled batches with concurrency limits to protect cost and sources
  • Avoid conflicts with the live daily job, then switch atomically
  • Reconcile results and communicate the changed history to users
  • Keep a rollback path such as time travel or the old table

Model answer

First I make sure the transformation takes a date range as a parameter and overwrites whole partitions, so any chunk can be rerun safely. Rather than rewriting the live table in place, I build the new history into a shadow table, or a new version of the model, so dashboards keep working during the backfill. I run it in batches, for example a month at a time, with an Airflow backfill or a dedicated job, limiting concurrency so I do not overload source systems or blow the compute budget. Meanwhile the daily job writes to both tables, or I simply finish by reprocessing the final few days. Before switching, I compare old and new totals per month and explain the expected differences. Then I swap the tables atomically with a rename or view change, keep the old version for rollback, and tell analysts that history changed and why.

Can you answer it under time pressure?

Take a timed hard round and get scored on every answer.

Start mock interview

More hard Data Engineer questions