日子就这样在日复一日的不知不觉中逝去,一转眼,马上就到 2021 年的春节了,回想过去的一年,又给我了原本丰富多彩的人生增添了一笔炫彩。

之前在网上发现了一种可以记多年的日记本,分 3/5/10 年几种不同的规格,这样可以看到去年或者前年或者更早之前的同一天的日记,一时心血来潮,买了个 5 年的日记本,写了一段时间,发现有些鸡肋,因为要在同一页承载 5 年中同一天的日记,所以,每天能写的内容只能是简短的 3-5 句话,最后也就扔一边吃灰了,还是写 blog 更方便,没有那么多限制,可以自由发挥,还可以根据时间来索引。

GitHub Contribution

瞅了一眼 GitHub 首页的 Contribution 矩阵,发现 2020 年居然是我自 GitHub 注册以来贡献最多的一年,总共有 982 次提交,平均每天有 2.7 次提交,不过从下面的图上来看,中间有 7-10 月那几个月的时间比较稀疏,主要是上班太忙,完全没有时间来维护开源的项目,当时也意识到了这是个问题。

GitHub 2020 Contribution

离开快手

虽然在快手待的时间不长,但那段时间确实是太忙了,从 2019 年底加入开始,就一直没有放松过,极速版既要开发新的需求,又要跟主站保持同步,刚开始,产品上对于极速版还是比较谨慎,极速版只保留了主站的一部分功能,后来,在推广的过程中尝到了点甜头,便无所忌惮的往里面加功能,主站有的极速版都要有,主站没有的极速版的也要有,就这样,极速版完全失去了它的定位,在几个月的迭代下来,俨然已经比主站还要臃肿,我们经常调侃,极速版并不是大家想象的「更小更快」,而是极速「发版」(主站每两周发版一次,极速版每周发一次),7 月份的时候正在做快手极速版的相似推荐,而极速版跟主站的定期大同步也得继续,每一次大同步简直就是扒一层皮,到那会儿,已经经历过了 2 轮,马上开始第 3 轮。

所谓大同步,其实就是两个分支的合并,极速版最开始是从主站的 code base 拉出来的一个分支,两个产品的代码都在同一个仓库中,每个产品独立迭代,由于主站的研发团队规模远大于极速版,代码之间的差异日益巨增,而整个 App 的基础架构并不能支撑这样的业务结构,所以如何同步成了一个大难题。从工程师的角度来说,这种问题应该尽早的用系统性的方案来解决,拖得越久,同步的代价越大。

像这种以同一个 code base 来衍生不同的产品线的例子,在滴滴是屡见不鲜,这得从滴滴和快的合并那会儿的 The One 项目说起,为了更好的支撑多个业务线的快速迭代,当年是从上而下停掉需求一个月,对整个 App 的基础架构进行重构,虽然当时花费了不少精力,但在后来的合并 Uber 、国际化等一些项目中,新业务的孵化速度从最早的以月计提升到以周计,这就是基础架构的重构带来的生产力的提升。

至于为什么离开快手,加班对于我来说,并不算什么,为开源项目 contribute 经常到凌晨 2-3 点,我都没觉得有多累,真正的原因是一眼就能看到 3 年后自己的模样。离职前有朋友劝我再坚持几个月,先拿一波期权再说,我还是毅然离去,最近快手上市,很多朋友来问我后不后悔,短短数月,错过了一个小目标,我说:“钱固然重要,但人生的每一天都应该在快乐和希望中度过”。

拒绝滴滴

在得知我离职后,原滴滴的朋友联系到我,想让我回去把移动端的整体水平提升上来,长时间在业务和需求间疲于奔命,原来的基础架构也需要更新和升级了。那时候其实已经拿了 Coupangoffer ,并没有打算再看其他的机会,但在几次聊下来,有些动摇了,毕竟在滴滴待了那么些年还是有些感情的,但也很纠结,直到面对灵魂拷问:“你到底想要什么?”

