谈谈“工作”
想离职的心一旦产生,是按不下来的。也不知从何时起,有了这种想法,感觉每天的工作不是很有意思,由于 oncall 几乎没了属于自己的时间。当和 +1 谈好离职时间之后,整个人都解脱了。明明还没有真正离开,也还没有确定好新的生活,只是确定好 last day,就像是把一根绷着的弦松开了。会有一种“我属于我”的感觉。
平心而论,在飞轮的这段经历,最幸运的是办公室遇见了一群挺有意思的同事,大家聊技术、聊游戏、聊一些有的没的,整体氛围还算舒服。没有打卡,相对来说也比较自由,这点还是挺好的。对于不喜欢被管得太死的人来说,这种自由度确实会让人轻松很多。但自由的另一面,就是边界会变得很模糊。白天在工作,晚上回家也像是处于 oncall 状态,消息一响就很难真的当作没看见。起初会觉得这也是工作的一部分,毕竟做 infra,很多问题不会按照上下班时间来。可时间久了之后,就会发现自己很难从工作里面抽离出来。人是回家了,脑子还留在公司。
更要命的是,处理的问题慢慢开始重复。刚开始接触一个新系统的时候,很多东西都是新鲜的,哪怕累一点,也会觉得自己在成长。但当一类问题反复出现,自己越来越熟练地排查、定位、解决,甚至熟练到有点麻木的时候,就会开始怀疑这件事情到底还在不在增加自己的经验值,还有很多无聊的问题客户问来,这种稍微带点脑子问问大模型不就行了,也许这就是付费用户的习惯吧。重复的事情当然也要有人做,但我还是会希望去尝试点新东西,不然时间长了,人就会被磨得很钝,尤其是现在面临 AI 的冲击。
在开始这份工作之前,是有想过当时的自己想做什么的。不过站在现在的角度来看,可以说是 49 年入国军——Dead Business。Doris 在国内还是算比较出名的项目,但开源项目和商业化公司毕竟是两回事。尤其是这两年 AI 的热度太高,注意力、钱、人都在往 AI 方向跑,DB 行业就显得冷清了很多。数据库商业化本来就不容易,在这样的环境下想要跑出正反馈,就更难了。话说回来,如果现在让我选的话,大概率还是会从事 infra 行业吧,这也是为啥离职之后,开始慢慢活跃在开源社区的原因。还有就是经过这一番折腾,也对创业公司祛魅了。以前总觉得创业公司应该更灵活一点,少一点没意义的流程,多一点把事情做成的直接。结果发现创业公司也会有一堆无意义的条条框框。公司都已经不大了,还要搞那么多规矩,何必呢。emmm,也不是说创业公司就是有创新精神的。(bushi
我最近一直在思考,什么是好的工作?大概率是不存在的吧,时间久了,都是耗材。更现实一点说,也许不是工作本身好不好,而是它能不能在消耗你的同时,也给你一点新的东西。钱当然重要,稳定也重要,但如果每天只是把自己租出去,然后晚上带着一脑袋没处理完的上下文回家,时间久了还是会有点难受。
在准备离职之前,已经拿了 offer,但想了想国内互联网的尿性,也就没有那么想去。说来也奇怪,离职之前会疯狂面试,给自己找下家;真正离职之后,反而是不太想入职。更多的是在思考,要做什么事情,再去看有没有匹配的公司。也许所谓的找好下家再提离职,只不过是给自己找个跑路的借口吧。目前没有车房的压力,也是敢于折腾的底气吧,暂时还不想向生活低头。工作三年有了一点积蓄,还是可以浪一浪的,哈哈。
这段时间面试下来给我的一个感受是,不要陷入永无止境的准备。真正有效的反馈,还得靠以面代练。你以为自己准备得差不多了,面试官随便换一个问法,或者顺着项目往下追几层,就会发现脑子里还有不少空洞。面试对我而言,更多时候还是看能不能聊得来。聊得来的面试,会有一种互相学习的感觉。今年的面试会大多都会聊到 Vibe Coding,聊现在 AI 工具到底改变了什么;也会聊一些更偏底层的问题,比如 CPU 软中断的排查思路(这是我没遇见过的场景,事后也补课了),或者 Raft 在做水平扩展时瓶颈会在哪里(面试的企业数据量很大,估计是实际生产扩容遇见的坑)。这类问题挺有意思的,不是背八股能完全解决的,更多还是看平时有没有真的想过这些东西。所以现在回过头看,面试也不是单纯为了拿 offer。它更像是一次校准,看看自己现在大概在哪,哪些地方还需要补,哪些东西其实已经能聊出一点自己的理解。
只不过拿到 offer 之后,反倒没有那么着急入职了。可能是离职之后突然发现,找一份工作并不难,难的是想清楚自己到底想把时间花在哪里。欸对,这里说的仅仅是找一份工作。因为我还不知道目前想要的是什么,按照之前的技术栈找的工作,可以暂时保住在职的身份,但是干个一年多,估计还是会腻的,倒不如慢一点给自己放个假咯。
目前的决定是先折腾一段时间,做点自己想做的事情,just for fun~
从开源做起
参与开源,可能是快速成长的手段之一,从源码出发,回归到第一性原理。说来也挺巧,24 年准备跳槽找工作的时候,参与到 paimon-rust 的初期共建当中,入职 sdb,paimon-rust 这个项目逐渐冷淡下来。在今年三月份的时候,突然看见一份邮件通知,是之前的 pr 被 close 了。原来是 catalog 的 pr 被 yuxia 给重做合入了。也就注意到社区又重新活跃起来了。面试的时候问到数据湖有关的,顺势开始一边学习一边参与进去了。
一开始更多是在补基础能力,比如 FileIO、对象存储、分区表这些东西。这些写起来没有那么性感,也不太像那种一眼看上去很酷的 feature,但没有这些基础,后面的读写链路就很难继续往前走。再往后开始把重点放到读侧能力上,从 projection、predicate 到各种 pruning 和 filter pushdown,整体感觉就是从“能读”慢慢往“少读一点、读快一点”去走。这块和数据库里的查询优化思路还是挺像的,写起来也比较有意思。毕竟对于数据系统来说,少扫一点、少反序列化一点,最后都是真金白银的收益。
后面又开始碰一些更偏 Paimon 语义的东西,比如 blob、data evolution、partial-update 和 changelog。这部分比单纯做 scan 要麻烦一些,因为它不是只改一个读路径,而是会牵扯到 schema、bucket、merge engine、table write 这些东西。写的时候很容易觉得差不多了,结果测试一跑,某个边界条件又冒出来了。也顺着把数据湖中的一些概念给学了一遍。
这段时间参与下来最大的感受是,开源项目的反馈非常直接。PR 能不能合,测试能不能过,设计有没有说清楚,社区 review 的时候基本都会暴露出来。很多时候不是自己想做什么就做什么,而是项目推进到某一步之后,自然会发现下一个缺口在哪里。顺着这些缺口往下做,比单纯看文档学习要扎实很多。说白了,开源会逼着你把知识落到具体代码里,而不是停留在“我大概懂了”的阶段。
参与开源最好的一点:每一个 issue、pr、review 后面都是一个个活生生的人,有着社区属性,还会认识到更多的朋友。比如顺着还参与了 mosaic 的一些工作,也感谢之信老师的信任,第一次担任 Release Manager(等成功发版之后,单独写一篇博客记录一下)。在发版的过程中,也和 hongbo 聊了很多,既有吐槽,也有一些新的想法。
还参与了 GreptimeDB 的一些打杂工作,哈哈哈。和 Wayne 线下约饭聊了很多。其中有一个点就是,换一份工作除了带来薪资的涨幅外,如果还是相同的内容,无非就是把 A 的经验搬运到 B,A 遇到的问题,在 B 依然会遇见。快逃吧(bushi~
最近在看 Daft、Ray-data 在多模数据处理方面的一些引用,也欢迎一起交流。
回到生活
离职一周了,过得还是很开心的,生活慢慢规律了起来。早起,可以多做很多事情。去了一趟永福寺,看猫猫,没想到非工作日游客还是那么多。看了《给阿嬷的情书》,第一次在电影院哭的稀里哗啦。剧情很好猜,但到了哪个点依然会很戳人。
也开始把之前没打完的游戏继续玩一玩,最近在交界地迷失了,先把本体做到全收集!再去玩一玩《黄金树幽影》
比起在 OKR 的压迫下,还是做开源开心,除了没有收入,都挺好的,哈哈。