一硅谷老码农骑驴找马失败的经历
本文来自职场交流平台“一亩三分地”,有贴主匿名分享了自己骑驴找马失败的经历。
贴主原来是谷歌 l6 华人老码农一枚,被裁后现在在一家小公司苟着,面试了硅谷 OpenAI、meta、苹果、Roblox、Intuit、TT 等多家硅谷企业,最终得到结论 “今年的市场很差很卷,非刚需不建议跳槽,很可能自贱身价”。
下文以第一人称进行转述,希望大家看了后有收获。
背景介绍
鄙人从业 15 年 + 的老码农一枚,在不同公司做过五年多的管理职位,但一直在 IC 和一线经理间横跳。因为不想放弃技术,所以没有爬 manager ladder。
去年在狗家(谷歌)是 L6,赶上被裁,在家找了两个月工作,面试 39 家,VO 12 家,拿了 7 个 offer,但除了苹果以外都是二线或者小公司,最后被朋友力邀,去了一家小公司,想试试 start up。
VO, virtual onsite, 指不到现场,通过线上视频/语音进行面试。区别于普通的 On-site,现场面试。
入职快一年,本来没打算跳槽,但看见公司没增长,还裁员了两次,总担心自己经验贬值,以后更没有竞争力。正好 OpenAI 猎头来骚扰,以前带过的小弟内推,心想谁能拒绝 OpenAI 呢?正好在公司里遇到一些不爽的事儿,就约了开始准备面试,因为快一年没面试了,开始恶补 leetcode 和 system design 。
内心知道 openAI 家 bar 高的吓人,大概率是陪太子读书,心想既然面一家是准备,索性顺便再面几家,于是 LinkedIn 上对猎头开了绿圈,有骚扰的就约面一下。
整个面试从 OpenAI 开始骚扰到现在,两个多月,正式面了面了 7 个公司,6 个 VO,已经挂掉 4 家,拿了一个降级 Offer,还有两家在惴惴不安地等被挂,自我感觉 system design 和 leetcode 都比去年状态好不少,但没差,各种挂。
面试过程
往下是面试每个公司的经历,前四家已挂,后面几家“将挂未挂”,薛定谔猫的状态。
OpenAI,已挂
面了 system design 和 coding design。设计 Yelp,coding 是没见过的题目,类似于写 in memory database,实现类似于 SQL query 的一些功能。
SD 感觉还凑合,但答得不完美,怎么快速按照标签筛选没答上来。
至于 coding 则是修罗场,虽然 prep guide 强烈建议写 python,我还是头铁地写 Java,杯具。比较有趣的是面 coding 的面试官比较猛,以前是 instagram 的 L8。
最后一个 case 堪堪写完,没来得及 test 就到时间了,几天后被告知挂了。
Roblox,已挂
去年 VO 挂过,但今年猎头特别热情,还把去年 VO 挂的 feedback(反馈) 分享给我,就去面了。
前半程两轮 SD 都轻松拿下,coding 轮面试官一上来就说 “我今天很倒霉,车坏了”。我心情就沉到了谷底,然后老兄出了道非常像 disjoint set union 的题目,我心里一万匹羊驼跑过。我提出用 graph traversal dfs 的方式来解,对方一脸不满地摇头,后来交互了几个回合才发现,他想我写个稍微优化点的 brute force 就行,因为之前浪费了不少时间,最后没时间写 test case。
上半场 VO 面完,猎头说 SD 表现很好,coding 不太好,搞复杂了,但让我面下半场 VO 并补一轮 coding。下半场 coding 遇到 meta 高频题,轻松解两个 exec 轮一个 poker face。
另一个交互还不错,但挂在了他家的 bar raiser 轮:被问了 “怎么改进他家产品的问题?” Roblox 这小儿 platform,我自然没怎么用过,于是按照 bigtech 惯常的 data driven approach 去回答,对方各种不满意一脸鄙夷,还时不时拿出手机滑一滑。
最后被告知其他轮次信号都很好,但 bar raiser 轮表示沟通不好,挂。
Intuit,已挂
纯粹想拿来练手的公司。猎头说招 principal,然后强调第一轮会面 design 和非常简单的 coding。重头是之后 VO 的 presentation、AI 和 behavioral 面试。还多次强调presentation 的重要性,说要针对 VP/SVP 做 sell product idea 那样去 present,听得我一头雾水。
第一轮 phone screen 问了一些比较细节的 UML 问题,一些数据库比较底层的问题,一些简单的 SD 问题。对方感觉是正常码农,交流愉快,面完一小时就告知过了。
之后那周 VO 给了个系统设计,要我做 presentation。因为时间和 meta VO 时间重合,我决定不在他家身上花太多时间。几个小时把 slide 做完,就去面试了。
SD 本身题目难度不大,但需要用 slide 对四个人 present,我也不清楚他们希望看到多少细节,也假设他们对题目本身已经有一定了解,设计就停留在比较 high level 层面,打算 present 的时候等对方问问题再 deepdive。结果后来负面反馈都在这个轮次上:认为我没有介绍清楚要求,设计没有覆盖细节(其实中间交互谈到了很多设计细节,以及没有讨论其他设计选项和 trade off(这个比较冤,准备了 slide,但没时间讲)。
相反之后的 AI 面试,问了不少机器学习的具体问题,我自认为答得稀烂,因为没有什么第一手经验,事后却说这轮反馈很好,我 ???
最后因为 present 得不够好,挂了。认为没有达到 principal 的水准,但建议我去面 senior staff 的位置。(查了下他家 principal 级别,对标的是谷歌的 L7,我原来是 l6,心想挂的不算冤,毕竟 presentation tell story sell story 这种事儿确实不是我的强项)
Hubspot,已挂
这个也是本来纯粹想练手的公司。
但面试过程 hiring director 表现得非常 nice,sell得很给力,留下了很好的印象,前两轮 SD 和 coding 就是他家常见高频题。too easy。
SD 对上的是他家的 principal engineer,聊的还挺投机,dive 得很深。让我对他家码农的技术力有点刮目相看。
但就在我对他家产生好感时,直接挂在了 technical deep dive 这个环节,被要求 deep dive 一个两年内做过的 high impact 项目。因为我在谷歌最后一年被拖进各种“政治”,没法做事儿。就讲了最近在 start up 做的 GenAI 集成的工作,
整个流程有问有答,没觉得有明显冷场,面完了觉得信心满满,等最后一轮 BQ。结果五天后收到拒信,没有 feedback,挂的一头雾水,不知道 deep dive 哪里答得让对方不高兴了。
后来看了网上面经才明白这家笑里藏刀,面试难度低,但很容易在非技术面挂:他们会预设一些他们希望你 cover 到的信号,如果你没有讲到他们也不会提示,而是直接挂。只能说每家的面试哲学和口味都不太一样,光谱没对上略感倒霉。 虽然整个流程在他家没花太多时间,但有点被欺骗感情,在好感度最高的时候莫名其妙一刀锯掉,被耍了的感觉。
苹果,待定
我去年拿了果子一个 offer,但不是很喜欢那个项目,也有点对大厂厌倦,就放弃了。
今年面了我更感兴趣的偏基建的一个部门,提了拿了去年的 offer,毫无作用,全流程一个也不能少。
果子的面试很缓慢,两轮 screen 才到 VO,其中第二轮 screen 以后十天没理我,一度让我以为我被 ghost 了。后来说是猎头去休假了,VO 六轮:两轮 coding,三轮 SD,一轮HMcoding,难度不大,但会问一些 multithreading 的问题。
SD 轮有深度,被问到 API gateway 的 design deep dive,而对方过去十年就是在果子做这个的,鸭梨山大,自我感觉 coding 轮和2/3 SD 轮表现都还好,但那个 API gate way 的 SD,因为一直是当 building block 用,没想过它是怎么实现的,表现感觉一般般。
目前还在等决定,但按当前的市场看,凶多吉少。
TT,待定
TT 在地里(职场交流平台“一亩三分地”)名声很差,不想写得太详细,容易暴露身份。
和以前一样,也是猎头上门来邀的,TT 家比较搞笑的是,同一个职位会有多个猎头骚扰你,竞争上岗的感觉。
因为对他家不怎么抱好感,也没什么期望值,面试就是抱着聊聊呗的态度做自己,结果聊下来感觉居然还不错,全程没写一行代码,问的都是过去做的项目的内容(问得很细致),一些比较具体的 BQ 问题(比如怎么带团队之类),特别是第三轮和国内的一个技术总监聊对方态度非常和蔼谦虚,完全出乎我的意料,甚至让我觉得我聊天输出是不是太不设防了。
结果过两天说也过了,随后猎头 HR 轮聊了下对包裹(总包薪酬)的期望值,说准备申请发 Offer,结果过了一周说要再加面一轮 VP。VP 轮不多说细节了,感觉互动一般般。
面完几天,现在毫无下文,生死未卜。
Meta,待定
放到最后说说 meta。他家是我最认真对待,也是目前唯一给了降级 offer 的。 因为认真对待,coding 中高频题目刷了五遍,SD 面经也都看过,mock 轮也做了,做足了准备。
他家的面试一波三折,各种被取消推迟,后来一怒之下向猎头吐槽,才拉了个哥们来面我。
VO 轮其中一轮 SD 也被推迟到一周以后,coding 和表现都还好,有一轮 coding 完全不在中高频列表上,但还好中等难度,顺利过关。
但 SD 面试则不怎么顺利,第一场遇到一位国人大姐,在 meta 待了十几年,上来让我设计 FIFO guarantee delivery 的 pubsub。这种 building block SD 最是困难,而我读过的 SD 书里没有哪个提到怎么实现,FIFO 的磕磕碰碰,对方也没什么互动和提示,就看我在那里挣扎,到结尾一句 we ran out of time(我们没时间了)。我出来研究了几个小时,找了几个 white paper 才搞清楚怎么实现这个功能,心想遇到这个设计真是倒霉。
第二场 SD 面试的国人大哥,第一天说没有会议室,让我改期(!!!??)继续向猎头吐槽,约到第二天,结果大哥迟到二十分钟,还好大哥出的题目不算太难,交互愉快,事后猎头反馈这场面的不错。
今天被猎头告知因为第一场 SD 答得不好(感谢同胞出难题),让我选择 take E5 的 offer 或者加面一场 SD,当时心情有点低落,毕竟我十年前进谷歌就是 L5,仿佛一夜回到解放前,后来上地里看看,现在降级好似家常便饭。 理智想了想,选择了加面,大不了不过明年再战就是。
事后感受
忙乎了两个月,在这么卷的市场里骑驴找马,难度远远超出我的预期,心理压力也非常大。因为没有那么多时间刷题,总是觉得准备不足,自责感非常强烈。
面试的这两个月,可以说完完全全没有生活,都是在做题目、背 SD(太惨了,感觉比去年被裁后面试情况还要惨),后来感觉才好一点,因为七个公司除了 OAI 之外都进了 VO,刷题和 SD 都比去年更熟练,并且头三四周除了 OAI 都没有被拒,让我产生了不切实际的幻想,一度以为按照去年的转化率,怎么也可以拿三四个 offer,但冰冷的事实教育了我,每次被拒都很失望,充满挫败感,特别是一开始被 roblox 锯,感觉完全是被对方找了茬,后来各种被拒,到今天拿到 Meta 的降级 offer,在网上论坛转了转,算是明白,非战之罪。
在现在这么卷的市场里,非必要真的别跳槽,还是接着在公司苟下去,期待市场转暖的一天。
再稍微补充下这次跳槽的一些别的观察:
本来对大公司很失望,都是人浮于事勾心斗角,想去小厂重拾 “可以专心做事,大家一条船” 的感觉。我天真了,小厂如果不增长,内部压力一上升,很多人都会流露出不好的一面,而在小厂你连躲都没地方躲。
很多 CEO 虽然曾是技术出身,但现在真的不知道怎么让他的大饼变成现实,完全 no clue。市面上想忽悠小厂 CEO 的各种皮包公司不要太多,这一年我就看着 CEO 怎么被花式忽悠,也算开了眼界。
不管你在小厂做的东西有多 cutting edge,除非贵厂发达了,否则 nobody cares 你在小厂的经历。
Meta 现在如此火爆,一方面因为股价上升,所以包裹在市场上一枝独秀,另一方面也因为谷歌的衰败,现在从谷歌逃出来去 Meta,俨然算是 step up 了,真是此一时彼一时。