我到底想要什么?职级?期权/股票?貌似这些都不是我最想要的,在职场上混迹了十多年,对于自己做的每一件事,我总是会问自己:“这样做是对的吗?如果不对,怎么样才是对的?”

在一个地方待久了,听一种声音听久了,人就会产生一种错觉,认为全世界都是这样的,因而习以为常,甚至纳入价值观,我想明白了,我最想要的就是不同的声音,不同的世界,不同的价值观,在这些冲突和碰撞中去学习,去成长,至于职级和股票,只要你用心为世界创造价值,这些迟早都会有的,如果一味去追逐这些,反而求而不得。

加入 Coupang

在国内的互联网圈,前些年大家对外企是趋之若鹭,后来国内的大厂崛起后,大家都倾向于进国内大厂镀金,几乎不怎么考虑外企的机会,可能上海还好一点,北京就呵呵了,当年,我在 SAMSUNG 待了一段时间,外企还是有很多东西让我感触颇深的。

企业文化与价值观

记得入职 SUMSANG 第一个月,就被安排入职培训,一群新加入的同事被安排到南京(总部在南京)的一个郊区的酒店里,参加为期一周的学习和培训,学习企业的文化和历史,并组织活动,表演节目。当年一起共事的同事每天都很开心,每周都有 Happy Hour ,经常有朝鲜族的同事做寿司给大家吃,我也秀过一次手艺 —— 做南瓜饼,以至于即使我离开了上海那么多年,每次去上海都能跟原来的一群同事们欢聚在一起,来个一醉方休。Coupang 同样也有 Happy Hour ,为过生日的小伙伴一起庆祝生日,大家在一起聊些轻松的话题,在 Coupang ,提得最多的几个跟价值观相关的词就是:

  • Wow the Customer (让顾客叹服)
  • Deep Dive (刨根问底)
  • Think Systematically (系统思考)
  • Hire & Develop the Best (选贤育能)
  • Amy High and Find a Way (志存高远,上下求索)
  • ……

来自 Coupang Leadership Principles

安全

SUMSANG 最让人受不了的就是安全检查,每次进出办公室都要经过安检闸机,就跟机场的安检差不多,保安会拿着设备在身上一顿扫,因为洗手间在办公区外面,上个洗手间,或者下楼抽根烟都要过一遍安检,这样每天来回要扫好几遍,有同事调侃,万一人家想要孩子的会不会扫成不孕不育?😂

除了安检,再就是信息安全,公司的网络除了能上 GoogleGitHub 其它的网站包括聊天工具,像什么 QQ 和微信,几乎都是不能用的,每天上班简直就是与世隔绝,上班除了手机必需的电子设备能带进办公区,其它电子设备一律不能带进来,有一次带了个 iPad 硬生生被保安给拦在外面,除此之外,连公司发的草稿本都要统一回收,这还只是在办公区,像工厂那边更严格,进入前还需要对手机摄像头贴上封条,出去再检查如果封条有松动,那事儿就大了。

对于信息安全,貌似外企比国内要严得多,这也正是体现了知识产权对于企业的重要性,像国内在办公电脑上聊个 QQ 或者微信是司空见惯,但是在外企,办公就是办公,生活就是生活,不要把私有财产跟公司财产混在一起。

Coupang ,虽然没有 SUMSANG 那么严格,但信息安全也是同样重要,办公的网络跟私人设备用的网络是分开的,幸好之前有在 SUMSANG 体验过,不然可能要花一段时间去适应。除此之外,在工作方式上,我也做了些调整,之前吃完午饭习惯性的睡上一个午觉,差不多一个小时或者更长,然后醒来开始干活儿,每天早上上班也是去得晚,导致下班也会很晚,现在,为了让自己更加集中精力,每天中午索性就不午睡了,尽快把每天计划的任务干完,这样就可以按时下班,不至于拖到晚上 9-10 点。

招聘

