刚结束 McKinsey frontend engineer 的面试流程,是那种一半「完全在意料之中」,一半「哈?这也会问?」的体验。
背景
这个岗位是 frontend engineer,在一个团队里做 McKinsey 咨询交付项目用的内部 analytics 工具。所以比你想象中的咨询公司更偏产品。React 技术栈,TypeScript,还有一些数据可视化。
技术面
两轮技术面。第一轮是 shared editor 的 live coding,让我从零做一个小组件:可排序的数据表,带筛选。纯 React,不用外部库。他们关注点是:组件结构、状态管理、边界情况(空状态、加载、报错)。我用 functional components 和 hooks,没被挑刺。他们也让我解释如果用库的话我会怎么权衡。
第二轮更偏架构。怎么管理 client state vs server state?一个 dashboard 要渲染 10k 行时怎么考虑性能?什么时候该用 virtual list?这轮不写代码,主要是讲方案。懂 React Query、SWR、Zustand、Redux 的区别,以及各自适用场景,会很有用。
非技术部分
这里是 McKinsey 跟产品公司的不同。他们在不同轮次里,反复问了一个版本的「讲讲你如何把一个复杂的技术决策解释给非技术 stakeholder」。咨询语境下工程师有时要给客户做展示,他们想确认你能沟通。他们还问了我一次我如何 push back 一个设计方向,PEI 格式。
我的 loop 里没有 case 环节,这点挺意外的,因为我看别人分享很多都有。可能跟岗位有关。
整体感受
技术门槛像产品公司那种扎实的 mid-level SWE 面试,可能纯算法稍低一点,但架构 + 沟通要求更高。如果你做前端、能聊清 trade-offs、把推理讲明白,问题不大。但咨询公司那种「对客户可展示的沟通能力」要求是真实存在的。