谷歌云六年职业生涯:机遇、挑战与成长
本文作者在谷歌云(Google Cloud)部门工作六年半,近期成功晋升至L6级别。回顾这段职业生涯,他认为充满了机遇与收获。作者希望通过分享自己在谷歌云的所见所闻与感悟,为读者提供有价值的信息。
关于谷歌云(Google Cloud Platform, GCP)
作者于2014年春季加入谷歌(Google)。当时,谷歌云(GCP)业务刚刚起步,尽管谷歌计算引擎(GCE)已在开发,但高层并未给予足够的战略重视,甚至有传闻称2014年前曾内部讨论是否放弃云业务。最初,谷歌云是技术基础设施(Technical Infrastructure, TI)下的一个分支,许多云产品组也是由原TI组扩展而来。随着业务的不断壮大,如今谷歌云已发展成为一个独立的业务部门(Product Area, PA),而TI则成为支持谷歌云基础设施的关键部分。
当前,谷歌云(GCP)正处于高速发展阶段,致力于吸引中小型企业、非纯IT行业企业以及金融公司。这些企业通常有大量的IT需求,但又不愿投入过多资源自建IT解决方案,因此谷歌云(GCP)成为了一个颇具吸引力的选择。得益于谷歌在基础设施方面的行业领先优势(尤其在存储、集群管理和网络方面),谷歌计算引擎(GCE)和谷歌云存储(GCS)的性价比极具竞争力。
尽管谷歌云(GCP)在性价比上具有优势,但其市场份额仍落后于亚马逊云服务(AWS)和微软Azure。这背后的原因复杂,其中一个重要因素是谷歌云在企业级功能方面的相对缺失。亚马逊云服务(AWS)拥有先发优势,微软Azure则具备与生俱来的企业级基因,而谷歌云(GCP)则面临起步较晚且缺乏IT圈外企业级产品的双重劣势。许多企业级功能,特别是对于金融公司而言,是业务合作的决定性因素,因为它们需要满足严格的政策法规要求。值得庆幸的是,在托马斯·库里安(Thomas Kurian)接管谷歌云(GCP)后,内部战略已调整为重点发展这些企业级功能。作者所在的团队,近几年的主要项目都聚焦于企业级功能开发,高层也为此投入了大量资源,功能完成后,大客户的合作协议也随之签订,这带来了极大的成就感。
谷歌云(GCP)内部的团队主要分为两大类:
谷歌(Google)的员工福利
谷歌的员工福利曾经非常优厚,尽管随着公司规模的扩大有所调整,但总体依然具有竞争力。在绿卡办理方面,谷歌提供公司层面的支持,无需经理批准,只要持有H1B签证即可办理。公司政策明确支持EB2到EB3的降级申请,所有相关费用(如体检费、照片费、降级申请费)均可报销。作者回忆,当年排期公布后,公司律师在三天内就发邮件通知他提交材料准备降级,效率极高。此外,谷歌长期以来较少裁员,避免了在永久劳工证(PERM)申请过程中因公司裁员导致流程中断的情况。
早期,谷歌每年还会发放圣诞礼物,作者曾收到智能手表和Nexus手机。虽然现在变成了400美元的捐款额度,但其他福利依然存在。例如,每月75美元的网络费用报销,这项福利在疫情前就已提供。公司手机报销通常也存在,大部分需要On-call的团队可以轻松申请,不需要On-call的团队则需根据经理或总监的意见。
谷歌的员工食堂普遍受到好评。通常而言,办公室规模越大,食堂质量越可能有所下降,因此山景城(Mountain View, MTV)和森尼韦尔(Sunnyvale, SVL)的食堂通常较差。相比之下,纽约(New York)的食堂非常出色,菜品多样性和质量俱佳,不像湾区(Bay Area)食堂那样频繁出现鸡肉菜肴。伦敦(London)的食堂甚至提供粤式点心,尽管伦敦办公室的东亚工程师人数不多,但这体现了其对多元化饮食的重视。作者所在的西雅图(Seattle)地区,食堂多样性也不错,但随着员工数量的增加,质量有所下降,全鸡宴的次数正在增多。
在疫情期间,谷歌为员工提供了300美元的外设购买补贴和1000美元的办公家具购买补贴,这些都是公司层面的政策,无需经理批准,体现了公司对员工的关怀。作者很高兴地添置了一张Fully品牌的升降桌和一个USB-C集线器。值得一提的是,谷歌的软件工程师(SWE)参与On-call(随叫随到)工作是有奖金的(SRE没有),最高级别(Tier 1)的奖金基本相当于100%的基本工资。作者所在的团队On-call属于Tier 1,因此大家争相参与On-call。
谷歌的技术文化与开发环境
2014年谷歌云(Cloud)业务刚开始兴起时,谷歌著名的分布式系统“三驾马车”技术已无处不在。进入谷歌后,作者发现这些核心技术已经进化到了下一阶段,不禁感叹谷歌在分布式系统方面的技术积累之深厚。
在日常开发方面,谷歌最强大的工具之一是其内部代码搜索系统(code search system),这是一个可以搜索公司内部所有代码的网站,并且每天更新索引,使得代码引用和查找极其方便。这意味着公司内部几乎所有代码都是公开的,员工如果有时间和兴趣,完全可以深入研究gRPC或Spanner等核心系统的实现细节。
谷歌的所有代码都存储在一个中央代码库(central repository)中(尽管这个代码库服务器内部是分布式的,但对用户而言呈现为集中式服务)。所有日常开发工具都直接对接一个云端的虚拟文件系统,用于编写、编译和提交代码。整个持续集成/持续部署(CI/CD)系统也基于这套分布式系统,全程云端化(因此公司发放的笔记本电脑基本只用作浏览器)。
在这样强大的基础架构支持下,日常开发速度非常快。作者的一位前微软(Microsoft)同事加入谷歌后表示,同样大小的测试集在微软需要运行三四个小时,而在谷歌不到半小时就能完成。谷歌的生产自动化系统(production automation system)也极其强大,新员工只需查阅内部文档,通常在一周内就能将服务器上线。作者认为,这套高效的开发支持系统,是谷歌无需招聘过多人员却能支撑庞大业务体量的重要原因。
然而,凡事有利有弊。谷歌以其工程师文化而闻名,工程师们最喜欢解决困难问题:将一个项目从零做到80%是最令人兴奋的阶段。但剩下的20%“长尾”部分则显得尴尬,完成它们需要耗费大量精力,却对晋升没有太多好处。因此,你会看到许多优秀的项最后未能完美收尾,最初的开发者可能已经凭借前期成果获得晋升并离开了,留下后续的烂摊子。你只能希望自己需要的功能不属于这20%的“长尾”部分,否则日常体验可能会大打折扣。
职业晋升与薪酬发展
近几年,谷歌一直在改革其晋升流程,作者认为这些是积极的改变,毕竟公司规模日益庞大。大约在2016年年中绩效评估之前,谷歌的晋升流程不分级别,都是一套标准:员工需要准备一份冗长而详细的晋升材料(packet),描述自己所做的项目以及如何满足下一级别对难度(difficulty)、影响力(impact)和领导力(leadership)的要求,然后由公司范围内的晋升委员会进行审核。这个流程最大的特点在于:
这种方式在统计学层面上确保了晋升的公平性,但问题在于你需要把工作内容写得非常详细,以便不同业务部门的审核人员能够理解你的贡献,因此晋升材料通常冗长乏味。
随着公司员工数量的不断增加,这种流程所需的时间变得难以忍受。于是,从2016年年中绩效评估开始,L3到L4以及L4到L5的晋升改由所在组织(Org)内部的委员会决定,并且流程基本依赖于经理准备的材料(员工无需再准备冗长的晋升材料)。从今年开始,L5到L6以及L6到L7的晋升也改为在业务部门(PA)内部的委员会决定,但经理依然不参与这个过程。作者个人认为,这两项改动对于从事基础设施(Infra)工作的员工而言都是好事。以前的流程虽然在统计学上公平,但人的判断很容易产生偏见。
根据作者的观察,广告(Ads)部门员工的晋升速度通常高于技术基础设施(TI)部门的员工,级别越低越明显。一个主要原因是广告部门的项目更容易产生数百万甚至数千万美元的营收,写在晋升材料上,其影响力远超技术基础设施部门员工耗时两年却鲜有人使用的项目。基础设施项目本身耗时较长,完成后等待用户使用又需要至少半年,整体周期较长。现在改为在组织和业务部门内部竞争后,广告部门的员工也需要面对更激烈的内部竞争了。
谷歌晋升后基本工资(base salary)会有所增长,但根据作者观察到的数据点,晋升带来的基本工资涨幅通常是一个固定数字,并不会比年底正常调薪高出多少,甚至可能更低。作者L4到L5和L5到L6的晋升,其基本工资涨幅均不如前一年的年底调薪。当然,基本工资是奖金(bonus)和股票(refresh)的基础,所以总收入加起来可能不会差太多。总体而言,在谷歌晋升带来的收入增长有限,与外部招聘进来的员工相比,薪资较低几乎是肯定的,在公司待的时间越长,这种差距越明显。作者看到周围不少同事跳槽出去后,级别提升一级,收入也大幅增长。他认为,在谷歌的员工不必过分执着于晋升,升不上去可能只是公司的问题,而非个人能力问题,换个公司很可能获得更大的工作范围、更高的薪资和更愉快的工作体验。
作者的职业经历与西雅图(Seattle)生活
2013年底,谷歌(Google)股价突破1000美元,开始大规模招聘应届毕业生。那一年,谷歌在卡内基梅隆大学(Carnegie Mellon University, CMU)的面试直接安排在匹兹堡(Pittsburgh)的办公室进行,许多学生都获得了面试机会,四轮面试结束后一周内就能拿到录用通知。题目难度最高也仅为LeetCode中等水平,作者周围许多朋友都拿到了录用通知,大家都很开心。最令人满意的是,当时可以自由选择北美任何一个办公室入职,这对于一心想去西雅图(Seattle)的作者来说简直是完美的选择,最终他愉快地选择了谷歌西雅图办公室。
尽管很早就拿到了录用通知,但人力资源部门(HR)似乎把作者给忘了,直到临近入职前两周,在作者的催促下才安排了团队匹配(team match)并确定了团队。然而,这个团队是一个临时拼凑的团队,如果是现在的作者肯定会立即拒绝,但当时不懂就直接加入了。结果,三个月后这个团队就解散了,经理也转去开辟新的方向。
当时作者有三个选择:跟着原经理、加入谷歌云存储(GCS)团队、或者加入他现在所在的团队。当时作者感到一头雾水,但他现在所在的团队成员都是中国人,于是就选择了加入。现在回想起来,这真是个“血赚”的决定。他现在所在的团队当时刚起步,他有机会与一位L7和一位L5级别的同事一起工作,每天共同编写代码、讨论设计、搭建服务器和各种自动化系统。这种从零开始搭建系统的经历在谷歌非常难得,现在几乎不可能有这样的机会给应届毕业生。经过六年的发展,这个团队从3人壮大到40多人,项目也成长为谷歌云(GCP)的核心基础设施,并占据了有利地位。
作者的老板非常擅长发现并创造项目和机会,作者自己的晋升项目也都是老板从无到有挖掘出来的。根据作者多年的观察,谷歌内部有许多能力超越其级别的人才,但问题在于好的项目是有限的,特别是能支持晋升到L6级别的项目更是稀少。因此,一位技术实力强劲且善于创造机会的老板,对于你的职业晋升至关重要。
西雅图(Seattle)生活与科技发展
如今,西雅图(Seattle)已成为求职者热门的选择,但在2014年作者刚来时,西雅图整体上还比较荒凉,谷歌办公室只有四五百人,中餐馆也较少。这些年,西雅图地区已成为各大科技公司争相扩张的重点区域,中餐业也发展迅猛,现在可以品尝到许多高质量的中餐,例如鼎泰丰(Din Tai Fung)、豆捞坊(Dolar Shop)、海底捞(Haidilao)、小肥羊(Little Sheep)等。甚至有湾区(Bay Area)的朋友来西雅图品尝豆捞坊后,都认为其水平在湾区也属顶尖。
尽管房价也上涨了好几轮,但按照湾区(Bay Area)资深人士的说法,西雅图的房价依然“太便宜了”。
对于不熟悉西雅图的人来说,印象中这里可能是一个多雨的城市。作者刚来的那一年,冬季确实可以连续下一两个月的雨。然而,现在西雅图的冬季降雨量已经少了很多,差不多处于正常水平,这可能与全球变暖也有关系。虽然平时都统称“西雅图”,但这里的大部分华人居住在东边的贝尔维尤(Bellevue)、雷德蒙德(Redmond)、柯克兰(Kirkland)地区,简称BRK地区。西雅图市区本身就比较混乱,近年来情况更加复杂。贝尔维尤(Bellevue)和雷德蒙德(Redmond)的秋天都非常美丽,作者当年在亿客行(Expedia)面试时看到贝尔维尤(Bellevue)的秋景,就决定来这里发展(当然也因为华盛顿州没有州税)。从西雅图开车到温哥华(Vancouver)也非常近,只需大约3小时,那里的美食又提升了一个档次。现在回看,作者感觉当年选择西雅图真是个明智的决定。他希望未来能有更多的朋友来西雅图发展。
