我在做完 Snowflake 的 virtual onsite 第二天早上写这篇。趁细节还没忘,先来一段意识流。
背景:senior SWE candidate,10 YOE,之前做 embedded systems / infra。投是因为朋友在那儿,而且他们做 distributed query engine 的工作我确实很感兴趣。我不是传统 FAANG pipeline 那种人。
我这次的结构(不同 team 可能不一样):
五轮分两次做。一个上午三轮,中间休息,接着第二天下午两轮。Zoom 线上,Coderpad 写代码。
第 1 轮:Coding - data structures Heap 题。更具体说,是在流式数据 feed 里在一些约束下找第 K 大元素。经典题,但面试官中途加了个 twist。我做出来了,但比我希望的用时更久。
第 2 轮:Coding - 偏 systems 的味道 设计并实现一个简化版 query planner。不是完整 system design,也不是纯 LeetCode。介于两者之间:给一个 query AST,在一套简单规则下实现执行顺序。这题有种 Snowflake 的味道,是我没想到的。其实还挺有意思。
第 3 轮:System design 为一个 query engine 设计 multi-tenant 的 caching layer。关于他们在 L5+ 想看什么,参考我之前的笔记。
第 4 轮:Behavioral 看另一个 behavioral 题的帖子。我这边几乎完全对上。
第 5 轮:Hiring manager 更多聊团队 roadmap 和我做 distributed systems 的经历。技术深度偏轻,更像看 fit,看我是否能在他们的 eng 文化里做得好。他们问我在 distributed systems 里觉得最挑战的是什么,然后基于我的回答追问了 15 分钟。
整体感觉: 面试官都很投入,问题也很具体,没有人看起来无聊。coding 题需要真正动脑,不是套模板就能过。尤其是 query-planner 那题,可能是 Snowflake 特有的,至少别的地方很少见。
预计一周内会有结果。如果你想问当天的体验细节,下面留言。