went through the McKinsey data engineer interview process last month for a role within their analytics delivery team. going to share the specifics because i couldn't find much when i was prepping.
four rounds total: recruiter screen (30 min, career history, basic logistics) technical screen with an engineer (60 min) virtual onsite: two technical rounds + one PEI round team fit call with the hiring manager
what showed up technically
SQL was heavier than i expected. not just basic stuff. i got: a multi-join aggregation query, a question about query optimization (indexes, when NOT to use them), and one where i had to spot a subtle bug in someone else's SQL. be comfortable explaining query plans at a high level.
pipeline architecture questions were more design-oriented than coding. they described a scenario: 'client has 50 sources, batch and streaming, inconsistent schemas, data going into a warehouse used by analysts and ML teams.' they wanted me to whiteboard the architecture: ingestion layer, transformation layer, storage, monitoring, schema evolution strategy. nothing exotic, but you need to actually know why you'd pick dbt over something else, what you do when sources send malformed data, how you handle late-arriving records.
Python showed up briefly, one question on how i'd test a transformation function. they weren't looking for full TDD religion, just that i think about correctness.
what i didn't expect
half the conversation was business context. they kept anchoring every technical question in 'a client is doing X, the analysts need Y.' so you need to connect your technical choices to outcomes non-technical people care about. that was more McKinsey-specific than any coding shop i've interviewed at.
also the PEI for a DE role was the same format as what DS/PM folks describe. pick your stories early, know the numbers, expect drilling.
the pace longer overall than pure tech companies. recruiter was responsive but there were gaps of a week between rounds. total was about 6 weeks start to offer.