上个月 onsite 之后被拒了。感觉不太好,但趁还新鲜写下来,因为我做的一些选择我绝对会改。
我经历的轮次:两轮 coding,一轮 system design,一轮 JEDI(behavioral)。目标是 E5 SWE。
Coding:我觉得这两轮过了。两道题都推进得还行,讲了 tradeoffs,也写出了能跑的解法,还留了时间做 follow-up。hard-medium 组合也还能扛。
System design:我觉得我就是在这轮翻的。题是设计一个大规模的通知投递系统。我一上来就钻进数据库 schema 和存储层,可能花了 20 分钟。等我讲到真正的投递队列、fanout 逻辑和故障处理时,时间已经不够了。面试官其实在很委婉地把我往 rate limiting,以及 push vs pull 投递取舍上带,但我一直强行拉回 schema。
我应该怎么做:5 分钟把端到端先画出来,然后问面试官想让我在哪部分更深入。这才是 meta 面试官真正想要的。他们在看你能不能先看到全局,再 zoom in。
JEDI(behavioral):我当时觉得挺好,但现在开始怀疑。我用了同一个项目故事讲了两次(角度不同,但底层是同一个故事)。可能应该分散到不同经历上。meta 的 JEDI 轮想看覆盖面。「tell me about a time you had conflict with a coworker(讲讲你和同事发生冲突的一次经历)」和「tell me about a time you pushed back on a direction(讲讲你曾经对某个方向提出反对意见的一次经历)」最好是不同故事。
我会改的: System design:先 breadth-first,然后按面试官指的地方深挖 JEDI:准备 6+ 个不同经历故事,不是 3 或 4 个 准备阶段问 recruiter 我这场 panel 具体有哪些轮次,这样知道该怎么分配精力
我打算等 6 个月再 re-apply。我觉得我能过这套 loop,只是需要换一种准备方式。