[转]十年码农:我在加入亚马逊 5 个月后选择离职了
我于2018年1月28日开始在亚马逊工作。在此三周前我和我美丽的妻子,还有我们的猫猫一起降落在了温哥华国际机场。刚到时我们最担心的是猫猫,从特拉维夫到温哥华18个小时的飞机对所有生物来说都是一个挑战。
事实上猫猫很好,它恢复得很快,并开始在我们租的AirBnB公寓里探索。与我们预想的一样,温哥华阴雨多雾,但是风景如画,与阳光明媚充满活力的特拉维夫不同。我们非常兴奋,因为我们花了6个月的时间为搬家做准备,这一天终于到来了。
1. 加入亚马逊的经过
一切都从2017年6月开始,当时我正在Rollout.io工作,这是一家小型的创业公司,我突然觉得我需要做出一些改变。我有在英特尔工作6年的经验,我知道在一家我不喜欢的企业工作是怎样的情形。然而,我决定申请温哥华的一个职位,这份工作是亚马逊在特拉维夫举办的大型招聘活动中推出的。这听起来像一次伟大的冒险,也正是我所需要的改变。
招聘流程非常标准:
- 在线编程挑战——算法问题,类似于你可以在编程挑战网站上找到的那些题——很简单,我没有做准备。
- 与人力资源部进行电话面试——有关计算机科学的基础知识:大O表示法,算法、名称,术语——很简单,我也没有做准备。
- 面对面的面试——详情如下。
我通过了电话面试,而且他们为我安排了面对面的面试,我开始认真对待这次申请,我花了大约3周的时间,每天晚上花2个小时练习计算机科学的问题。此外我还阅读了《Cracking the Coding Interview》(程序员面试经典)。但我很讨厌这本书,读了感觉书里说的都不对,简直就是在浪费时间。我觉得自己永远也不需要这些知识。
我毕业于一家还不错的计算机科学院校,在学习期间我遇到过非常聪明的人,他们都不会做遍历树和计算大O。在其他公司工作期间,我也见过没有学位却非常杰出的、成功的工程师。在英特尔和Rollout工作期间,我作为面试官参加了无数的面试,我强烈反对白板面试,但这次我决定去参加面试。
我阅读了3-4篇关于亚马逊的招聘经历和面试过程的文章,根据我的经验,我感觉自己的准备已经很充分了。
在面试当天,我遇到了4名亚马逊的员工,与我预想的完全一样他们分别负责算法问题、系统设计、架构设计、数据结构问题,所以毫无意外,问题并不太难。他们都很有礼貌很官方,只有一个人比较严厉,每个面试官都问了1-2个问题。
两周后,我收到了一封带来好消息的电子邮件。在第一次Skype的面试中,他们说我有资格担任SDE1的职位,但我不知道这是什么意思。上网搜索了一下,发现这是“大学毕业生”的水平——好惨。我有大约10年的工作经验,但是,好吧,也许我可以在面试中表现得再好一点。
我收起自尊心决定无视这个头衔,如果我确实像自己想象的那般好,那么他们会看到,并很快给我升职,对不对?
招聘人员向我解释了搬家的流程,我们没有谈及搬家补助。在预定好的下一次Skype电话会议中招聘人员并没有出席,我也没有收到任何电子邮件或解释。(这对亚马逊的招聘人员来说非常普遍)。
两周后,另一位招聘人员联系了我,她选择了我们的搬家流程。我们开始谈判,因为最初的提案太糟糕了。我查看了Glassdoor和其他网站报告的搬家平均补助金额,并为接下来的谈判制定了策略。
招聘人员提到公司的政策规定发放的补助不能超过职位的上限,她还说批准了我的Offer的是另一个团队,她只是负责来通知我。
经过三轮交涉后,我同意签署的offer比原来多了35%。
谈判很难,我提前做了功课,但是依然觉得谈钱就很不舒服,那个招聘人员是个谈判高手,我相信她每天都有几十次这样的谈话。所以学习如何谈判真得很重要!
我询问了我需要在工作中做些什么:谁是经理、团队中有多少人、技术栈是什么、工程实践是什么。然后招聘人员把我转给了招聘经理,我终于获得了有关实际工作的一些信息,这也是第一次我对自己的工作有了初步了解。
我要进入的是以Java为中心的亚马逊电子商务支付团队,他们有真正的商业项目, 技术栈有Java基础、持续集成、测试、代码审核、团队活动等等,听起来不错。最终,我签了那份电子合同。
2. 在亚马逊的5个月
除了搬到新家的兴奋之外,我对加入亚马逊探索公司内部也饶有兴趣,这是一家伟大的科技巨头,我想知道它究竟如何。
我在亚马逊遇到了非常聪明和有才华的人,也遇到了很多好人。他们来自世界各地:中国、阿根廷、巴基斯坦、乌克兰、土耳其、俄罗斯、以色列、越南、匈牙利、德国…..后来我发现在温哥华以及加拿大的大城市拥有如此多元文化的专业人士是很平常的事。
我加入了亚马逊消费者部门的团队,这是负责公司在线购物业务(或多或少)的部门。我很乐意分享我们团队的更多详情,但是我不确定保密协议是否允许。我可以说这是一支经典的老派团队,所有的亚马逊技术栈都是以Java为中心自主开发的,用于源代码控制、管理依赖关系、持续集成和持续交付的内部工具集。没有任何可怕的操作负载或糟糕的遗留系统需要支持,也就是说这是个非常“健全”的团队。
关于公司的领导原则和其他废话连篇的在线“文化”培训让我头晕脑胀,我感觉自己加入了一个宗教组织,正在被洗脑。
据说,每个员工在日常工作中都应遵循领导原则。如果使用得当,这些原则实际上很有意义。随着时间一天天过去,我发现这些原则最常见的应用是创造性地找到最能支持自己的领导原则。
- 你的想法不被某人接受吗?你必须赢得信任。
- 想证明特定的解决方案吗?展示出来让大家相信客户会喜欢这个方案。
- 想说服某人做乏味的工作?坚持最高标准。
- 想抄近路?发明和简化。
过了一个多月后,我逐渐开始适应新的环境。我的队友乐于助人、友好、管理要求很高但很友好。
我们团队的产品高度依赖于其他服务,而且正是亚马逊所谓的“客场团队”,即你需要更改由另一个团队运行的服务的代码。
这种经历非常糟糕,其他团队既没有环境也没有动力支持你,我们做的改动提议都被拒绝了,然后我们就与这些“手握生杀大权的人”没完没了的开会讨论,花了很长很长时间。
而且这中间我在工程实践方面也遇到了一些小问题。我对内部工具(持续集成、持续交付、构建工具)感到深深的失望,因为它们实际上很好,但是与现代SaaS公司提供的当前开发人员经验相比还不够好。
我确实看到了很多管理工作,旨在为开发人员创造一个良好的环境(无论是精神还是技术)。实际上,我对于公司花费如此多的时间关心团队的健康感到十分惊讶。我在亚马逊工作的时间不够长,没有看到这个过程最后的结果,但是无论怎样我都不喜欢这种方法论。我有种感觉,许多流程都是因为公司要求才做的,而不是为了达到任何效果。
两个月后,可以说我成为了一名积极的团队成员,我担负起了一些责任,非常努力地工作,努力遵守严苛的期限。但我没有做太多编程的工作,因为我的时间分配大体如下:
- 20%的时间编程;
- 50%的时间搞团队合作:读写文档或邮件以及短信对话;
- 30%的时间在开会。
我觉得我可以重新分配我的时间,但考虑到我的Java水平不是太高(我过去的工作中用的主要工具不是Java),而且也没有亚马逊特有的经验(不如团队里这个职位上的其他成员)。
在讨论工程实践和业务决策时,我的经理曾经提到“亚马逊方式”一词。我觉得如果你没有真正的理由时,就可以用这个词来回绝不必要的变化或制止别人的意见。
对我来说,在亚马逊最难的就是应付“部落主义”和“事实”主义,尤其是与工程师领导沟通的时候。这些人是高级软件工程师和“手握生杀大权的人”,他们得到了整个“部落”的信任,可以批准重要的设计和架构决策,执行公司政策,也是在特定领域拥有丰富知识的权威人士。
我的经理告诉我,我还没有赢得信任,大家不相信我的判断,我需要与决策者建立良好的关系——我同意,但这就是所谓的“办公室政治”。
我感觉我的日常生活中充满了负能量:想办法掩盖过错,想办法保持控制权,想办法只做有助于升职的项目,抵制思想,盲目地遵守流程而无法区分重要和不重要的事情。
随着时间流逝,你也开始使用这种“获取原则的艺术”,并在遇到其他人和你有冲突的情况下,努力找到一个支持你的观点的原则。
我的确成功地推行了一些架构和设计解决方案。对我来说,感受到自己的工作带来的影响力非常重要(我觉得这对所有软件开发专业人员都很重要)。然而,那都不是愉快的经历,我感觉很痛苦,主要是精神上的痛苦。
我已经在亚马逊工作了4个月,我感觉我有足够的数据来反映我在亚马逊的经历了。
我与同事和朋友交谈过,我想验证我的观察结果。我害怕犯错,总的来说这份工作很不错,而且我手头还有一些受限股票。另外,我无法在其他公司工作,因为我刚刚签署了一份只能在亚马逊工作的协议。
在亚马逊工作了5个月后,我辞职了。
3. 离开亚马逊
以下是我的观察总结,我确信亚马逊(或者至少是我工作的团队)不适合我。
缺乏技术挑战
我所遇到的主要算法/编程/智力上的问题有三种类型:
- 处理其他系统的技术债务;
- 严格遵守政策或标准;
- 与内部开发环境作斗争。
我几乎没有遇到需要寻找有效的解决方案/优化/实施安全策略等有趣的问题。我需要花费3-4年的时间才能到达“信任”的水平,迫使我面临不同规模和影响的挑战。
领导
我在前面提到过我在亚马逊遇到了很多才华横溢、聪明睿智的人。然而,对于亚马逊来说具有明显特征的“成功”和“重要”的人,即SDE3,“手握生杀大权的人”和经理,却不是我想要成为的那种角色模型。
此外,我看到了不少高级工程师和我想象得不太一样(他们的专业技术不过关,喜欢搞办公室政治,或很傲慢),这些人成功地驾驭了他们的职业生涯,还成为了亚马逊及其公司文化认可的领导人。
这说明了什么?
压力和荒谬
在亚马逊工作的5个月是我工作压力最大的时候。这种压力有多种形式,有一些是我个人的特别经历:
- 管理层对团队施加的压力(这是由于他们的管理层给他们的压力)。这里我指的是不健康的压力,例如提醒你完成任务是你应尽的责任,尽管你需要依赖第三方来完成这些工作,即“客场团队”的经历。
- 半非法的出差要求,我需要出差到西雅图去加强合作和加快流程。管理层希望你随时准备好,花6个小时的个人时间开车往返西雅图。虽然从法律上说允许你去美国参加培训或会议,但是为了在截止时间前完成任务,你常常需要在周三下午6点开车(或乘坐公共汽车)去西雅图,然后在那边的会议室里工作上两天。我看到很多人都有这样的经历。前几天我被一名边防官员审问了20分钟,差点被美加边境驱逐出境,因为我不小心说成了去西雅图为亚马逊工作。我可能会被拒绝在未来5年内进入美国!
- 没完没了的荒谬的办公室政治。管理层很乐意花费5000美元把一个员工送到拉斯维加斯参加为期4天的AWS会议,但是为了在西雅图出差期间获得额外的80美元补贴入住一个好点的房间,就需要说破嘴皮子才能得到批准。
升职
我在上面提到过在我最初决定接受这份工作的时候,我希望通过证明自己,就可以迅速得到晋升。可悲的是事情并非如此。
仅靠专心工作是无法得到晋升的,想升职就必须专心想办法升职。
如果想从“初级工程师”(SDE1)晋升为“工程师”(SDE2),那么你需要获得一个“表格”,上面列出了晋升所需的资格,例如:
- 写足够多的代码;
- 写好的代码;
- 做一些与支持相关的工作;
- 写一些文档等。
除非你刻意将这个表格填好,而且还符合良好的领导原则,否则你将无法获得晋升。做好本职工作,帮助公司发展还远远不够。
我想强调,“做好本职工作”指的是:以优秀的方式完成你的工作,表现优异。我从来也没想着“仅靠”完成工作就可以得到晋升,我只是希望通过工作中的出色表现和带来的帮助性,得到晋升的机会,而不是去写升职文件。
从SDE2到“高级工程师”的升职过程与之类似,只不过你需要一个更大的表格,而且你必须足够幸运:
- 有一个好经理;
- 参加好项目;
- 以升职为目标,不断完善这个表格;
- 参与办公室政治,并得到同事的推荐(但不需要所有同事,只需要得到那些重要的同事的推荐)。
当然,这与其他大公司没有什么不同,这是一种行业标准,但是我喜欢的升职是因为你很优秀而且对公司很有价值,晋升是公司对你承担的责任和带来的利益做出的奖励。
薪酬
对于提供受限股票作为一部分薪酬的公司而言,这是一个常见问题,但是这存在操纵性的问题,因为公司可以利用受限股票来误导员工的薪酬方案。
总的来说,亚马逊给出的薪酬还不错,至少与温哥华都市区的其他公司相比还不错。虽然不如其他科技大公司。
假设你总共获得了15万的薪酬。其中包括:
- 11万的基本工资。对于大多数金融机构(例如抵押贷款或银行特权等)来说,这算作你的收入。注意,当你拿到就职证明信的时候,上面的金额就是你的收入水平。,你要确定可以从公司拿到这么多收入。
- 2.5万的签约奖金。这是公司诱惑你签合同的方式,重要的是你需要明白奖金所要缴付的税率是不同的,当时只有大约50%的奖金进了我的银行账户。可悲的是,等我发现的时候已经太晚了。
- 工作年满一年可以获得1.5万的受限股票。这个想法是让员工分享公司的成功(通过股票的价格表示),鼓励员工努力工作,让公司取得更大成功。实际上,在如此庞大的公司中,员工对公司的成功没有任何影响,而股票受到全球趋势或政治的高度影响。在我写这篇文章的时候,亚马逊的股票降到了1598美元。而我签约时估价约为1650美元。所以,实际上公司承诺你的15万/年是达不到的。在大多数情况下,股票价格会上涨,但在下一次绩效评估中,他们会告诉你:“你的总薪酬是19万,看看股票价格,所以我们只能将你的‘基本工资’提高3%,以抵消通货膨胀。”你可以想象下要是你说“我大概可能会全心全意工作”,看看你的老板或招聘人员会怎么回答。另外,你在这家公司工作的时间越长,你的收入中来自受限股票的比例就会越高。这种方式适用于该行业内的大多数公司,亚马逊也一样。这是行业标准,而我认为这是操纵和误导。
4. 总结
亚马逊有很多快乐和满意的员工,我在亚马逊工作时遇到了很多聪明、才华横溢、友好以及我尊重和喜爱的人。
这家公司的规模如此巨大,如果没有严格的政策和明确的流程则很难管理。我不知道公司内的其他团队是否也有与我的经历相同的问题。可能我不是一个适合这种公司文化的人(至少目前不是)。但我写下我的观察结果是希望可以帮助其他人在加入亚马逊成为一名工程师之前,能够做好心理准备。
可能今后我会改变,而且想想这篇文章,可能亚马逊别的团队有合适我的职位,但是现在我认为亚马逊是一个伟大而独特的企业,但也只是一个普通的公司罢了。
原文:https://medium.com/@andrewgoldis/why-i-quit-amazon-just-5-months-after-ive-started-4ce872520f02
作者:Andrew Goldis,Web开发。
译者:弯月,责编:郭芮
[resource]十年码农:我在加入亚马逊 5 个月后选择离职了