我在 2026 年初走完了 Notion 的 coding 轮,申请的是 mid-level 的 SWE 岗。这里说下技术筛选实际长什么样。
筛选阶段。没有传统的 LeetCode OA 链接。至少在我这里,第一个技术关是 CodeSignal 或类似的限时异步测评。两题,总共 70 分钟。难度感觉是 LeetCode medium,可能有一题 medium-hard。常规的 array/string 操作,再加一道 graph traversal。没有什么特别怪的。
过了之后,会进入一轮跟工程师的 live coding。真正有意思的是这一段。
live coding 轮。60 分钟,pair-programming 风格,共享编辑器(他们对语言不挑)。题目很实用,不是抽象题。大概是这种感觉:解析一种结构化文档格式并提取特定元素。对一个做文档工具的公司来说很贴切。
他们明显在看你怎么推理,而不只是最终答对没答对。面试官会全程提问,不太像给提示,更像「what are you optimizing for here」(你在这里优化的目标是什么)或「how would this behave if the input is malformed.」(如果输入是坏的会怎样)。edge case 处理非常重要。
难度实话说。如果你一直在猛刷 LeetCode,你可能会觉得比预期简单。但我也见过有人在 Notion 的面试里卡住,因为这些题没那么套路化。没有那种「这题是 sliding window」的捷径。你得真的理解 domain。
我会怎么准备。他们产品有 block/document 结构,所以树和递归值得复习。字符串解析。图遍历基础。就算是 mid-level 也别跳过 system design,我其中一轮最后还塞了个小 design 问题。
live 轮的时间管理比我预期紧。我在第一部分优化上花太久了,其实先有个可用解就够。