近况更新 | 为什么我离开了工作五年的蚂蚁金服 🐜
离职那天习惯性的拿起手机,想打开钉钉查看消息,才发现应用已被删除。瞬间竟有股如释重负的感觉,一直绷着的弦突然间松下来了,一种难以描述的轻松感。
但话说在前,从未后悔加入蚂蚁,过去五年无比精彩且充实的旅程,是人生难得的一份宝藏。
TOC
一、关于我
17 年大学毕业后,只身来到上海,寻觅了一份创业公司后端开发的工作,成为一名打工崽。
某天工作大约满一年时,命运的齿轮开始悄悄转动。收到来自蚂蚁的一份邮件,便顺水推舟进入面试,并最终只身前往杭州加入蚂蚁,成为了一名业务 SRE(Site Reliability Engineer)。
p.s. 为什么离开创业公司加入蚂蚁? 创业公司项目管理开发规范,同事技艺高超友善,唯一的缺点是贫困。
而加入一家“大厂”,应该是每个学历普通资质一般程序员,遥不可及的梦想。
依稀记得面试阶段,对方提问:你维护的业务线上一共维护了几台机器?当时我掰着手指回答后,对方笑了一下,兴奋的说有没有兴趣加入蚂蚁,一起管理上万台服务器(当然加入后,机器也轮不到我们维护 :P)
二、为什么离开蚂蚁
Pros Good place to earn money. Cons High pression physically and mentally.
好的地方
1)清晰的成长路径 & 丰厚的经济回报
每个层级有清晰的能力模型(点/线/面),标准规范的晋升流程。在蚂蚁五年中,比较幸运参加了三次晋升答辩,成功了两次。
high performance 与晋升,对应经济收入的指数型增长。相比第一份工作,奋斗五年后年收入增长超过五倍📈
2)专业的同事
作为每天共事的同事,其对应的专业程度,是工作幸福感的巨大因素之一。而蚂蚁的同事,无论是个人能力,还是工作负责程度,都令人无可挑剔。
3)极具“挑战”的工作
就如加入蚂蚁面试的小故事一样,海量的业务体量,带来了前所未有的技术和业务挑战。
作为一名 SRE,和传统运维搬机器的刻板印象不同,需要深入理解业务:例如一笔支付请求链路由上百个微服务节点组成,SRE 需要了解每个节点的作用以及依赖,甚至深入业务系统的源码,针对不合理的逻辑直接提交 PR 进行优化。
分享一个津津乐道的小故事:记得一次线上会员系统的数据库抖动了 30s 后自动恢复,但导致某个支付咨询业务的成功量下跌超过 30%,触发了 P1 故障。故障复盘时,所有人的焦点都集中在数据库的稳定性优化,但大家都忽略了一点:一条成熟的支付链路为什么对会员系统的数据库存在强依赖??也就是说在支付链路中,理论上即使会员系统数据库出现问题,99% 的请求也应该由缓存处理,不应该受到影响。
所以我花了一周时间,阅读了会员系统的 java 源码,终于发现其提供的类似 get_or_create
的服务,在一开始准备上下文 thread local 的过程中,直接请求了数据的当前时间,用于后续实际触发注册的输入。所以即使用户信息已注册,并存储在缓存之中,还是会依赖数据库(不合理的 hard dependency)。
于是灵机一动,参考之前 Django 框架中 ORM “懒加载” 的设计,对获取数据库当前时间的方法进行了改造(考虑系统内其他 rpc 服务都可以规避数据库强依赖问题),只有当真正使用该属性时,才会发生数据库的交互。最终成功提交 PR 并发布。
但更进一步,面向未来,如何避免其他系统,以及持续的代码改动再次引入该问题呢?除了通过日志离线清洗产出 T+1 的报表进行预警,或自动化线上回归演练,来尽早规避该问题。
虽然不像创业公司,每天可以接触新的有趣技术玩物,在蚂蚁却更像一个创业团队,锻炼如何将一件事“做成”的能力:深入业务 -> 定义问题 -> 整体逻辑 -> 技术落地 -> 量化度量 -> 未来规划..
举个不恰当的例子,博主每个财年开始后,每天工作时都会思考一个问题,也就是如何在你下个晋升答辩中,如何将今年的故事说的更加生动,更加打动评委。也许,凑巧,博主在写故事上有一些独特的天赋🤔
但如果每个“小P”工程师都需要不断思考自己从事工作的业务价值,对公司整体业务达成可能有益,但对于个人工程师来说,除了掉头发,会有一些负面的影响。
负面因素
资本剥削 -> 优绩至上 -> ^^个人市场竞争力^^下滑
1)无情的被剥削者
读完同事推荐的《《资本论》的读法》》后,竟才恍然,作为打工人(也就是被剥削者),本质与富士康的工人没有本质区别。
为什么工作这么“累”?农耕时代->工业时代,大多数人手中的生产工具被少数掌握。
可是到了工厂开始运用机器的时候,就发生了奇怪的现象:工人在操作机器,但是工人失去了主宰机器的自由;他不能决定他要如何运用机器,他更不能决定他要用机器去生产什么,倒是机器在决定工人如何工作。 劳动者没有自主权,只能够在别人的规定和命令下出卖劳动力,当然不是为自己而劳动。在这样的制度中,劳动占据了生活绝大部分的时间,也就意味着一旦你变成了劳动者,你的绝大部分时间就作为手段存在,而不是作为目的存在。
为什么加班时间越来越长?无情的被剥削者
资本家的最大利益考量,就在于去计算,如果要让你明天还能回来提供劳动力,他要保证不能让你活不下去,如果你活不下去,明天他就买不到你的劳动力了。这是一个临界点,对资本家来说最好的情况就是维持你有吃有喝,明天能用同样的形式回到工作岗位上继续工作。他给予你工资,以这种最低的限度来安排,这时他就可以取得最大的利益。所以在这样的情况下,资本家不会在意除了你的劳动力以外其他所有的东西,他不会在意你的生活,他更不会在意你的心灵。 为了维持工厂继续运作,效率 5%->6%,资本家自己不劳动,也不能生产,所以加强对劳动者的剥削(降低工资+加长时长)
为什么感觉市场竞争力随着时间减弱?也就是所谓的程序员 35 岁危机
因而这是自由的双层剥削,第一层你变成了一个劳动者,你的劳动力只能够换钱,不能拿去换别的,这已经将你的自由剥夺了一层。还有另外一件事情,就是你又被绑在一个工作岗位上,你只能够在这个固定的工作位置上去实现你的劳动价值。这个固定的工作位置会给你提供安全感,但它同时也就取消了你自由离开这个位置去做其他不同工作的可能性。
2)优绩至上
业务价值:记得 p5 年中绩效考核沟通时,老板反馈其他都不错,就是业务价值需要进一步提升🤔。但业务价值,也就是 kpi 至上,难免会带来一定副作用:
短视 & 不专业
由于绩效考核的周期为一年,不难理解绝大部份的项目存活周期不超过一年。同时也不难理解网传的很多大力出奇迹的故事。记得公司鼎盛大力招人的时候,全组技术的人员吃完晚饭,就闭关会议室直至十一二点。只为找简历面试,甚至每周简历捞取数量不达标,会进行罚款。
参考《原则》这本书中描绘的经济周期曲线,社会生产力持续发展主要依赖技术的突破和进步。短期人为政策的调控虽然可以影响小周期,但无法改变长周期,甚至对长周期的增长存在一定副作用。
项目过度包装
技术人需要产出报表说明自己的业务价值,最终导致项目三分靠努力,七分靠包装(shishangdiaohua)
性格后遗症
记得罗翔老师来公司讲座,推荐了一本书《精英的傲慢》:
即使是完全公平的,这样的社会也不是一个好社会。它会让赢家产生傲慢和焦虑,让输家产生羞耻感和怨恨
同理对应公司内部文化,优绩至上对个人性格甚至家庭,也会造成一定影响:例如生活中对身边人苛刻、自我制造的焦虑、技术兴趣以及创造力的消磨、今日事今日毕的执念等
3)个人市场竞争力下滑
最终长期以往,对个人的专业能力,心理健康,甚至家庭幸福,造成一定负面影响。也就是说所以虽然内部努力晋升,收入翻倍增长,但对应的快乐不可长期持续,同时个人在市场中的竞争力也逐日下滑。
五年来一直在脑中挥之不去的一张照片,有一天肯定会离开这家公司。
外部因素
某次周五晚出差坐在餐车车厢发呆,零零星星的六七个乘客,仅如同约好的一般,静静地,专注地,刷着抖音。
着实无聊,我也被感染不自知的打开抖音,竟被带货直播吸引并下单。🤯令人震惊的是,整体下单支付体验竟如丝般顺滑,输入手机号后便绑定了信用卡快捷支付,每月月底自动扣款。在那一瞬间,为公司的支付业务感到了深深的担忧。
三、为什么加入新公司
比较幸运加入了一家外企,除了 6 点前下班的原因,从短期与长期视角,分享一点思考:
短期
打工第二个 5 年,持续积累^^核心竞争力^^(Don’t Be The Best, Be The Only )。
准备离开上一家公司时,HR 变着法子的问我,是什么时候出现开始找工作的念头。我只能诚实的回答,每年我都会在市场上寻觅新的机会。在不断面试的过程中,博主发现市场上不缺资深的开发,也有很多身经百战的运维人员,却没有懂高可用还能写一手漂亮代码的 SRE。
- 目标:
- 编程能力:回馈开源社区
- 运维能力:通用技术栈,例如 AWS
- 外语能力:流畅无障碍的口语交流
- 风险:
- 当然有一天可能会发现不是一个最佳选择,只是喜欢钱,而不是写代码 :)
长期
- 虽然人生的主旋律是痛苦的(人的欲望大部分时候..),但人活着的意义在于选择的自由,无论任何处境。
- 参考《为什么伟大不能被计划》,期望更多的时间,跟随兴趣探索不同的可能性,去寻找“踏脚石”。
THE END
最后还是引用《《资本论》的读法》中的一段话:
这个悲剧最根本、最彻底的性质,是主宰了、麻木了我们自己的欲望。在资本主义的世界里,我们搞不清楚自己要什么。 一旦离开了金钱货币的数量,我们就不太清楚,什么东西比较重要,什么东西比较不重要。