The README lays out the known issues which sounds helpful until you realize you have to handle all of them and comment on each decision.
Start by clarifying the business question and the expected output schema, then explicitly state your assumptions about data quality and join semantics. Walk through a layered approach: ingest and normalize each source, reconcile schema inconsistencies, handle missing records and orphaned keys, then join and aggregate into the summary dictionary. Emphasize trade-offs between correctness, performance, and simplicity, and mention how you would validate the result.
Pro tip: Proactively call out data quality issues and propose a data quality report alongside the summary—this shows you think about production readiness and helps stakeholders trust the output. Also, mention that you would log or flag orphaned records rather than silently dropping them, which is often a key differentiator in interviews.
Ask about the exact business question, expected output format, and tolerance for missing data. State assumptions about join keys, schema mappings, and what constitutes a valid record.
Map fields from both sources to a common schema, handling naming differences, type mismatches, and missing columns. Decide on default values or null handling for missing fields.
Identify and decide how to treat missing records and orphaned foreign keys—whether to drop, impute, or flag them. Consider using outer joins to preserve data and detect anomalies.
Perform the join using the appropriate keys, then aggregate the data to answer the business question. Choose between inner, left, or full outer join based on the desired semantics.
Check for unexpected row counts, nulls, or duplicates. Produce the summary dictionary and optionally include a data quality report with counts of dropped or orphaned records.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.