每天的工作,主要就是 4 件事:招聘、开会、撸码、写文档,对于一个快速成长的团队来说,招聘是重中之重,而且 Coupang 对于招聘也是非常的严格,不仅仅是对于候选人严格,对面试官也是相当严格,针对每位候选人,不同的面试官都要聚焦在不同的领域,比如:第一轮算法,第二轮偏工程的编码,第三轮是编码进阶,第四轮是架构设计,所以,每轮的面试官都各司其职,针对不同的职别,设计不同的问题,面试完了还需要写面试评价:

Question: (问题描述)

  • ……

Expectation: (对候选人的预期)

Solution: (候选人的解决方案)

Pros (候选人方案的优点)

Cons (候选人方案的缺点)

Gap to Next Level (与下一个职别的差距)

每轮面试 1 小时,写面试评价也得花 1 小时,而且还是全英文,就跟写小作文一样,要做到评价尽可能客观公正,不能盖帽子,笼统的说「Java 基础不行」,「Android 基础不行」,必须指出事实,是什么问题没答上来。整个招聘流程跟很多国内大厂不一样,国内的面试流程一般是:如果前一轮面试官 SAY NO 就不会进行下一轮,而 Coupang 不是,每一轮的面试是独立进行的,下一轮的面试官在面试开始前是不会知道上一轮面试官的评价的,这样保证了不会因为个别面试官的负面评价导致整个流程的终止,除非超过一半的面试官给 NO 才会提前终止面试流程。

开会

Coupang 开会并不是一件轻松的事情,如果经常需要跟不同国家的、不同语言的人讨论,需要提前做大量的功课,所以,文档是开会所必须要准备的,如果有其他国家的人在,就需要预约同声传译(中-韩、中-英),当然,文档也就得需要用英文写了。

在这里我还学会了一项技能,就是开会时一边说一边用英文做会议纪要,这样确保相互之间对同一件事情的理解是一致的(On the Same Page),不会因为同声传译而导致信息的失真,毕竟开会讨论的内容都是一些技术性的东西,翻译小姐姐也不一定能 100% 表述正确,如果有些内容比较复杂的时候,还需要提前跟翻译小姐姐解释,当然,还有一些专业术语,缩写啥的也需要提前跟翻译小姐姐打好招呼。比如:有一次翻译小姐姐让我给她解释什么是“引用”,给她解释了半天,结果她幽幽的来一句:“就是跟指针一样的吗?”😂 没想到她居然还知道指针,要知道这样,就不用大费口舌了。

写文档

除了技术讨论,还有架构 Review ,参加 Review 的人员都是架构委员会的成员,在被 Review 之前,需要做好足够的功课,最重要的就是文档,按照统一的格式写,对于开发来说,写文档的时间可能都快赶上撸码的时间了,不像国内的一些厂,从头到尾都没有一份文档,完全靠口口相传。当然,除了技术文档,还有一份很重要的文档就是 Onboarding (新人入职看的)文档,每个团队都有自己的 Onboarding 文档,保证了团队的知识的传承,不会因为个别成员的离开而丢失或者出现断层。

撸码

国内的厂对代码的管理可能相对来说不是特别严格,一般也就是 Check StyleCode Review 也就完事儿了,但在 Coupang 对于代码质量是相当的重视,Code Review 的工作首先得经过 CI pipeline 的检查,包括 SonarQubeAndroid/Swift Lint 等,只有 CI pipeline 的检测通过了,其他工程师才会来 review 业务逻辑,review 完成后还会有自动化测试,没有问题才会被 merge

绩效考核

Coupang 的绩效考核的标准是以 Leadership Principles 为考核的依据,只有 Leadership Principles 里有的项才考核,没有的项不在考核的范畴,所以,无论是自我评价还是 Peers 的评价,都不能胡诌,需要以 SBI (Situation Behavior Impact) 的形式来进行评价,尽量做到客观和符合事实,同级互评如此,领导给下属的评价也是如此。

总的来说,规范的流程是 Coupang 跟很多国内大厂的明显区别,当然,还有工程师文化,拒绝一切以牺牲产品质量而赶工期的行为,毕竟上线出了问题最后背锅的还是工程师,还要花时间来 review incident ,而且 review incident 也不是一件轻松的事情,所以,要把这种行为扼杀在摇篮里。