一句话总结
Notion的薪资体系不是对标Google或Meta的“现金为王”,而是用高比例RSU赌你相信公司未来翻倍。职级不是按年资排列,而是按“你能独立定义并交付一个完整的产品模块”来裁决。
面试不是在考算法,而是在考你对“工具如何改变人类协作”这件事有没有直觉判断——答错一个系统设计题可能不会被挂,但答错“为什么Notion选择block-based架构”你会直接被送走。
适合谁看
你是正在准备跳槽的软件工程师,目标不是大厂,而是高增长、高估值、高风险的“产品驱动型”公司。你不是为了养老,而是为了拿期权赌一个10倍回报。你至少3年经验,能独立主导一个feature从0到1,不是只写CRUD的junior。
你愿意接受Notion的面试风格——不是刷题机器,而是“你如何看待用户、数据和产品三者关系”的深度拷问。如果你只想拿现金、不想等4年vesting、或者对“为什么Notion不做文件夹”这个问题没有自己的答案,请直接关闭这篇文章。
Notion的薪资结构到底是什么样的?不是“总包”,而是“总赌注”
大多数工程师面试Notion时犯的第一个错误:拿Google的L4/E4的TC(总包)去比Notion的offer。这不是A vs B,而是两种完全不同的博弈逻辑。
Google的TC里,RSU是稳定货币——每年refresh稳定,股价波动小,你可以把它当现金算。Notion的RSU是高度集中的赌注:第一,Notion不是上市公司,RSU估值依赖409A估值和二级市场交易,流动性差;
第二,Notion的RSU刷新非常不频繁——很多员工入职后两年内拿不到额外grant。这意味着你的总包里,base和bonus是确定的,RSU是“等IPO”的期权。
具体数字(2024年数据,基于Blind、Levels.fyi和内部员工匿名分享):
- L3(初级工程师,0-3年经验):base $130K-$160K,RSU $60K-$80K(4年vesting,1年cliff),无sign-on bonus或极少($10K-$20K)。总包$190K-$240K。
- L4(中级工程师,3-6年经验):base $160K-$200K,RSU $100K-$150K,sign-on $20K-$50K。总包$280K-$350K。
- L5(高级工程师,6-10年经验):base $200K-$240K,RSU $200K-$300K,sign-on $50K-$80K。总包$450K-$620K。
- L6(Staff工程师,10+年经验):base $240K-$280K,RSU $400K-$600K,sign-on $80K-$120K。总包$720K-$1M。
关键判断:Notion的L5总包$450K-$620K看上去比Google L5的$400K-$550K略高,但注意——Google的L5 RSU在入职后每12-18个月有refresh,而Notion的L5很可能入职后两年内只有初始grant。如果你在Notion待满4年,总包取决于IPO股价;
如果提前离职,你带走的只有base和已vest的RSU,而base部分比Google低10%-15%。
不是“总包高就能去”,而是“你愿意为Notion的IPO赌注支付多少机会成本”。如果你认为Notion在2026年前IPO且股价翻3倍,那现在去是划算的——L5的$600K RSU如果翻到$1.8M,总包接近$2.5M。如果IPO延迟或股价持平,你实际上比同级别Google工程师少赚了$200K-$300K。
> 📖 延伸阅读:Notion软件工程师面试怎么准备
职级体系如何运作?不是“层级”,而是“决策权边界”
Notion的职级体系不是传统意义上的L3/L4/L5——它不是按年资、代码行数或管理人数来定义,而是按“你能独立拍板的产品边界”来裁决。
一个真实的debrief会议场景:2023年,hiring committee讨论一个L5候选人。候选人A有10年经验,前亚马逊Senior SDE,系统设计完美,但面试官在“Product Sense”轮里问:“Notion的database view为什么支持table和board但不支持calendar?”候选人A回答:“因为calendar view的engineering complexity太高,优先级低。
”正确回答不是这个,而是:“因为Notion的database本质是relational model,calendar view需要时间维度上的聚合,这跟block-based的schema冲突。Notion选择不做calendar view,是因为做calendar意味着要重新设计block的time dimension,而这个trade-off在2022年时被product team明确否决了——他们判断用户更想要formula和relation,而不是日历。”
候选人A被挂。不是因为答案错,而是因为他在“替团队解释技术限制”,而不是“替用户判断产品决策”。Notion的L5不是写代码的,是“产品-工程-设计的三角决策者”。你需要证明:你能独立判断一个feature是“必须做”还是“永远不做”,而且这个判断背后有对用户行为、数据、和公司愿景的深刻理解。
职级判断逻辑:
- L3:你能独立完成一个用户故事(user story),但需要PM或tech lead给定边界。
- L4:你能独立定义并交付一个中等规模的feature(比如“新增一个block type”),不需要外部指导,但需要团队align。
- L5:你能独立判断“这个feature该不该做”,并且能推动跨团队(engineering + design + data)达成共识。你不是在执行路线图,你在创建路线图。
- L6:你能定义整个产品领域(比如“Notion的AI策略”),并且能影响公司层面的技术方向。你不是在写代码,你在写公司的技术宪法。
不是“职级越高,写代码越少”,而是“职级越高,你的代码决策影响的范围越大”。Notion的L5工程师每天仍然写代码,只是他们写的代码是“决定其他10个人怎么写的”。
面试流程每轮到底考什么?不是“算法+系统设计”,而是“产品直觉+工程判断”
Notion的面试流程通常是4-5轮,加上recruiter screen和hiring manager screen,总时间约4-6周。每轮45分钟,没有白板(全部在Notion doc里协作)。
第一轮:Recruiter Screen(30分钟)
不是“聊简历”,而是“判断你知不知道自己在说什么”。recruiter会问:“你用过Notion吗?你最喜欢哪个feature?如果让你改一个地方,你会改什么?
”如果你回答“我用过,很好用”,直接挂。你必须给出具体判断:比如“Notion的AI功能很弱,它只是套了个GPT wrapper,没有跟database的relation schema深度集成。如果是我,我会让AI能自动生成formula和rollup,而不是只写几个bullet point。”——这个回答证明你理解Notion的产品逻辑,而不是在写产品review。
第二轮:Hiring Manager Screen(60分钟)
不是“技术面”,而是“文化+决策面”。hiring manager会问:“你之前做过的项目里,哪个是你最自豪的?但请告诉我,你在那里面犯了什么错,以及你怎么发现的。”不是“你做了什么”,而是“你怎么判断自己错了”。一个真实案例:候选人B说他重构了团队的数据pipeline,减少了50%延迟。hiring manager追问:“你怎么知道减少50%是好事?”候选人B说“因为查询更快”。hiring manager打断:“更快是结果,不是判断。
你需要告诉我,你用什么指标衡量‘更快’对用户的影响?是页面加载时间?还是用户留存?还是功能使用率?如果你只是优化了一个没人用的查询,那你浪费了一个月。”候选人B被挂。正确回答应该是:“我意识到pipeline延迟不是用户痛点,真正痛点是database view的加载时间。我判断错了,应该先做用户行为分析,而不是直接优化代码。”
第三轮:系统设计(60分钟)
不是“设计Twitter”,而是“设计一个Notion的feature”。比如:“设计一个Notion的calendar view。”考察点不是数据库sharding或缓存策略,而是“你如何平衡block-based schema和time dimension”。你必须画出block的time属性如何存储、如何查询、如何跟relation schema协同。
如果只聊技术细节(“用Redis缓存,用PostgreSQL分片”),你会挂。正确做法:先定义“用户用calendar view想解决什么问题”——比如“我想知道下周三的deadline”——然后说“因为Notion的block不是时间序列,所以calendar view不能简单用timestamp排序,需要设计一个‘time block’概念,让用户能把一个block关联到时间点,然后系统在后台做relational join。”这不是算法题,是产品-工程决策题。
第四轮:Product Sense(60分钟)
这是Notion独有的“死亡轮”。面试官会给你一个场景,比如:“我们考虑做一个‘Notion CRM’功能,但市场上有Salesforce和HubSpot。你判断要不要做?”不是“怎么做”,而是“要不要做”。
你必须给出一个可证伪的假设,比如:“Notion不应该做full CRM,因为CRM的核心是workflow automation,而Notion的强项是flexible database。但我们可以做‘轻量级联系人管理’,只支持table view和relation,不支持email integration。判断标准:如果6个月内,有10%的团队用户主动创建联系人database,我们就继续,否则砍掉。”——这个回答证明你有“做判断”的能力,而不是“分析市场”的能力。
第五轮:Coding(45分钟)
不是LeetCode hard,而是“用代码实现一个Notion block”。比如:“实现一个to-do list block,支持添加、删除、切换状态。”考察点:代码风格、测试意识、对block-based数据结构的理解。
不是“写出最优解”,而是“写出可维护、可扩展的代码”。如果写一个巨大的if-else switch-case,你会挂。正确做法:用命令模式(command pattern)封装每个操作,用immutable state管理block列表,写一个简单的单元测试。
> 📖 延伸阅读:Notion SDE编程面试LeetCode高频题型
如何谈判Notion的offer?不是“要更多现金”,而是“要更多RSU”
大多数工程师谈判时犯的错误:要求base加$20K。Notion不会答应,因为base是Fixed cost,而Notion的CFO严格控制base预算。正确策略:要求RSU增加20%-30%,同时要求“加速vesting”——比如从4年改为3年cliff。
为什么?因为Notion的RSU估值被高估了——409A估值通常比真实市场价低30%-50%。如果你要求RSU增加20%,实际成本对公司来说可能只有10%,但对你来说,如果IPO成功,那是30%的收益。
一个真实案例:2023年,候选人C拿到Notion L5 offer,初始RSU $200K,base $220K。他要求RSU增加到$260K,同时要求第一年vest 25%(正常是1年cliff后vest 25%,然后按月vest)。公司同意了,因为RSU是纸面成本,不占现金。
一年后,Notion二级市场估值上涨40%,他的RSU实际价值变成$364K。如果当时只要求加base,他只能多拿$20K现金,而不是$164K的潜在收益。
不是“谈判是为了更高的TC”,而是“谈判是为了更好的风险回报比”。Notion的offer里,RSU是唯一有杠杆的变量。base是死钱,bonus几乎没有(Notion不提供年度bonus,只有sign-on),所以你的谈判焦点应该是RSU和vesting schedule。
常见错误:三个真实案例
错误1:把Notion当Google面
BAD:候选人D刷了3个月LeetCode,系统设计背了“设计YouTube”,面试时被问到“设计Notion的database”,他直接画了分布式数据库架构。面试官问:“你怎么处理block之间的relation?”他答:“用foreign key。
”面试官追问:“那如果用户把一个block从page A移到page B,foreign key怎么更新?”他答:“用trigger。”——直接挂。
GOOD:候选人E在面试前花了2周研究Notion的block schema,知道block用UUID标识,relation用blockid + pageid组合,移动block本质是更新pageid。他答:“因为block是immutable的,移动只是更新pageid字段,不需要trigger,只需要一个简单的update语句。
但要注意,如果block有sub-block,需要递归更新所有子block的page_id。”——通过。
结论:Notion面试不考通用系统设计,考你对Notion具体架构的理解。
错误2:产品Sense轮里当分析师
BAD:候选人F被问“要不要做Notion CRM”,他做了30页PPT分析市场:CRM市场规模$500亿,Notion有X%机会,竞争格局是Y。面试官打断:“所以你的判断是?”他答:“我觉得可以做。”面试官追问:“判断标准是什么?”他答:“用户反馈不错。”——挂。
GOOD:候选人G回答:“不做。因为Notion的用户行为数据显示,只有5%的团队使用database view,而CRM需要workflow automation,这跟Notion的‘open-ended’ product philosophy冲突。判断标准:如果我们在6个月内上线一个轻量版,用户active使用率低于10%,就砍掉。
我建议先做一个小实验:在现有database view上增加‘lead status’字段,看用户使用率是否超过15%。”——通过。
结论:不是分析,是判断。判断必须有可证伪的假设和明确的截止点。
错误3:谈判时只盯着base
BAD:候选人H拿到L4 offer后,跟recruiter说:“我想base加$15K。”recruiter回复:“我们base range已经到顶了。”他妥协了。入职后发现同事base比他高$5K,但RSU比他少$50K。
GOOD:候选人I要求RSU增加25%,并解释:“我愿意接受base不变,但RSU需要反映我的市场价值。我认为Notion的RSU在12个月内会增值,所以这对我来说更有吸引力。”公司同意。
结论:Notion的recruiter在base上没有弹性,但在RSU上有20%-30%的灵活空间。不谈判RSU等于放弃20%的潜在收益。
准备清单
- 拆解Notion的产品逻辑:不要只是“用过”,要深入理解block-based schema、database relation、view切换的trade-off。看Notion的engineering blog和公开的design docs(比如“Why Notion uses SQLite”)。不是“会用”,而是“能解释为什么这么设计”。
- 准备3个产品判断案例:每个案例用“判断-假设-验证”结构。比如:“我不做calendar view,因为用户行为数据显示database view的使用率只有8%,而calendar view的engineering cost是$500K。假设:如果做calendar,用户active使用率会低于5%。
验证:3个月后看feature flag数据。”——面试官会问“你怎么知道8%这个数字”,所以你要准备好引用真实数据(比如Notion的公开用户行为报告)。
- 系统设计只练Notion的feature:不要练“设计WhatsApp”或“设计Uber”。练“设计Notion的AI autocomplete”、“设计Notion的export功能”、“设计Notion的模板库”。
每道题30分钟,先写definitions(用户是谁、场景是什么),再画架构,最后写trade-off列表。PM面试手册里有完整的Notion系统设计实战复盘可以参考——里面详细拆解了“设计Notion的database view”的面试官评分标准和常见挂点。
- 谈判脚本提前写:不是“我想要更多钱”,而是“我理解RSU是杠杆,请增加20%的RSU,并考虑1年cliff后加速vesting”。提前在Blind上查Notion的RSU谈判上限——通常是初始offer的1.3倍。
- 模拟debrief会议:找朋友扮演hiring committee,给你一个候选人案例(比如“5年经验,亚马逊SDE,系统设计满分,但产品Sense轮答错”),你判断要不要hire。不是“看简历”,而是“用Notion的框架判断——他能不能独立做产品决策”。
- 研究Notion的“no folder”哲学:Notion创始人说过“文件夹是限制思维的容器”。面试时如果你说“应该加文件夹功能”,你就暴露了你不理解Notion的产品哲学。正确回答:“文件夹是hierarchical的,Notion是graph-based的。
我们不做文件夹,是因为我们用backlinks和database relation来替代。这是有意的trade-off,不是功能缺失。”
- 准备一个“我错了”的故事:Notion的hiring manager特别看重“你能承认判断错误”的能力。故事必须有具体数字和决策过程。比如:“我判断用户想要更多block types,所以花了2周开发了一个‘投票block’。
上线后使用率只有0.5%。我意识到我错了——用户不是要更多类型,而是要更好的relation。于是我砍掉功能,转去做database formula,使用率提升了30%。”
FAQ
问:Notion的RSU值不值得赌?
值不值得取决于你的时间窗口和风险承受力。Notion在2024年的二级市场估值约$150亿,比2021年峰值$100亿有所下降,但仍有潜力。如果Notion在2026年前IPO,且估值回到$300亿以上,L5的RSU($200K-$300K)会变成$400K-$600K。
但注意:Notion的RSU没有refresh,如果你4年内离职,只能带走已vest的部分。如果你能接受“3年内不卖股票”的流动性风险,且相信Notion的AI和enterprise战略,那值得赌。否则,去Google拿稳定TC更安全。
问:Notion面试不考LeetCode,那我刷什么?
刷LeetCode完全浪费时间。你应该刷“Notion-specific coding”——用Python或TypeScript实现一个block-based editor的基本操作:add block、delete block、move block、update block content。重点练习immutable state管理(用Immer或immutable.js)、undo/redo功能(用command pattern)、以及block的递归操作(比如删除一个block时,递归删除所有子block)。
面试官会现场给你一个Notion doc,让你写代码。他不在乎你写的代码是否最优,在乎你能不能写出“可读、可测试、可扩展”的代码。
问:Notion的staff engineer(L6)面试有什么特殊之处?
L6面试多一轮“Product Strategy”,时长90分钟。面试官会是VP级别的产品负责人。他们会问:“如果我们想进入AI笔记市场,你怎么制定技术路线图?”不是“设计一个feature”,而是“定义整个领域”。你需要给出:1) 用户痛点的3个优先级;2) 技术架构的2个关键决策(比如“用third-party API还是自建模型”);
3) 6个月的milestone和判断标准。L6面试挂点通常是“只给出了技术方案,没有给出用户-技术-商业三者的trade-off”。比如,你不能只说“我们用GPT-4”,你要说“我们选择用GPT-4而不是自建模型,因为我们的用户是个人用户,不是企业,对数据隐私要求低,但需要快速迭代。判断标准:3个月内,AI feature的付费转化率超过5%就继续,否则考虑自建。”——这证明你有能力制定公司级别的技术战略。
准备好系统化备战PM面试了吗?
也可在 Gumroad 获取完整手册。