Google 五年

May 10, 2025

Stan in South Park, 5 years old

前情提要

有必要吗?好像是有的,因为上一篇文章写在2022年,而且它是一篇不知所云凑字数的傻叉文章,上一篇正经文章其实是在2020年,一转眼就是五年。

简而言之,五年半前我愤怒地,意料之外情理之中地,决定不跟学校的导师继续做研究了,然后转到了学校的master项目开始找工作。当时找得比较困难,因为决定做得很突然,刷题不熟,校招也关了,后来还遇到由于新冠导致的各种停止招聘。但是经过一番折腾之后,还是拿到了Google的offer并且决定去了。

不知不觉下个月就是我来Google五年整了,在此期间我升了三次职,从L3升到L6,说实话是超出了自己的期待的,因为当时毕业了憋着一口气也就是觉得要在本该PhD毕业的那一年走到更高的一级(L5),结果一不小心升多了(笑),再想到自己当年的导师还没拿到tenure,不禁又偷笑一下。

但也就只是笑了一下而已,笑完之后就又陷入迷茫与虚无了,和以前并没有很大区别。

比学校好一百倍的“延伸”

回忆了一下自己从3升到4的过程,想了想跟自己刚进Google三个月时写的描述没啥区别。总结一下就是,节奏很慢,没啥期待,是个疗伤的好地方,如果觉得自己能力够了想早点升职就得不停地去催manager。

What if

当然今天回想起来还是会有一下遐想,比如说,当时因为COVID我一直在东海岸远程工作,天天睡到11点醒来在床上开会(听会),一两年内几乎只跟两三个人说话 - 如果当时我一入职就去湾区了会怎么样呢,我是否会每天八九点就到办公室,然后找几个人扯淡呢?

再回想自己在graduate school的时光,一大败笔就是由于太忙,几乎不跟人说话,然后自己又不懂,以至于花了很久才意识到自己导师是个PUA大师,早该远离的。想不到工作之后又(被迫?)犯了一样的错误,一方面是COVID被迫远程工作,一方面也是自己内向的属性,不愿意迈出舒适区。其实当年如果能和更多的人多聊聊,也许我就能早点弄明白下面要写到的“升职困境”了。

暴论一条

暴论:招人只招本科生,如果招不到的话,高中生也可以。

加入第一个组的时候很开心,因为80%的同事都是PhD,我觉得自己半路出家也能来这个组,很赚。现在回想起来就是俗人行为,太拿title当回事。当年在学校的时候就觉得身边读PhD的大部分都傻了吧唧的,凭什么觉得来了Google这里的人就会不一样呢?首先,这些人没那么强;其次,在Google,99%的工作不需要你的PhD学位。

当年我进组之前还问过一个已经走了的实习生,问他组里怎么样,他说人还行,就是年纪都比较大,聊不到一起去,有点无聊。前两年我一直远程工作还没觉得,直到我搬去了湾区,去那个办公室上班上了半年之后我就转组了,实在是难受。一方面那个楼很烂,没有阳光,且食堂可以竞争全Google最差食堂;另一方面办公室总是死气沉沉的,充满了一种说不上来的沉默。

后来我得出了一个残酷的结论,这里的工作用不到你的PhD知识,不管你是真强还是假强,我不在意,Google也不在意,因为你大概率是能把工作做完的。可是你读PhD时留下的trauma,却让我很在意,这个学位磨平了你的棱角,消磨了你对生活的热情,而它们对我来说很重要。我是如此介意以至于每次我经过那个办公楼时都觉得上面有乌云笼罩,一朵朵都是Sys PhD经历过的trauma(大部分Sys PhD怎么熬出头的应该不用我多写)。

后来去了新组,好多本科生,聪明又明亮,每天都带给我很多笑容。作为一个经历过短暂trauma的人,我很羡慕他们,跟他们工作的每一天都像是一场治愈。我片面地觉得,快乐教育是真好 :)

升职困境与ChatGPT

去Google工作了几个月我就感觉凭自己的实力,一口气升到5绝对不成问题吧,可惜并没有,然后我也搞不清为啥,摸不着头脑。后来片面地总结了一下,这组里大部分进来都是4,然后普遍要花三年才能升到5,好像是个传统?当然后来我知道这是一种资源与政治的综合原因。可是我不愿意等三年,我对排队升职这种事一点兴趣也没有。可是我当时已经在这个组当4当了一年半了,实在是一个尴尬的时间,好像再努力一把或者再多给一点耐心,也没什么大不了的。

当时我正在做的一个项目是基于语义的code diff,这件事不能说难,大方向上都已经有较好的理论支持,具体效果我来实现的话应该也差不到哪里去。但是有一个问题,就算算法分析出了两个文件是相似的,渲染的结果却非常难读,因为算法为了对抗代码混淆,一般是忽略变量名这种细节的,而渲染的结果是基于某种text diff算法的,所以渲染的结果里只会有大片大片的不同。当时对自己这方面的工作不是很满意,也经常在想怎么样自动化重命名反编译出来的变量名才算是合理的。

