找工记(1)|丢掉工作是一瞬间的事儿
凌晨三点的 1:1
7 月 1 日,周三,原本是我和老板日常 1:1 的日子。前一天晚上,老板突然把会挪到了早晨,并在 Slack 上发来消息:“不好意思,明天我们的 1:1 改到了早上的时间,希望你能理解!”
蹊跷的是,她改到的时间是西海岸早上六点。当时我在夏威夷远程工作,所以第二天凌晨三点就起来开会。进了会议,发现除了老板,还有一位那周刚刚入职的HR。
老板宣布,Reflection 决定终止我的雇佣。接下来,HR 有感情朗诵相关事项,包括解雇原因、补偿和保险安排,并询问我是否同意。我没感情地点了个头。
五分钟后,公司电脑黑了屏。邮箱和其他在线服务,也都无法再访问。
事发突然。虽然加入公司后的经历一直不算愉快,但这次在我看来颇有些草台班子气息的解雇过程,还是让我哭笑不得:
时间:就在原定假期之前
我本来请了 7 月 2 日到 8 日的假,准备参加今年的 ACL。早在三月就和老板说过,也得到了批准。
赶在假期之前被开掉,这操作很绝。
方式:日常会议突然变成离职通知
我事先没有收到这场会议与解雇有关的通知,它仍然以日常 1:1 的形式出现,来降低我的警惕性(比如防止收集证据,或者删库跑路的行为?)。
进会看到 HR,再到电脑和账户被停用,几乎没有留给我反应的时间。不讲武德,搞偷袭。
原因:AI、GPU,以及代码审核
这个是最让人苦笑不得的事情。最主要的原因,是我用AI太多…… 在HR给我发来的终止协约的文件里,被解雇的原因有三条:
- 没有遵循此前给我的 Level 3 warning(我会详细说这个)
- 使用 AI agent 完成工作时,占用了其他团队的 GPU 资源
- 老板认为同事在我的 code review 上花费了太多时间,代码不能一次满足 approve 的要求
先抛开这些理由到底有没有严重到需要开除不谈,有些理由竟能用作开除,让人匪夷所思。
GPU
因为每个组有固定的GPU quota,很多时候大家跑实验需要抢GPU,但当时内部调度系统并没有被挤掉后继续跑的功能,许多时候不得不手工继续这些实验,甚至重头开始。
于是我写了一个agent来监控我的实验,但凡被踢掉,就尝试在不踢掉其他人实验的情况下继续。
然后某个周一早上,老板质疑我为什么在周日夜里占用了另一个组的 GPU quota。原因是,当时高优先级队列没有任务,我的 agent 就把被挤掉的实验放进了这些队列。周一早上,同事发现后停掉了我的实验,并报告给老板。
老板认为我没有遵守公司的资源使用规则,并在 Slack 上说:“如果你不知道你的 agent 每一步在做什么,那就根本别用它。”
代码审核
第一和第三条,都与我使用 AI 写代码、提交代码的方式有关。
组里有一些从 Google 和 Gemini 来的老员工,对 AI 写的代码比较谨慎。每个 PR 不能超过 1,000 行,命名、注释、函数选择都要符合规范。有个同事跟我说:“我花自己的时间来审阅你的代码,希望每个符号、每一行都是有价值的,都是经过你慎重考虑的。”
这些要求放在 production code,或者关键的 infra code 里,非常 make sense。但我们组需要做成百上千次迭代、跑不同实验,在这样的节奏下,我常常被这些规则弄得很头疼。一个 PR 经常要过一两周,甚至一个月才能 merge。
于是,我经常只在自己的 branch 上开发。但老板又会要求,既然这些结果有用,就需要把它们 push 到 main —
所以为了方便,在一些不那么重要的代码上,比如接入新的数据集、修改内部工具的 UI,我有时会让另一个 AI 来 review,绕过了同事的审核。
后来,另一个组的同事发现了这件事——有一次我用 AI 修了他网站上的一个按钮 bug——并向 HR 反映,说这种做法严重违反了公司的安全规则。搞笑的是,这个有审核权限的AI agent是汇报这个问题的同事自己写的,他故意给AI留了这个权限,但是反手举报用这个功能的人,很可笑。
当时工作环境已经把我摧残到要吃药和每天都爆哭,所以我正在休一个心理健康假期。休假回来后,老板扔给我一个Level 3 warning(最严重的那种,类似亚马逊的pip),说我已经持续用AI提交了过多未经审核的代码,需要立即终止这种行为,否则60天后会被公司解雇。
我在收到警告后,所有PR都找了同事和老板审阅。然后仅仅过了三周,我老板觉得warning3不够,干脆fire掉得了。理由是:虽然你遵循了warning的建议,但是每次你的pr review都不能一次通过,浪费了同事们的时间,因此我们不跟你玩了。
基于他们对变量名的苛刻要求,如果不是他们肚子里的蛔虫,实在很难一次通过 :)
而和我合作最紧密的同事,自始至终都不知道我被解雇,以及被给了警告的决定。
后续安排:补偿和身份
公司提出,给我一个月工资作为一次性补偿,也就是 lump-sum payment,以及一个月的保险。公司给出的正式离职日期仍然是 7 月 1 日,并没有因为这笔补偿延后一个月。
对我来说,最直接的影响是:工作没了,移民身份的时间压力也一下子摆到了眼前。不知道我老板知不知道H1B的60天grace period以及手下的移民问题,总之一脚踢开,死活不管。
当天做的事情
被解雇之后困得要命,却怎么也睡不着。只是觉得很累,浓重的焦虑感一浪又一浪拍上心头。起床之后,因为电脑被锁,就开始用手机计划急救方案:
第一件事,移民问题 H-1B 的状态、EB-1 的排期会不会受影响?我先让 ChatGPT 帮忙整理信息和问题,赶紧约了移民律师,准备下午打电话。
第二件事,法律和离职条款 这样被公司解雇,有哪些事情需要弄清楚?有没有适用的州法律保护?一个月的一次性补偿,是否影响正式离职日期?
第三件事,了解情况 到底发生了什么?其他人有变动吗?同事知道吗?我赶紧联系加了 WhatsApp、Telegram 或 Instagram 的同事。
第四件事,广而告之,获取援助 被解雇虽然不是件光彩的事,但人际关系的力量确实可能提供很多帮助。我很快发了朋友圈,简单说明情况,请朋友们帮忙留意招聘和内推机会。
第五件事,立刻找新机会 我更新了一下 CV,交给 ChatGPT,让它帮我查找适合的职位,并整理接下来两周要做的事情。
有了一些具体的计划后,我心里踏实了些. 中午把所有该问和该kick off的项目都做起来,同时列了一个notion page来记录整个过程,包括时间线、要聊的人、要申请的公司和每天的进度(名称做了匿名处理)
计算时间线
我当时最关注的是 H-1B 的宽限期。H1b有60天的grace period,而Lumsum不算在职,因此正式离职就是7/1。按照自己的情况和当时掌握的信息,代表我需要在8/29日之前找到工作,并且initiate h1b transfer application。
后者需要7天的LCA+7天transfer file process。因此如果公司效率非常高,我需要在8/15日前拿到offer。(这里自动排除掉大厂,大厂移民办理几个月起步)。相关规定见 8 CFR 214.1(l)(2)。
保险也是压力。按 HR 给出的安排,公司承担一个月保险后,后续继续保障需要自己考虑 COBRA 等选项和费用。我当时把下个月的心理咨询、过敏针和常规就诊都暂时停了下来。
前老板的一句话
然后我打了通电话给Meta的老板Serena,因为Meta有离职未满一年可以简化回本组的流程。
Serena说,
咱不要着急,反正之前的工作也不适合你,这次离开不要把它看成是一个挫折,我倒觉得可以看成是一个向上跳的机会,说不定能找到更好的位置。
整个找工作的过程里,这句话转变许多我的心态。
最后,就是和亲朋好友联系、吐槽,获得一些情绪价值。
总时间线
收到离职消息后,我也没什么心情继续度假,订了机票回纽约,开始高强度准备。
这次找工作花了大约六周:从 7 月 5 日回到纽约,到 8 月 14 日接受 offer。前两周以复习为主,后两周集中跑 onsite,申请和面试则一路穿插,几乎没断过。
| 时间 | 这一周在做什么 |
|---|---|
| 7/1—7/5 | 丢掉工作;了解离职和移民情况;发朋友圈求助;做最初的计划。 |
| 7/6—7/12 | 复习 LLM 基础,整理资料,查找公司。 |
| 7/13—7/19 | 面试开始!复习 agentic 和 ML coding,做公司相关准备及 take-home。 |
| 7/20—7/26 | 特种兵模式:take-home、interview、onsite;第二轮集中投递。 |
| 7/27—8/2 | 收到第一个 offer,其他面试也在快速推进。 |
| 8/3—8/9 | 去加州 onsite。 |
| 8/10—8/15 | 加州、纽约继续 onsite,做最终决定。 |
最终进入考虑的机会,一个在纽约,三个在加州。考虑过后,我决定加入 Exa,一家做给模型用的搜索服务的公司。
他们的方向和我的背景比较匹配,也有机会做 agentic search 和模型后训练相关的事情。加上公司氛围很活泼,能得到这样的结果,我觉得非常幸运。
虽然这次经历是一次不小的变故,但我当时想,只要没缺胳膊少腿,就问题不大。我也给自己定了几个 backup:
- 找不到纽约的工作就去别处
- 找不到理想的就先苟住
- 找不到美国的就回国
总能有办法。
接下来我会把自己的准备方法,以及各个公司的面试过程,分别写在后两篇里。如果你也遇到了类似的情况,或者正打算找工作,希望这些记录能给你增加一点信心。