2026 上半年 Senior / Staff 在职跳槽记录
找工就业
地里匿名用户4IJCU
背景 PhD + 4 YOE,湾区某血汗工厂在职跳槽。2026 年上半年集中精力面试跳槽,目标主要是 Senior / Staff 级别。从 2 月开始面试,绝大部分流程集中在 3–5 月。总共面了 40+ 公司,全部为海投和 recruiter 联系,没有内推,最后拿到 10 个 offer。
Offer (10)
1. Amazon
算是老关系户了,之前有过 AWS 实习经历,里面 connection 也比较多,所以面试和 offer 都很顺利。但实在没什么兴趣通勤那么远,pay 也没有明显优势,工作压力估计也不小,还不管饭,遂拒。
2. Google
自己总共投了 5 个职位,其中 4 个都是周末凌晨被南亚名称的 XWF 拒了。剩下一个被美国本土 recruiter 捞起来,做了 Google Assessment,做完后被告知岗位 close,正式面试都没开始。一个月后又被另一个本土 recruiter 捞起来,开始正式面试。
面试就是标准的 L5 五轮。最后一轮面完后第二天,recruiter 就通知已经过了 HC,可以直接进入 team match。后面聊了两个组,其中一个还比较感兴趣,就从了。
3. LinkedIn
Recruiter 主动联系申请 Staff。正常面试结束后 recruiter 说因为新政策,需要再补一轮 AI-assisted coding。吐槽一下 LinkedIn 当时的 AI 工具,反应实在太慢,题目本身并不难,感觉手写都比 AI 写得快,最后基本只能让 AI 帮忙写 test case。全部面完后 recruiter 说准备给 offer,结果又赶上 LinkedIn 裁员和 hiring freeze,流程暂停。
9 月已经入职新公司以后,LinkedIn recruiter 又联系说恢复招聘了,问还有没有兴趣,当时已经不准备动了,所以拒绝。
4. MongoDB / VoyageAI
投的是原 VoyageAI 组的 Inference Platform。说实话一开始感觉自己的背景不算特别 match,没想到 recruiter 和面试反馈都特别好,最后直接给了顶包。当时同时还有 Google offer,权衡之后忍痛拒了。说实话,工作内容是我最感兴趣的一个,公司本身也不错。但目前的环境还是希望先稳定一些。
5. OCI
最开始是 Senior Director 在 LinkedIn 上主动联系,希望申请 Principal 职位,并明确表示不介意我的工作年限。面试结束后通知通过,但正好赶上裁员,招聘暂停。后来招聘恢复后又重新联系,不过 package 相比其他公司低不少,而且感觉活多钱少含印量高,遂拒之。
6. Pure Storage / Everpure
刚开始和 recruiter 聊的时候还叫 Pure Storage,后来改名 Everpure。面试整体很顺利,对方主动给了超过原本范围的顶包。说实话,在当前存储越来越贵的背景下,这家公司还是挺有市场前景的,WLB 也不错,当时认真考虑过。
7. Waymo
自己投了两个岗位,都没有后续,反而是 LinkedIn 上 recruiter 主动联系了另外一个岗位。此时 Google 正在面最后几轮,所以决定一边继续面 Waymo,一边等 Google 推进。后续一共 5 轮,基本和 Google team match、package negotiation 同时进行。最后一轮结束第二天就通知通过,并直接给了 offer letter。
这时 Google 的正式 offer 也下来了,考虑了一个周末,最后还是拒了 Waymo。拒掉以后,Waymo 的 Senior Director,也就是 hiring manager 的 director,还专门约了个 sync,问了一下不接 offer 的原因。
8. A 开头 startup — Series A
做 infra 和 storage,方向比较 match,但要求 SF 一周 5 天 in office,通勤成本实在太高,没接。
9. O 开头 startup — Series B
做 lakehouse,直接和 Databricks、Snowflake 竞争。市场肯定有,但竞争激烈,感觉工作压力也会相当大,最后没接。
10. Y 开头 startup — Series C
做分布式数据库。最开始讨论 Principal,但对方觉得工作年限不够 Principal,最后只给了 Staff offer,没有接。
三个 startup 最终都没接,主要还是因为早期资产流动性差,如果只靠 base,家庭现金流上不太合适,加上当时身份还有一些不确定因素。
Withdraw (2)
1. Meta
以前在 Meta 实习过,坦白说当时体验不算特别好,所以最后也没选择 return,倒是幸运避开了 2023 年的大裁员。这次自己投了一个 infra 相关职位,既没有下一步也没有被拒,后来反而又是 recruiter 主动联系。面过 3 轮以后又赶上大裁员和 hiring freeze,所以没有继续。
签了 Google 以后 recruiter 又联系说恢复招聘了,我告知已经签了 offer,现在也不想去参加鱿鱼游戏,于是 withdraw。
2. Verkada
和 recruiter 聊过以后已经开始约面试时间,但此时手里已经有其他 offer,所以没有再继续。
Rejection after Onsite / Full Loop (7)
1. Apple
自己投了一个组,直接被 ghost。后来先后被两个组捞起来,都完成了 full loop interview。个人感觉背景不是特别 match,对工作内容也没什么兴趣,最后对方应该也是类似判断,收到了两封拒信。
2. Databricks
当时很想去的一家公司,很多前同事和校友都在里面。投的是数据库相关岗位,经历若干轮面试后反馈很 strong,后来甚至已经提供了 3 个 reference,但最终还是挂在 HC,原因是在 Senior 级别上的工作年限不够。Hiring manager 是前 AWS Senior Director,他自己也觉得很遗憾,让我过一段时间再投,后续还联系我说他以前 AWS 的同事想和我聊聊。
3. Nuro
投了一个岗位,一天多轮 onsite,面完以后过了一周通知被拒。
4. NVIDIA
投了 5 个组,面了 3 个。每个组面试内容差别都很大,而且问得非常细,面试过程中自己也能感觉到背景不是特别 match,最后果然收到了 3 封拒信。看来暂时和硬件厂无缘。
5. Roblox
投了一个岗位,整体面试体验不错。虽然需要 onsite,但 Uber 可以报销,而且每次 onsite 还送一对蓝牙音箱,最后拿了两对。可惜最后挂在 Director 面,同样是觉得 Senior 年限不够。
6. xAI
Onsite 两轮,一轮 coding、一轮 system design,第二天通知挂了。面试时几个面试官肉眼可见地疲惫,还有一个人在英国。我问他们一般一天工作多久,有一个直接说确实有人睡在 office,还给我展示了睡袋……
7. Zilliz
华人公司,Milvus 的开发者。面了几轮,评价说 technical 不够 strong,最后没有继续。
Rejection after Screening (4)
1. Decagon AI
完成 screening 后第二天被拒。
2. Reflection AI
HM 要求全部使用 AI 解决一个问题,做完后一周左右通知被拒。
3. Stealth Company
最近刚完成 Series A。先和一个 founder 聊,然后和另一个 founder 做 technical screening,两天后被拒。
4. X Moonshot Factory
Alphabet 旗下。Screening 后挂,虽然问题基本都答出来了,但面试过程中也能感觉到 tech stack 不是很 match。
Rejection after Recruiter / HM Call (7)
1. Cockroach Labs
和 recruiter 聊过以后才知道其实是 NYC only,job posting 上只写了 remote,并没有说明必须在 NYC 工作。不可能 relocate,所以决定不再继续。
2. Crusoe
和 HM 聊过以后没有后续,一周后 recruiter 通知挂。
3. Magic AI
和 recruiter 聊过以后被拒,背景不 match。
4. OpenAI
自己投了 3 个岗位,两个直接被拒,一个进入 recruiter call,聊完以后对方认为背景不 match,也被拒。
5. Perplexity
和 recruiter 聊过以后,隔了几天通知背景不 match。
6. Uber
Recruiter 聊完后本来准备约正式面试时间,之后突然被 ghost。过了一段时间通知岗位取消,同时给了拒信。以前还拿过 Uber 的 offer,但这次连机会也没给。
7. World Labs
李飞飞创立的公司,刚刚被 AMD 收购。和 recruiter 聊过以后,隔了几天通知背景不 match。
简历拒 (8)
Airbnb、Anthropic、Elasticsearch、GitHub、Harvey AI、Microsoft、Salesforce、Snowflake。
Microsoft 是最无奈的一个。前前后后投了 10+ 个岗位,一个面试都没有,要么 ghost 后自己 withdraw,要么过了几周甚至几个月才收到拒信。有意思的是,入职 Google 以后,Microsoft Superintelligence 的某位 VP 反而通过 LinkedIn 主动联系我希望加入。和 recruiter 聊了一下,说明自己刚入职新公司,短期内不准备动,所以没有继续。
默拒 / Ghost (6+)
Anyscale、AppLovin、ClickHouse、Netflix、Rippling、Stripe 等。
面试经验
Databricks、Roblox 和 Pure Storage / Everpure 基本都能遇到原题,不过我被问到的题目本身也和自己的工作经历比较相关,所以对我来说都不算难。
1. Coding
Coding 整体以 Medium 难度为主,没有遇到特别多纯刷题型的 Hard。整个面试季我只遇到了两道 DP,一道是某 O 开头 startup 的 screening,另一道是 Waymo。Waymo 那道除了要求写出 DP,还需要把每一个 state 的定义、状态转移以及为什么这么设计讲清楚。
可能跟自己背景相关,还有很大一部分面试是跟分布式系统和多线程并发有关,但因为平时工作主要就是做这些的,所以感觉没什么难度。
我的 coding 基本没有真正意义上的一次过,也不能说完全 bug free,但没有出现过明显的逻辑错误。大部分都是小问题,比如打字漏了东西、某个符号写错、边界条件需要稍微调整等等。我个人感觉相比追求一次写出完美代码,沟通其实更加重要。写之前先把思路讲清楚,包括准备怎么做、重点在哪里、为什么选择这个方案;写出来的代码不一定要完美,但一定要 easy to read,变量名和函数名尽量规范,必要的地方加适当的注释。Coding style 也是很重要的一环。
另外,我觉得比较重要的一点是,不能只知道某个方案的时间复杂度,而要知道这个方案在什么场景下适用,以及为什么要选择它。比如 hash table 虽然 average 是 O(1),但 worst case 可以到 O(N),对于特别在意 tail latency 的场景未必合适;tree 可以提供稳定的 O(log N),但 average performance 往往不如 hash table。再比如数据量非常小的时候,例如只有几 KB,与其上 hash table 或 tree,有时候直接用 vector / array 做 linear search 反而更合适。虽然理论复杂度是 O(N),但因为数据连续、cache friendly,实际 latency 完全可能更低。
所以同一个问题并不存在一成不变的“标准答案”。数据规模、访问模式、tail latency、memory overhead、cache locality 等约束发生变化以后,最合适的数据结构和算法也可能完全不同。面试里如果有必要,可以主动把这些适用场景和 tradeoff 讲出来,而不是只说“这个是 O(1),所以它最好”。
我觉得面试中很重要的一点,是要表现出 engineer,而不仅仅是 programmer 的 mindset。工程上很多时候并不需要理论上的 optimal solution,而是需要综合考虑实际应用场景、代码复杂度、可维护性、可观测性以及未来扩展的成本。现在 AI 工具已经很发达,单纯“把一个问题解决掉”越来越不困难,真正有价值的是能不能用合适而优雅的方式解决,并且让自己和其他人以后都能够理解和维护。自己面试别人的时候,从交谈和写出来的代码里,其实一眼就能看出来一个人是真的做过工程项目,还是只背过题或者练过 LeetCode。
所以我在面试里会比较主动地讨论 tradeoff:不仅解释“我准备怎么做”,也会解释“为什么在这个场景下这么做”,以及“如果约束发生变化,我会怎么调整方案”。相比一味追求所谓的 optimal solution,我个人感觉这种针对实际问题和应用场景的工程思考,在 Senior / Staff 面试里会是一个很大的加分项。
2. System Design
System design 我没有特别准备,大概只看了一些常见题型,比如 Dropbox / Google Drive 之类。但实际被问得最多的还是设计 distributed KV store、file store 或者 object store。这些和自己本身的工作比较相关,所以也算熟门熟路,没有太大压力。
同样的,我感觉 system design 的重点也不是背答案,而是先把设计场景和需求问清楚,再讨论在这些约束下什么样的架构和组件最合适。Consistency、availability、latency、throughput、durability、cost、数据规模、读写模式这些条件一变,合理的设计也会跟着变。重点还是把 tradeoff 讲清楚,而不是上来直接套一个“标准答案”。
每次面完以后,我也会利用 ChatGPT 或 Gemini 把刚才的题重新复盘一遍,看看有没有漏掉的 corner case、哪些地方考虑得不够完整,或者有没有更好的设计方案,为下一次面试做准备。
3. Behavioral
Behavioral 我没有特别去背套话。如果自己有真实经历,我感觉把事情本身讲清楚,会比提前准备一套很标准的 STAR 模板更有说服力。当然表达还是需要有结构,至少要让面试官听明白当时的问题是什么、自己做了什么、为什么这么做以及最后结果如何。
常见的 behavioral 问题里,我觉得有两个点特别值得注意。
第一个是团队协作和个人 ownership 之间的平衡。既要体现自己能够独立发现和解决问题、推动项目,也不能给人一种什么事情都自己做或者很难和别人合作的感觉。尤其是讲和同事存在意见分歧或者冲突的经历时,重点不是证明“最后我是对的”,而是自己怎么理解对方的考虑、怎么用数据或者实验验证不同方案、怎么找到大家都能接受的方向,最后让项目继续往前推进。
第二个是怎么讲自己的失败和错误。这个我觉得没必要怕承认错误,甚至一个真实而且有一定影响的错误,往往比那种包装成缺点的优点更有说服力。重点不是证明“其实这个错误不是我的问题”,而是出了问题以后自己怎么止损、怎么找到 root cause、怎么修复,以及从中吸取了什么经验。
更重要的是,最好能讲清楚之后做了什么,让同样的问题不只是“我下次注意”,而是通过 process、tooling、testing、monitoring、review mechanism 等方式,让整个组以后都更难犯同样的错误。我感觉面试官真正想听到的不是一个从来不犯错的人,而是一个能够从错误中成长,并且把个人的经验最终转化成整个团队改善的人。
Offer (10)
1. Amazon
算是老关系户了,之前有过 AWS 实习经历,里面 connection 也比较多,所以面试和 offer 都很顺利。但实在没什么兴趣通勤那么远,pay 也没有明显优势,工作压力估计也不小,还不管饭,遂拒。
2. Google
自己总共投了 5 个职位,其中 4 个都是周末凌晨被南亚名称的 XWF 拒了。剩下一个被美国本土 recruiter 捞起来,做了 Google Assessment,做完后被告知岗位 close,正式面试都没开始。一个月后又被另一个本土 recruiter 捞起来,开始正式面试。
面试就是标准的 L5 五轮。最后一轮面完后第二天,recruiter 就通知已经过了 HC,可以直接进入 team match。后面聊了两个组,其中一个还比较感兴趣,就从了。
3. LinkedIn
Recruiter 主动联系申请 Staff。正常面试结束后 recruiter 说因为新政策,需要再补一轮 AI-assisted coding。吐槽一下 LinkedIn 当时的 AI 工具,反应实在太慢,题目本身并不难,感觉手写都比 AI 写得快,最后基本只能让 AI 帮忙写 test case。全部面完后 recruiter 说准备给 offer,结果又赶上 LinkedIn 裁员和 hiring freeze,流程暂停。
9 月已经入职新公司以后,LinkedIn recruiter 又联系说恢复招聘了,问还有没有兴趣,当时已经不准备动了,所以拒绝。
4. MongoDB / VoyageAI
投的是原 VoyageAI 组的 Inference Platform。说实话一开始感觉自己的背景不算特别 match,没想到 recruiter 和面试反馈都特别好,最后直接给了顶包。当时同时还有 Google offer,权衡之后忍痛拒了。说实话,工作内容是我最感兴趣的一个,公司本身也不错。但目前的环境还是希望先稳定一些。
5. OCI
最开始是 Senior Director 在 LinkedIn 上主动联系,希望申请 Principal 职位,并明确表示不介意我的工作年限。面试结束后通知通过,但正好赶上裁员,招聘暂停。后来招聘恢复后又重新联系,不过 package 相比其他公司低不少,而且感觉活多钱少含印量高,遂拒之。
6. Pure Storage / Everpure
刚开始和 recruiter 聊的时候还叫 Pure Storage,后来改名 Everpure。面试整体很顺利,对方主动给了超过原本范围的顶包。说实话,在当前存储越来越贵的背景下,这家公司还是挺有市场前景的,WLB 也不错,当时认真考虑过。
7. Waymo
自己投了两个岗位,都没有后续,反而是 LinkedIn 上 recruiter 主动联系了另外一个岗位。此时 Google 正在面最后几轮,所以决定一边继续面 Waymo,一边等 Google 推进。后续一共 5 轮,基本和 Google team match、package negotiation 同时进行。最后一轮结束第二天就通知通过,并直接给了 offer letter。
这时 Google 的正式 offer 也下来了,考虑了一个周末,最后还是拒了 Waymo。拒掉以后,Waymo 的 Senior Director,也就是 hiring manager 的 director,还专门约了个 sync,问了一下不接 offer 的原因。
8. A 开头 startup — Series A
做 infra 和 storage,方向比较 match,但要求 SF 一周 5 天 in office,通勤成本实在太高,没接。
9. O 开头 startup — Series B
做 lakehouse,直接和 Databricks、Snowflake 竞争。市场肯定有,但竞争激烈,感觉工作压力也会相当大,最后没接。
10. Y 开头 startup — Series C
做分布式数据库。最开始讨论 Principal,但对方觉得工作年限不够 Principal,最后只给了 Staff offer,没有接。
三个 startup 最终都没接,主要还是因为早期资产流动性差,如果只靠 base,家庭现金流上不太合适,加上当时身份还有一些不确定因素。
Withdraw (2)
1. Meta
以前在 Meta 实习过,坦白说当时体验不算特别好,所以最后也没选择 return,倒是幸运避开了 2023 年的大裁员。这次自己投了一个 infra 相关职位,既没有下一步也没有被拒,后来反而又是 recruiter 主动联系。面过 3 轮以后又赶上大裁员和 hiring freeze,所以没有继续。
签了 Google 以后 recruiter 又联系说恢复招聘了,我告知已经签了 offer,现在也不想去参加鱿鱼游戏,于是 withdraw。
2. Verkada
和 recruiter 聊过以后已经开始约面试时间,但此时手里已经有其他 offer,所以没有再继续。
Rejection after Onsite / Full Loop (7)
1. Apple
自己投了一个组,直接被 ghost。后来先后被两个组捞起来,都完成了 full loop interview。个人感觉背景不是特别 match,对工作内容也没什么兴趣,最后对方应该也是类似判断,收到了两封拒信。
2. Databricks
当时很想去的一家公司,很多前同事和校友都在里面。投的是数据库相关岗位,经历若干轮面试后反馈很 strong,后来甚至已经提供了 3 个 reference,但最终还是挂在 HC,原因是在 Senior 级别上的工作年限不够。Hiring manager 是前 AWS Senior Director,他自己也觉得很遗憾,让我过一段时间再投,后续还联系我说他以前 AWS 的同事想和我聊聊。
3. Nuro
投了一个岗位,一天多轮 onsite,面完以后过了一周通知被拒。
4. NVIDIA
投了 5 个组,面了 3 个。每个组面试内容差别都很大,而且问得非常细,面试过程中自己也能感觉到背景不是特别 match,最后果然收到了 3 封拒信。看来暂时和硬件厂无缘。
5. Roblox
投了一个岗位,整体面试体验不错。虽然需要 onsite,但 Uber 可以报销,而且每次 onsite 还送一对蓝牙音箱,最后拿了两对。可惜最后挂在 Director 面,同样是觉得 Senior 年限不够。
6. xAI
Onsite 两轮,一轮 coding、一轮 system design,第二天通知挂了。面试时几个面试官肉眼可见地疲惫,还有一个人在英国。我问他们一般一天工作多久,有一个直接说确实有人睡在 office,还给我展示了睡袋……
7. Zilliz
华人公司,Milvus 的开发者。面了几轮,评价说 technical 不够 strong,最后没有继续。
Rejection after Screening (4)
1. Decagon AI
完成 screening 后第二天被拒。
2. Reflection AI
HM 要求全部使用 AI 解决一个问题,做完后一周左右通知被拒。
3. Stealth Company
最近刚完成 Series A。先和一个 founder 聊,然后和另一个 founder 做 technical screening,两天后被拒。
4. X Moonshot Factory
Alphabet 旗下。Screening 后挂,虽然问题基本都答出来了,但面试过程中也能感觉到 tech stack 不是很 match。
Rejection after Recruiter / HM Call (7)
1. Cockroach Labs
和 recruiter 聊过以后才知道其实是 NYC only,job posting 上只写了 remote,并没有说明必须在 NYC 工作。不可能 relocate,所以决定不再继续。
2. Crusoe
和 HM 聊过以后没有后续,一周后 recruiter 通知挂。
3. Magic AI
和 recruiter 聊过以后被拒,背景不 match。
4. OpenAI
自己投了 3 个岗位,两个直接被拒,一个进入 recruiter call,聊完以后对方认为背景不 match,也被拒。
5. Perplexity
和 recruiter 聊过以后,隔了几天通知背景不 match。
6. Uber
Recruiter 聊完后本来准备约正式面试时间,之后突然被 ghost。过了一段时间通知岗位取消,同时给了拒信。以前还拿过 Uber 的 offer,但这次连机会也没给。
7. World Labs
李飞飞创立的公司,刚刚被 AMD 收购。和 recruiter 聊过以后,隔了几天通知背景不 match。
简历拒 (8)
Airbnb、Anthropic、Elasticsearch、GitHub、Harvey AI、Microsoft、Salesforce、Snowflake。
Microsoft 是最无奈的一个。前前后后投了 10+ 个岗位,一个面试都没有,要么 ghost 后自己 withdraw,要么过了几周甚至几个月才收到拒信。有意思的是,入职 Google 以后,Microsoft Superintelligence 的某位 VP 反而通过 LinkedIn 主动联系我希望加入。和 recruiter 聊了一下,说明自己刚入职新公司,短期内不准备动,所以没有继续。
默拒 / Ghost (6+)
Anyscale、AppLovin、ClickHouse、Netflix、Rippling、Stripe 等。
面试经验
Databricks、Roblox 和 Pure Storage / Everpure 基本都能遇到原题,不过我被问到的题目本身也和自己的工作经历比较相关,所以对我来说都不算难。
1. Coding
Coding 整体以 Medium 难度为主,没有遇到特别多纯刷题型的 Hard。整个面试季我只遇到了两道 DP,一道是某 O 开头 startup 的 screening,另一道是 Waymo。Waymo 那道除了要求写出 DP,还需要把每一个 state 的定义、状态转移以及为什么这么设计讲清楚。
可能跟自己背景相关,还有很大一部分面试是跟分布式系统和多线程并发有关,但因为平时工作主要就是做这些的,所以感觉没什么难度。
我的 coding 基本没有真正意义上的一次过,也不能说完全 bug free,但没有出现过明显的逻辑错误。大部分都是小问题,比如打字漏了东西、某个符号写错、边界条件需要稍微调整等等。我个人感觉相比追求一次写出完美代码,沟通其实更加重要。写之前先把思路讲清楚,包括准备怎么做、重点在哪里、为什么选择这个方案;写出来的代码不一定要完美,但一定要 easy to read,变量名和函数名尽量规范,必要的地方加适当的注释。Coding style 也是很重要的一环。
另外,我觉得比较重要的一点是,不能只知道某个方案的时间复杂度,而要知道这个方案在什么场景下适用,以及为什么要选择它。比如 hash table 虽然 average 是 O(1),但 worst case 可以到 O(N),对于特别在意 tail latency 的场景未必合适;tree 可以提供稳定的 O(log N),但 average performance 往往不如 hash table。再比如数据量非常小的时候,例如只有几 KB,与其上 hash table 或 tree,有时候直接用 vector / array 做 linear search 反而更合适。虽然理论复杂度是 O(N),但因为数据连续、cache friendly,实际 latency 完全可能更低。
所以同一个问题并不存在一成不变的“标准答案”。数据规模、访问模式、tail latency、memory overhead、cache locality 等约束发生变化以后,最合适的数据结构和算法也可能完全不同。面试里如果有必要,可以主动把这些适用场景和 tradeoff 讲出来,而不是只说“这个是 O(1),所以它最好”。
我觉得面试中很重要的一点,是要表现出 engineer,而不仅仅是 programmer 的 mindset。工程上很多时候并不需要理论上的 optimal solution,而是需要综合考虑实际应用场景、代码复杂度、可维护性、可观测性以及未来扩展的成本。现在 AI 工具已经很发达,单纯“把一个问题解决掉”越来越不困难,真正有价值的是能不能用合适而优雅的方式解决,并且让自己和其他人以后都能够理解和维护。自己面试别人的时候,从交谈和写出来的代码里,其实一眼就能看出来一个人是真的做过工程项目,还是只背过题或者练过 LeetCode。
所以我在面试里会比较主动地讨论 tradeoff:不仅解释“我准备怎么做”,也会解释“为什么在这个场景下这么做”,以及“如果约束发生变化,我会怎么调整方案”。相比一味追求所谓的 optimal solution,我个人感觉这种针对实际问题和应用场景的工程思考,在 Senior / Staff 面试里会是一个很大的加分项。
2. System Design
System design 我没有特别准备,大概只看了一些常见题型,比如 Dropbox / Google Drive 之类。但实际被问得最多的还是设计 distributed KV store、file store 或者 object store。这些和自己本身的工作比较相关,所以也算熟门熟路,没有太大压力。
同样的,我感觉 system design 的重点也不是背答案,而是先把设计场景和需求问清楚,再讨论在这些约束下什么样的架构和组件最合适。Consistency、availability、latency、throughput、durability、cost、数据规模、读写模式这些条件一变,合理的设计也会跟着变。重点还是把 tradeoff 讲清楚,而不是上来直接套一个“标准答案”。
每次面完以后,我也会利用 ChatGPT 或 Gemini 把刚才的题重新复盘一遍,看看有没有漏掉的 corner case、哪些地方考虑得不够完整,或者有没有更好的设计方案,为下一次面试做准备。
3. Behavioral
Behavioral 我没有特别去背套话。如果自己有真实经历,我感觉把事情本身讲清楚,会比提前准备一套很标准的 STAR 模板更有说服力。当然表达还是需要有结构,至少要让面试官听明白当时的问题是什么、自己做了什么、为什么这么做以及最后结果如何。
常见的 behavioral 问题里,我觉得有两个点特别值得注意。
第一个是团队协作和个人 ownership 之间的平衡。既要体现自己能够独立发现和解决问题、推动项目,也不能给人一种什么事情都自己做或者很难和别人合作的感觉。尤其是讲和同事存在意见分歧或者冲突的经历时,重点不是证明“最后我是对的”,而是自己怎么理解对方的考虑、怎么用数据或者实验验证不同方案、怎么找到大家都能接受的方向,最后让项目继续往前推进。
第二个是怎么讲自己的失败和错误。这个我觉得没必要怕承认错误,甚至一个真实而且有一定影响的错误,往往比那种包装成缺点的优点更有说服力。重点不是证明“其实这个错误不是我的问题”,而是出了问题以后自己怎么止损、怎么找到 root cause、怎么修复,以及从中吸取了什么经验。
更重要的是,最好能讲清楚之后做了什么,让同样的问题不只是“我下次注意”,而是通过 process、tooling、testing、monitoring、review mechanism 等方式,让整个组以后都更难犯同样的错误。我感觉面试官真正想听到的不是一个从来不犯错的人,而是一个能够从错误中成长,并且把个人的经验最终转化成整个团队改善的人。
已获得 37 大米


+2
共16条回复
✨ 您正在体验新版论坛UI



