今天是2021年6月30日。下午办完了离职手续,告别了这家工作了快三年的公司。接下来两年将会重新成为一名学生,算是短暂告别「社畜/打工人」的身份。
从2016年底在第一家公司实习开始算起,这4年半以来总共在三家不同的公司工作过,时间有长有短,心态也不尽相同。平时极少在社交媒体上谈论和自己工作相关的内容,今天借这个机会对自己过去的工作经历做一个暂时的总结。
2016.11.21–2018.03.30 = 494天 = 16个月9天
2018.04.02–2018.11.30 = 242天 = 7个月28天
2018.12.04–2021.06.30 = 939天 = 30个月26天三份工作的时长
DaoCloud
第一家公司算是国内挺知名的云计算厂商,DaoCloud。DaoCloud从Docker镜像加速器开始创业,后来又从公有云转型为以提供企业私有化解决方案为主要营收,按他们自己的话说,DaoCloud现在是「企业级云计算领域的创新领导者」。与很多早期的DaoCloud同事一样,我也是从「用户」转变为「员工」的案例之一。早在2014年底DaoCloud刚刚开始做镜像加速器的时候就成为了用户。2015年推出公有云版本的容器运行时服务后也曾经使用了很长一段时间。在早期功能不完善的时候和客服(后来发现有时候是CEO本人)提出过一些改进意见,也算是见证了产品在早期不断迭代的过程中逐渐完善的过程。
2016年下半年面临大四实习的选择。由于之前作为用户的经历让我对DaoCloud建立了不错的印象,再加上刚好有一位直系学长在DaoCloud工作,于是便也给DaoCloud投递了简历。说到这还是得感谢当时DaoCloud的各位,我在大学毕业的总结中曾经提到,我在本科阶段主要的经历是做图像处理相关的科研,实际并没有完整的参与软件开发的项目经验。DaoCloud当时招聘的岗位是以Python为主的后端开发,而我只是用Python写过一两个业余的小玩意儿。面试时CEO曾经开玩笑说「其实你这简历上的经历我们这没人看得懂」。不过最终在DaoCloud的面试也还算顺利,很快收到了Offer。
现在回想起来在DaoCloud工作的那一年多可能是工作后这些年来最快乐的日子(虽然当时不一定这样想)。几乎没有加班,周末双休,工作日很多时候都是早上10点左右上班,下午6、7点下班也不在少数,下班回家后还会自己写一些业余的side projects(相比之下最近这两年晚上一回到家就只想看YouTube消遣)。
然而我毕竟还是在2018年初的时候离开了。后来发生的事情(与第二间公司的经历有关,详见后文)曾经不止一次让我对当初离开的决定感到后悔(至少不是在那个时间点离开)。2017底到2018年初,DaoCloud曾经有过一波不小的离职潮。忘了是否是某位早期员工和我说的,DaoCloud初期的那一批员工,是一群非常有想法的年轻人(或许就是所谓的Geek),一方面自身的技术水平不错,另一方面也有一点技术理想主义。而随着某位核心的技术合伙人离开,公司转型,或许对许多同事的心态产生了不小的影响。
一个或许「错误」的选择
第二家公司的经历,回想起来挺无奈的。现在也许可以说那时的我做了一个「错误」的选择,可是当下我或许实在很难做出所谓「正确」的判断。如上所述,我本科阶段大部分时间都是和导师做科研。恰巧这位导师在进入大学任教前是这家公司的合伙创始人之一。后来随着重心逐渐转移到大学,中间曾经有几年完全从公司的事务中退出。而在2017年底的时候他决定以顾问(?)的形式重新参与一部分公司的业务,成立了一个新的部门。这边需要说明的是,第二家公司是一家「致力于视频智能分析技术研究及其产品开发的创新型企业,主要从事视频大数据处理与视频监控智能化行业领域」。导师成立的新部门主要是针对公司的一条新的产品线,进行与之相关的图像视频处理算法的研究。既然是新的部门,那当然就需要招兵买马。于是导师便询问我的意向,是否愿意从上海搬到杭州参加这份工作。一方面由于本科阶段的科研经历,对于导师本身的为人非常熟悉,我知道他是一个非常正直的人,在做研究方面的实力也是毋庸置疑的。公司内部也有一些实力很强的算法研究员,因此只是以工作的角度来说并没有什么问题。另外不可否认的,这份工作的待遇比我在第一家公司工作时多出了60%还要多,对于当时的我来说的确是个很现实的诱惑。最后还有一个比较私人的原因是,当时的女朋友也在杭州,于是我便怀揣着一种期望自己未来能够在杭州安家落户的期待从上海来到了杭州。
一切似乎都很美好,虽然工作中充满了不少挑战,但也能逐渐慢慢克服。然而万万令人没有想到的是,那一年公司的财务状况出现了问题。面对同行业其他大公司的竞争,公司的销售业绩不佳,金流周转困难。从我入职后的第二个月开始便发生了工资未能按时发放的状况。一开始只是迟个一两天,到了下半年甚至出现了工资拖欠两个月未发的状况。更令人气愤的是,公司的管理层在很长一段时间内并不愿意直面这个问题,还呼吁大家「共克时艰」,各种关于公司发展状况的消息只能从同事私下之间的小道消息获得。而老板在获得了一笔新的资金后,并没有将之立即用于员工薪资的发放,而是不断投资到和公司本业完全不相关且没有前途的行业。最终的结果可想而知,同事们接二连三离职。我在2018年4月初加入这家公司,在2018年11月底离开,总计共8个月。在我离开的时候公司拖欠了两个月的工资未发,在我离职的一个多月后终于结清了。据其他同事描述,一些比我更晚离职的同事就没有这么幸运了。在2019年一些离职后还没拿到工资的同事组建了维权讨薪的组织,与公司进行了长时间的劳动仲裁后终于维护了自己的权益。再往后,今年年初准备加拿大签证材料时我和知情的前同事了解了一下这间公司的现况。到2020年时,公司的财务状况持续变差,账面上一堆负债,原来的办公场地的租金也无法继续承担,股票停牌,原来的老板成为了失信被执行人/老赖,离开了公司。不胜唏嘘。
刚刚离开的公司
于是故事便来到了第三家公司(以下简称C公司)。在第二家公司准备简历时其实挺迷茫的。也许你可能会问,既然在杭州,为什么不试一试向阿里、网易之类的公司投递简历呢?这里便要提到我个人非常奇怪的固执之处了。不管是大四找实习的时期还是在当时这个阶段,我心里一直有一份「打死我也不投简历的公司名单」。基本上所谓的「中国互联网大公司」都榜上有名。至于这份名单最初是如何产生的,其实我自己也没有一个明确的答案。或许是因为各种负面报道,亦或许纯粹是个人喜好。这些年来我是否因为这份奇怪的执念而错过了很多机会?也许是的。但后悔吗?不会。(好啦拜托各位如果在这些公司工作,请不要以此来攻击我)。
另一方面当时刚好与女朋友分手,杭州似乎一下子成为了我的「伤心地」,想要迫切地离开。此处感谢当时还在C公司工作的YYH同学,问我有没有兴趣给这家公司投个简历试一试。其实一开始我对此还挺抗拒的。C公司当时的组织架构与某一互联网借贷金融产品的母公司有着千丝万缕的联系,对于这一点一开始我非常抗拒。感谢后来HR的解释,C公司实质上并不会接触任何互联网借贷的业务,于是我便在YYH同学的内推之下投递了简历。
在C公司面试的过程非常顺利。尤其令我印象深刻的是,当时负责技术面试的是CTO,那一天他并没有问我所谓常见的「算法题」,而是在最后问我,如果设计一个类似docker-compose的工具需要考虑哪些问题。总之面试的过程非常愉快,当时的我想要迫切离开第二家公司开始新的生活,于是在顺利拿到Offer之后便没有再尝试寻找其他的机会,在第二家公司交接完了之后便从杭州再次来到上海。
如今离职后再来总结在这家公司工作了两年半之后的感想。首先毕竟这是我目前持续时间最久的一份工作了,不管公司缺点再多还是会建立起一种特殊的感情。这是一家依旧处于创业早期的公司,因此理论上初创公司早期会遇到的问题,以及初创公司成长变大过程中会遇到的问题,在这边或多或少都能找到一些影子。例如早期的管理制度不健全,福利制度不完善,早期缺乏人手因此一个人同时身兼数职负责多个项目的开发和维护,诸如此类的。这两年半以来公司的确进步了不少,也有不少优点,例如扁平的组织架构,没有大公司复杂繁冗的流程等。但有一些问题至今依然存在,其中一些着实挺让人担忧。
一,产品经理不够专业。C公司也可以算是一家云计算行业相关的公司,全部的营收都来自于toB业务。而主要的产品经理非技术出身,没有toB市场的行业经验,不理解这个产品能够解决用户的何种需求,甚至不理解这个产品能提供什么功能,在这种情况下,你觉得他能清楚地厘清产品的逻辑吗?显然不能。那他的解决方案是什么呢,打开阿里云的网站,找到对应的产品,开始按照我司的风格照抄/重新画一套交互逻辑。但画完之后依然不理解产品中xx名词对应的含义,更别提在理解产品的基础上提出自己的创新了。那么用什么来打动用户为产品买单呢?为何不去使用其他厂家更成熟的解决方案?
二,在从事开发的同事方面,受限于小公司的体量和资源,很难有机会对某一项技术得到深刻的认知,很多时候只是get it done, but don’t know the details。举例来说,由于一些历史原因(没错,即使是刚创业的小公司也有历史原因),C公司早期的技术栈是基于OpenStack的。众所周知OpenStack的技术体系庞大且复杂,即使我们只使用了其中最核心的几个组件(Nova、Neutron、Cinder等),开发和运维的难度依然非常高。一来人手有限,二来同事们都是刚毕业不久的年轻人,以往没有相关开发和运维的经验。
在2020年,公司的技术架构逐渐向Kubernetes演变,而一开始公司内只有极个别同事有Kubernetes相关的经验。与许多云计算厂商类似,第一步也是推出了一个内部使用的Kubernetes「定制」发行版(或许可以理解为简化版的GKE?)。所谓「定制」,其实也就是又造了一个轮子,来简化Kubernetes的部署安装流程。这个工具由几个同事完成呢?两个。准确的说是由一个同事单独完成了原型。后来该同事离职后,又由另外一个同事单独打磨完成了现在内部使用的版本,而这个人就是我……而不论是OpenStack还是Kubernetes,10个节点的小规模私有云和成千上万节点的大规模公有云所面临的技术挑战完全不是在同一个量级的。受限于公司的产品定位以及所接触到的客户体量,大部分的同事所研发的产品都没有机会接受大规模的挑战,也就在某种程度上限制了自身技术的提高,实在有些可惜。然而这也可以算是每个人各自不同的职涯选择所造成的必然结果。对于有兴趣在这方面进一步提高或接受挑战的人来说,他自然可以选择进入大公司接受类似的挑战。这便是后话了。
写到此处已经接近四千字了,这一篇可以暂时告一段落了。总而言之,4年多以来的工作经验造就了现在的我。如果当初我没有那么固执,选择去一家大公司,那我现在得到的经验必然也是完全不同的。但或许并没有孰优孰劣,终究是不同的人各自独特的人生体验。或许在不远的未来,我也会选择一家大公司呢?