就在这个时候,ChatGPT横空出世,我们大组举办了一场hackathon,我的项目很简单,就是把混淆的代码丢进去,让模型根据上下文重命名变量,后续也很简单,我直接转组了。GPT3.5这种逆天的能力,是传统程序分析里从来没见过的,也许之前有过特制的模型可以较好地重命名变量,但是从来没有过一个模型可以整这么多花活,上能写诗,下能分析恶意软件。与此同时拥有这种逆天能力的门槛低得令人发指 - 只要给OpenAI交钱就行。 不得不说,quit这种事就是一回生二回熟,有了之前quit PhD的经验,那是quit起来已经得心应手了 - 在Google,转组就等于重置升职进度,但是我想,不就是一些沉没成本吗,无所谓。我当时的manager极力挽留,甚至承诺我当时那个季度就去升职,但是我的心已经飞向了LLM,不会回头了。

意外之喜

我离开那个组之后,接替我的人发现我做的有个项目很给力,于是他提出要帮我写一个proposal去评奖。于是我就把各种文档以及数据丢给他让他写,不得不说他写得挺好的,最后我们有了一个双赢的结局 - 这个项目拿到了Google的一个金奖而他的名字也在上面。 拿到这个奖之后,我突然膨胀了,问我的新manager我能不能这个季度就去尝试升职。尽管我们才认识两个月,他居然说,可以试试。我花了些心思写好了升职的文档,然后居然就过了,我五月份来到这个新组,八月份就得知了升职的消息。最讽刺的是,那个拿奖的项目,是我升职的重点,而它是我刚升到4的时候做的,从设计到实现,一共只花了一个半季度。

一种幻觉

转组之前的几个月正值Google史上第一次大裁员,我当时的想法就是失望,我觉得Google不应该裁员,太他妈丢人了。转去的新组是正在负责Google I/O上的某个LLM相关的项目,我当时就想,啊,就让我来搞这些最新的东西,提振股价,消除未来的裁员吧! 站在2025年的当下,我发现我在这两件事上都错得离谱。首先Google并非不应该裁员,而是应该更小心有策略地裁员,大公司病是真实存在的,它折磨着许多人的每一天;其次我的工作跟股价也没什么关系,也许它们曾在某个时间点上align了,可是correlation does not imply causation。当然这些都是后话了。

加速加速加速

加入新组的时候正好是23年Google I/O的前两周,我观摩了大家怎么准备I/O,然后感受到了前所未有的激情与混乱,当时就觉得太好了,搞事的机会来了。

当时做AI Coding就是三件套,code chat, code generation, and code completion。当时组里有自己的模型,大家也努力贡献自己的idea去train模型,我想要贡献一些程序分析的知识,但是却发觉low-hanging fruits是如此之多,纯ML人其实并没有看到跨学科的力量,或者说看到了但是刷low-hanging fruits在当时就是ROI更高的方案。 我进组的时候这三件套都有人做了,所以我onboard之后有人问我,要不要做agent,我说好啊,那时候还是2023年的7月,然后我一直做到了今天。

中间发生了很多事,随便写几个留念一下吧:

  1. 2024年3月,我写出了当时最新颖(AFAIK)的agent,它是真的work的,大家看到了之后也非常支持,想要在24年的Google I/O launch。其实I/O上宣布的很多东西都是teaser,给大家看个demo,就算结束了。但是我们当时非常ambitious地想要立刻让用户就能用上,特别是我,我想要给全世界看。于是我在I/O前的那两个月提交了350多个CL,其实一般工程师一年也就提交100多个CL,但是那时的我已经陷入疯狂,我非要把我写出来的东西productionize不可。组里的PM/TPM/Legal也是,一路披荆斩棘打通大公司里的各种流程。真的是我最爱的项目,所有人都只有这一个目标,land the cool thing。
  2. 我面对了很多不曾想过的问题,很多痛苦。比如当你搞出了一个产品,它是如此先进以至于这个世界根本就跟不上,大家不知道怎么用,看不到潜在的价值,站在大公司里,看到DAU/WAU/MAU 这些东西,我不禁会问自己我们到底在追求什么,从拓宽技术的边界到让用户真正喜欢且用上,到底是多么长得恐怖的一条路,也许只有乔布斯懂。站在2025的年末,一切显得更加讽刺,业界不停地吹agent,催生了无数startup,但是这一切其实都在I/O 2024之前实现了大半了。
  3. 如果说普通人无法理解,没有准备好迎接新的技术与产品,我觉得没关系,可是在公司内,说起来都是挺不错的工程师,也拒绝理解。拒绝理解的原因有很多,但是最让我难受的还是大家只愿意专注于自己的一亩三分地,不愿意理解新东西,不愿意站出来破局。其实直到今天我也不知道如何处理大公司里的这种情况,我不会push project forward,说起来我根本不是个合格的典型L6,我不懂八面玲珑也不懂如何利用公司里的level来敲打合适的人。当我不知道如何是好的时候,只有真诚是我的武器,我真诚地表达为什么这个产品这么重要,我真诚地表达请省下所有的bullshit,只要你们onboard,我会把技术上的一切都摆平。

金手铐

其实升职升快了很容易错失其他机会,或是更难改变自己,因为很容易overfit了。我明白人生不能什么都体验,但是还是经常会想没有走过的路。

比如说

未来之迷思

这篇文章从五月拖到了十月,其实就是这里一直落不下笔写,那么就暂时算了吧,我会新写一篇的 :)