The README spells out the known issues upfront which sounds helpful but also means you have no excuse for missing them.
Start by clarifying the business output and data quality issues, then outline a pipeline: parse each source with validation, merge using a defined key and conflict resolution, and aggregate with error handling. Emphasize trade-offs between correctness, performance, and simplicity, and discuss how you'd test with messy data.
Pro tip: Proactively mention that you'd log and quarantine bad records rather than silently dropping them, and that you'd make the merge logic idempotent for retries—this shows production maturity beyond just solving the algorithm.
Ask about the expected output schema, key fields, and how to handle missing/corrupted/orphaned data. Confirm assumptions about source formats and update frequency.
Define per-source parsers that validate records against a schema, flag anomalies, and normalize fields. Decide whether to drop, fix, or quarantine bad records.
Choose a join key and conflict resolution rules (e.g., source priority, latest timestamp). Handle orphans and duplicates explicitly, and consider memory vs. streaming trade-offs.
Aggregate merged data into the summary dictionary, applying business rules (sums, counts, averages). Ensure the output matches the specified schema exactly.
Write unit tests with synthetic messy data covering missing fields, corruption, orphans, and schema mismatches. Discuss monitoring and logging for production.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.