被开除三年,前总监找我修系统,我开价80万
他犹豫,我直接挂电话。
电话那头沉默的那三秒钟,我能听见自己后槽牙咬紧的声响。三年前他从我手里抽走工牌时连眼皮都没抬一下,现在倒知道犹豫了。八十万,少一分都不行,这口气我憋了整整三年。
我叫沈默,三十二岁,无业游民——或者说,自由职业者。三年前我是天辰科技的核心架构师,拿着年薪四十万的薪水,手底下带着十二个人的团队,公司最核心的交易系统是我从零搭建起来的。那时候总监陈建国见了我都是笑眯眯拍肩膀,开口闭口“小沈是我们天辰的顶梁柱”。
后来呢?后来新来的副总想安插自己人,陈建国二话没说把我卖了。先是绩效考核打了C,接着以“架构优化”为由把我调去边缘项目组,最后找了个月底发工资的前一天,HR把我叫进小会议室,说公司战略调整,架构师岗位冗余,赔了N+1让我当天走人。
我记得那天是周三,下午三点十七分。我抱着装着自己私人物品的纸箱子走出写字楼,回头看了一眼那栋二十七层的玻璃幕墙大楼,阳光刺得我眼睛发酸。我给我妈打了个电话,说公司给我放了长假。挂了电话之后我蹲在马路牙子上抽了半包烟,脑子里反复播放的是陈建国在我离职报告上签字的样子,他头都没抬,就说了句“小沈啊,公司也不容易,你理解一下”。
理解你大爷。
我当初为了赶项目上线,连续三个月吃住在公司,女朋友跟我分手我都忍了,凌晨三点机房报警我骑着共享单车横穿半个城市去处理,这些他都记得吗?他当然记得,但他不在乎。
离职之后我没急着找工作,一方面是气不过,另一方面是发现自己这些年攒下来的积蓄够撑一阵子。我开始接私活,给一些小公司做系统维护和架构咨询,一个人就是一支队伍,报价比市场价低三成,但活儿干得漂亮。慢慢地积累了些口碑,圈子里有人知道有个叫沈默的,技术过硬,就是脾气有点怪,从不接大公司的单。
其实不是我不接,是我不想再跟那帮穿西装打领带、嘴里跑火车的管理层打交道。大公司的单子往往意味着无穷无尽的会议、需求变更、推诿扯皮,最后验收的时候还要被压价。我受够了。
这三年来我没再见过陈建国,只是偶尔从以前的同事嘴里听到一些消息。天辰科技这两年在走下坡路,当初顶替我的那个副总带来的亲信把系统搞得一团糟,核心团队走了大半,客户投诉率上升了百分之三百。陈建国被降了职,从技术总监变成了高级经理,据说日子很不好过。
听到这些消息的时候我心里什么感觉?说完全没有快意那是假的,但更多的是麻木。那是我用三年青春搭建起来的东西,看着它被人糟蹋,就像看见自己养大的孩子被人虐待一样难受。但我已经不想管了,那都是过去的事了。
直到今天下午,一个陌生的号码打进来。
我手机响的时候我正在修一台老掉牙的台式机,是我邻居王大爷的,他说电脑开不了机,里面还有他孙子的照片。我手上全是灰,看了一眼屏幕上的归属地,是本市的,但号码不认识。一般这种电话我都不接,但那天鬼使神差地滑了接听键。
“喂,是沈默吗?”
这声音我太熟悉了。就算再过十年我也能听出来。陈建国的声音带着点南方口音,说话总是不紧不慢的,以前开会的时候我最烦他用这种语气说“小沈啊,这个需求可能还得改一下”。
我沉默了两秒钟,然后说:“哪位?”
我知道是他,但我偏要装不认识。
“我是陈建国,天辰科技的陈建国。”他的语气有点尴尬,顿了顿又说,“好久不见了,你还好吗?”
“还行。”我说,“有什么事吗?”
电话那边安静了一会儿,我听见他清了清嗓子,像是下定了决心才开口:“是这样的,公司这边遇到点技术问题,核心交易系统前天突然崩溃了,数据恢复之后还是频繁报错,运维团队查了两天没找到根因。我想起来这个系统当初是你主导开发的,想请你回来帮忙看看。费用方面好商量。”
我摘下沾满灰尘的手套,靠在椅背上,看着窗外灰蒙蒙的天。三年了,整整三年。他陈建国也有主动给我打电话的一天。
“陈总监,”我故意把“总监”两个字咬得很重,“你没搞错吧?我可是被你们开除的人。”
“那个……小沈,当初的事确实有些误会,公司也有公司的难处……”他开始打官腔了。
“打住。”我打断他,“你就直说,要我干什么,出多少钱。”
电话那头又沉默了。我知道他在盘算,在犹豫。按照他的风格,他本来是想跟我打感情牌,让我先回去把问题解决了再谈报酬,最好能免费把活儿干了,然后给个三五千的“感谢费”打发掉。以前在公司的时候他就经常这么干,外包的项目预算砍一半,剩下的一半让手底下的人加班补上,美其名曰“锻炼机会”。
“这样,”他终于开口了,“你过来看一下情况,如果问题不大,我个人给你两万块的辛苦费,怎么样?毕竟你也知道,公司现在效益不太好……”
我笑了,笑出声来的那种。
“陈建国,”我直接叫了他全名,“你是不是觉得我还是三年前那个随叫随到的傻小子?两万块?你打发要饭的呢?”
“你别激动,价格可以再商量……”
“不用商量了。”我说,“一口价,八十万。先付四十万定金,剩下的修好之后再付。同意就签合同,不同意就拉倒。”
电话那头彻底安静了。我几乎能想象出他现在脸上的表情,一定像吞了一只苍蝇一样难看。八十万,对他来说这个数字应该刚好卡在他的心理底线附近,够让他肉疼但又不足以让他直接拒绝。我太了解他了,这个人最大的弱点就是永远在犹豫。
他犹豫了大概三秒钟。
三秒钟的时间足够我想起很多事情。想起他当着全部门的面表扬我“年轻人有冲劲”转身就把我的晋升名额给了副总的侄子;想起我父亲住院做手术那天他打电话催我改代码,我说我在医院,他说“年轻人别这么娇气”;想起我离职那天他说“小沈你能力没问题,就是性格太轴了,出去磨炼磨炼对你有好处”。
三秒钟的时间也足够让我下定决心——这钱我根本不稀罕,但我就是要让他知道我沈默已经不是当年那个可以随便拿捏的人了。
“沈默,八十万这个价格太离谱了,公司不可能批的……”他开始讨价还价。
“那就这样吧。”我说完直接挂断了电话。
我把手机扔在桌上,重新戴上手套,继续修王大爷的那台老电脑。手指有点抖,说不清是激动还是别的什么。窗外的天色暗下来了,房间里只有主机风扇转动的嗡嗡声。我看着屏幕上跳动的BIOS界面,深吸了一口气。
我承认,挂电话的那一瞬间我是爽的。但紧接着涌上来的是一种说不清道不明的空虚感。这三年我一直在想,如果有一天陈建国回头来找我,我该怎么回敬他。我想过无数种剧本,当面羞辱他、狮子大开口、直接挂电话不理他……但真的到了这一刻,我发现这些想象中的报复其实没什么意思。
他打这通电话本身就已经说明了一切——他走投无路了。而我的拒绝也说明了一件事,我早就不是那个需要用一份工作来证明自己的沈默了。
我以为这件事就这么过去了,没想到第二天早上八点,我又接到了那个号码的电话。
这次我接起来之后没说话,等着对方先开口。
“沈默,是我,陈建国。”他的声音听起来有点疲惫,像是没睡好,“昨天的事我想了一晚上,八十万……公司这边可以批,但是我需要你签一个保密协议,并且保证系统后续一年的稳定运行。如果你同意的话,我今天就可以让人把合同草拟好发给你。”
我拿着手机愣住了。
他真的同意了?八十万就这么答应了?这不像是陈建国的风格。以我对他的了解,他至少要来回拉扯几个回合,找各种理由压价,最后实在没办法了才会松口。这次怎么这么痛快?
“你等一下,”我说,“我得先了解一下具体情况。系统崩溃的时候有没有报错日志?备份恢复之后出现的具体是什么类型的错误?你们运维团队做了哪些排查?”
电话那头传来翻东西的声音,然后陈建国说:“详细情况我也不太清楚,要不你到公司来一趟,让运维的人当面给你汇报?你放心,不管最后修不修,这次来公司我给你算咨询费,五千块,就听你说说思路,成吗?”
五千块听我说思路。这倒是个新鲜事。以前在公司的时候我天天说思路,没人拿正眼瞧,现在倒值钱了。
我想了想,说:“行,我今天下午过去一趟。但丑话说在前头,我只是去看一眼,修不修另说。”
“没问题没问题,你过来就行,我跟前台打好招呼。”陈建国语气里带着点如释重负的感觉。
挂了电话我坐在沙发上发了会儿呆。三年没去过那个地方了,说实话有点抵触。但另一方面,我确实好奇到底出了什么问题能让陈建国不惜花八十万来找我。那个系统的代码每一行我都记得,就算过了三年,我闭着眼睛都能画出它的架构图。能把它搞崩了,说明接手的那些人是有多废物。
下午两点半,我换了一件干净的深灰色T恤,一条牛仔裤,蹬着运动鞋出了门。我故意没穿正装,就是让那帮人看看,我现在过得挺好,用不着靠西装来撑场面。
到天辰科技楼下的时候,我抬头看了一眼那栋二十七层的玻璃幕墙大楼,跟三年前一模一样。门口保安换人了,以前那个老张头退休了,现在是个年轻小伙子,看我的眼神有点警惕。我说找陈建国,他打了个电话确认之后放我进去了。
电梯上到二十楼,技术部的楼层。门一开我就闻到了那股熟悉的味道,咖啡、打印机的墨粉和中央空调混合在一起的气味,三年了一点没变。前台换了个小姑娘,化了浓妆,看见我愣了一下,大概以为我是来面试的。
“您好,请问您找谁?”
“陈建国,约好的。”
她低头查了查电脑,然后笑着说:“陈经理在会议室等您,我带您过去。”
走廊两边还是老样子,透明玻璃隔断的办公区,一排排工位上坐着年轻的程序员,屏幕上闪着花花绿绿的代码编辑器。有几个面孔看着眼熟,但大多数都是新面孔。我的旧工位在走廊尽头靠窗的位置,现在坐着一个戴眼镜的胖子,正对着屏幕挠头。
会议室在走廊的另一头。小姑娘推开门,我看见陈建国坐在长条会议桌的尽头,比三年前老了不少,头顶的头发更稀了,两鬓的白发明显多了,脸上的皱纹也深了。他看见我进来赶紧站起来,堆着笑说:“小沈来了,快坐快坐。”
他穿着白衬衫,袖子卷到小臂,领口松开了两颗扣子,看起来确实很疲惫。会议室里还有两个人,一个是我以前的副手李鸣,现在应该是技术主管了,看见我进来脸上有点尴尬,点了点头算是打招呼。另一个是个年轻女孩,抱着笔记本电脑,应该是做会议记录的。
“好久不见。”我对李鸣说。
“沈哥。”他叫了一声,声音很低。
我在陈建国对面坐下,直接开门见山:“说说吧,什么情况。”
陈建国冲李鸣使了个眼色。李鸣打开投影仪,把屏幕上的内容投到墙上的白板上。是一段服务器的错误日志,密密麻麻的报错信息。
“事情发生在前天凌晨两点十七分,”李鸣开始讲,“核心交易系统突然出现大量超时,随后主节点宕机。我们切换到备用节点之后,数据出现严重不一致,部分订单状态混乱。当天早上我们尝试了从备份恢复,但是恢复之后系统仍然频繁报错,具体错误集中在……”
他开始讲技术细节,讲他们尝试了什么方案,失败了什么方案,讲得磕磕绊绊的,显然压力很大。我听着听着眉头就皱起来了。
三年前我离开的时候,这套系统的架构是非常稳定的,我设计了多层容灾机制,理论上就算主节点完全崩溃,备用节点也能在五分钟之内无缝切换,数据一致性有分布式事务保证。现在他们告诉我这些机制全部失效了,说明这三年里有人对核心代码做了大量改动,而且是完全不懂行的人在乱改。
“你们是不是动过交易链路的核心代码?”我打断李鸣。
李鸣愣了一下,看向陈建国。陈建国表情有点不自然,清了清嗓子说:“这个嘛,前年做过一次架构升级,当时请了一个外部的技术团队……”
“哪个外部团队?”
“是……迅达科技的人。”
我一听这个名字就明白了。迅达科技,业内出了名的坑货团队,专做“低成本架构升级”的生意,说白了就是拿开源框架改吧改吧糊弄客户,收完钱就跑路。他们动过的系统没有一个不出问题的。
“你们让迅达碰了核心交易链路?”我难以置信地看着陈建国,“当年我走的时候留下的架构文档里写得清清楚楚,交易链路绝对不能动,任何修改都必须经过严格的测试和评审流程。你们把这些全当耳旁风了?”
陈建国被我说得脸上挂不住,端起杯子喝了口水:“当时也是没办法,公司效益不好,预算有限……”
“预算有限就找迅达?”我冷笑了一声,“那帮人连分布式事务的ACID都搞不明白,你们也敢把核心系统交给他们?陈建国,我当初走的时候你跟我说什么来着?你说我性格太轴,不懂变通。现在我倒要看看,你的变通把公司变成什么样了。”
会议室里气氛一下子僵住了。李鸣低着头不说话,那个做记录的小姑娘大气不敢喘。陈建国的脸一阵红一阵白,手指在桌面上敲了两下,最终还是压住了火气。
“小沈,过去的事是我不对,我承认。”他说,“但现在系统确实出了大问题,再不修复的话整个业务都要停摆了。你看在这么多年交情的份上……”
“交情?”我打断他,“咱们之间还有交情吗?”
话一出口我自己都愣了一下。这话说得有点重了,但我不想收回来。三年前他把我扫地出门的时候可没想过什么交情。
陈建国沉默了一会儿,然后做了一个出乎我意料的动作。他从椅子上站起来,走到我面前,深深鞠了一躬。
“沈默,算我求你了。”
我看着他那颗日渐稀疏的头顶,心里翻涌起一股说不清的复杂情绪。这个场景我在脑子里排练了无数遍,可真发生了,我发现自己并没有想象中那么痛快。
“你先起来。”我说,“系统我看看再说。”
陈建国直起身,眼睛里闪过一丝亮光,赶紧让李鸣把完整的代码仓库调出来。我坐到电脑前面,手指搭上键盘的那一刻,肌肉记忆就回来了。代码还是那些代码,但里面被人塞进了大量垃圾,像是一件精美的瓷器被人用泥巴糊了一遍。
我一行一行地往下看,越看越气。迅达那帮人不仅改了核心逻辑,还引入了一个有严重漏洞的第三方库,再加上他们写的那些嵌套了七八层的if-else,整个系统就像一颗随时会爆炸的定时炸弹。更离谱的是他们居然把日志级别的配置写死了,导致错误发生时连完整的堆栈信息都没有打印出来。
“你们有没有做过代码审查?”我头也不回地问。
李鸣支支吾吾地说:“当时……时间比较紧,就没来得及……”
“没来得及?”我转过椅子看着他,“李鸣,你跟着我干了三年,我教你的第一件事是什么?”
“……代码上线前必须经过至少两个人审查。”
“那你告诉我,为什么没有执行?”
李鸣的脸涨得通红,说不出话来。陈建国在旁边打圆场:“这个事也不能全怪李鸣,当时公司下了死命令要赶进度……”
“行了。”我摆摆手,“我现在不想追究责任。我说一下我的判断,系统的问题出在三个方面:第一,核心交易链路的分布式事务逻辑被改坏了,导致数据不一致;第二,引入的那个第三方库有内存泄漏的问题,长时间运行之后会触发GC停顿;第三,你们的备份策略也有问题,恢复的时候没有校验数据完整性。这三个问题叠加在一起,基本上等于整个系统要重构。”
“重构?”陈建国脸色变了,“那要多久?业务不能停啊。”
“我说的是‘基本上等于重构’,但实际操作起来不需要完全重写。”我指了指屏幕上的某几段代码,“这几个关键模块我可以重写掉,其他的地方做针对性修复。给我两周时间,两周之内我保证系统恢复正常运行。”
陈建国和李鸣对视了一眼,两人脸上都有点不敢相信。
“两周……真的可以?”陈建国问。
“我说可以就可以。”我站起来,“但先说好,八十万的报价不变,付款方式我之前说过了,先付四十万定金,系统验收通过之后付尾款。另外,这两周我需要有独立的办公环境,除了李鸣之外不要有人来打扰我,我需要完全访问所有服务器的权限,包括生产环境。”
“这个……”陈建国犹豫了一下,“生产环境的权限涉及安全合规问题……”
“那就别修了。”我拿起桌上的手机准备走。
“等等等等,”陈建国赶紧拦住我,“权限的事我来协调,给你开最高权限。但安全部门那边可能需要你签个责任书。”
“没问题。”
当天下午合同就拟好了。陈建国很痛快地让财务先转了四十万到我账户,效率高得不像他。我盯着手机银行上跳出来的到账短信,心里说不上来是什么滋味。三年前我在这里累死累活一年才挣四十万,现在四十分钟就搞定了。
但我知道,陈建国愿意出这个钱,说明问题比他说出来的还要严重。他这个人最擅长报喜不报忧,嘴上说“有点问题”,实际上可能是火烧眉毛了。
第二天我就正式进场了。陈建国把我安排在二十楼最里面一间闲置的小办公室,给我配了最新的开发机和三块大显示器,还让人搬来一张折叠床,说万一加班太晚可以休息。我看着他忙前忙后地张罗,心里那个气其实消了一点点,但嘴上还是一句软话都没说。
真正开始看代码之后我才发现,情况比我想的还要糟糕。迅达那帮人不仅改了代码,连数据库的表结构都动过了,加了一堆冗余字段,索引乱建一通,导致查询性能下降了不止一个数量级。这相当于在我原来盖好的房子上乱砸墙、乱搭违建,现在整栋楼随时可能塌。
头三天我几乎是住在办公室里的。白天看代码、写修复方案,晚上等业务低峰期之后在测试环境上做验证。李鸣被我拉着一起干活,头两天他还不好意思跟我说话,到第三天总算憋不住了。
“沈哥,其实……”他一边敲键盘一边吞吞吐吐地说,“当初你走的时候,我们几个老人都挺难受的。陈总……陈建国当时确实没办法,副总那边逼得紧,他要是不配合的话连自己都得走。”
“我知道。”我盯着屏幕没回头,“他就是这种人,谁都可以牺牲,保住自己最要紧。”
“但他后来也挺后悔的……”李鸣小声说。
“后悔?”我冷笑了一声,“后悔有什么用?我父亲做手术那天他打电话让我改代码的事,他后悔过吗?”
李鸣不说话了。
我其实不想翻这些旧账,但有些事就像钉子扎在心里,你以为已经拔出来了,实际上那个洞还在。三年前我父亲查出肝癌早期,需要做介入手术,那天我本来请了假在医院陪着。结果陈建国的电话打过来,说线上的某个接口报错了,让我赶紧处理。我说我在医院,他说“小沈啊,年轻人别这么娇气,你爸那个手术不是小事吗,让家里人陪着就行,代码这块非你不可”。我当时就站在手术室外面,走廊里消毒水的味道冲得我眼睛发酸,我握着手机的手都在抖。
后来我还是赶回公司把问题处理了。等我再回到医院的时候,我爸已经被推出手术室了,我妈一个人坐在走廊的长椅上,看见我回来笑着说“没事,手术很成功”。她越是这样我越难受。
这些事陈建国不知道,或者说他根本不在乎。在他眼里我就是个写代码的,随叫随到的工具人。
第四天的时候,系统修复有了突破性进展。我重写了分布式事务的那块核心逻辑,把迅达改坏的地方全部恢复了原来的设计,同时加了一层补偿机制,就算出现异常也能保证数据最终一致。测试环境跑了十二个小时,没有报错。
那天晚上十一点多,我趴在桌上睡着了。迷迷糊糊中听见有人敲门,抬头一看是陈建国,手里提着两杯热咖啡和一份外卖。
“还没吃晚饭吧?我路过楼下看到那家你以前爱吃的面馆还开着,就给你带了一碗。”他把外卖放在桌上,语气有点小心翼翼。
我确实饿了,打开一看是牛肉面,汤还是热的,葱花和香菜漂在面上,跟三年前我加班时候常吃的那家一模一样。他竟然还记得。
“谢谢。”我拿起筷子开始吃,没多说什么。
陈建国在我对面坐下,端起另一杯咖啡喝了一口,沉默了半天才开口:“沈默,这三年我想过很多次找你回来,但一直没脸开口。”
我嘴里含着面条,没接话。
“当年那个事……确实是我做得不地道。”他继续说,“但你也知道,公司里的人事斗争有时候就是这么残酷。副总要把自己的人安排进来,我不腾位置的话,整个技术部都要被他搞。我那时候想着,先让你走,等过段时间风声过了再把你要回来。结果后来……”
“后来副总自己也被搞走了是吧?”我放下筷子看着他,“我听说了。然后你也没想过要找我回来,因为你觉得我这个人‘性格太轴’,不好管理。”
陈建国苦笑了一声:“是,我当时是这么想的。我承认我错了。”
他顿了顿,声音低下去:“其实系统出问题的前一天,我在办公室翻到了你当年留下的那份架构设计文档。那文档写得真详细啊,连每一个接口的异常处理都标得清清楚楚。我看了大半夜,心里特别不是滋味。”
我低头继续吃面,不想让他看见我脸上的表情。说实话,他这番话确实触到我了,但我还没打算就这么原谅他。
“陈建国,”我吃完最后一口面,擦了擦嘴说,“你知道吗,这三年我一直在想一个问题,就是当年如果我硬气一点,不接你那个电话,不去改那几行代码,是不是我爸手术那天我就能陪在他身边了。”
陈建国的脸色刷一下就白了:“你父亲他……”
“他现在没事,恢复得挺好的。”我说,“但那件事我这辈子都忘不了。”
办公室安静了很久。窗外是城市深夜的灯火,远处有车流的声音隐隐约约传进来。陈建国低着头看着手里的咖啡杯,半天说不出话来。
“沈默,对不起。”他终于开口,声音沙哑,“这个道歉晚了三年,但我是真心的。”
我没说“没关系”,也没说“我原谅你了”,我只是说:“面挺好吃的。”
他走之后我一个人坐在办公室里发了很久的呆。电脑屏幕上的代码还停在中断的地方,光标一闪一闪的。我盯着那碗吃空了的牛肉面,忽然觉得胸口堵着的那块石头好像松动了一点。
但也只是一点。
之后的几天修复工作进入收尾阶段。我把整个系统从头到尾过了一遍,该修的修了,该优化的优化了,还顺手补了十几份缺失的文档。李鸣跟着我学了不少东西,他其实底子不差,就是这几年被公司的氛围带歪了,做事畏手畏脚的。
“沈哥,”有一天他看着我写代码,忍不住说,“你这些设计思路我在书上都看过,但从来没见人用得这么顺。你不在的这三年,我们团队水平真的下降了好多。”
“那不是正好吗,”我头也不回地说,“显得你们有进步空间。”
李鸣笑了,这是他这么多天以来第一次露出轻松的表情。
第十天的时候,系统修复完成,我在生产环境上做了灰度发布,先放了百分之五的流量进去观察了四个小时,一切正常。然后慢慢扩大比例,到晚上八点的时候全量切换完成。监控大盘上的所有指标全部恢复正常,错误率降到了零。
运维团队的人围在监控室看数据,一个个跟过年似的。有个年轻小伙子激动得差点跳起来:“卧槽真的好了!数据全对上了!”
李鸣站在旁边看着我,眼睛里有点发亮:“沈哥,你真行。”
我没说什么,只是松了口气。这个系统就像我自己的孩子,虽然被后妈虐待了三年,但总算被我救回来了。那种成就感其实比八十万更让我踏实。
第二天陈建国把剩下的四十万尾款打过来了,另外还多转了五万,备注写着“额外感谢费”。我给他发消息说多了,他回了一句“不多,你值这个价”。
系统恢复稳定运行之后,陈建国找我吃了一顿饭,就我们两个人,在公司附近的一家湘菜馆。他点了一桌子菜,还特意要了一瓶白酒。
“沈默,”他给我倒了一杯酒,“这杯我敬你。以前的事我不找借口了,就是我对不起你。你愿意回来救这个系统,我陈建国记一辈子。”
我端起酒杯跟他碰了一下,没全喝,只是抿了一口。三年了,我还是那个不怎么会喝酒的沈默。
“以后有什么打算?”他问我,“要不要考虑回来?职位你来挑,待遇肯定比以前好。”
我摇摇头:“不了。”
“为什么?嫌钱少?可以再谈……”
“跟钱没关系。”我夹了一筷子剁椒鱼头,慢悠悠地说,“我就是不想再过那种每天被人催着改需求、开会开到半夜的日子了。现在我自己接活,想干嘛干嘛,挺自由的。”
陈建国沉默了一会儿,叹了口气:“也是。你这性子确实不适合在大公司待着。”
“你这话听着像夸我还是骂我?”
“夸你,绝对是夸你。”他举起杯子,“来,再喝一杯。”
吃完饭出来的时候已经晚上九点多了,初夏的风吹在人身上很舒服。陈建国喝得有点多,走路有点晃,我扶着他走到路边等代驾。
“沈默,”他靠着路灯杆,突然说,“你知道吗,那天你挂我电话的时候,我他妈心里慌得要死。我就在想,完了,沈默肯定恨死我了,这辈子都不会再理我了。”
“那你后来怎么又打过来了?”
“因为实在没办法了啊。”他苦笑,“系统崩了两天,业务部门天天开会骂人,老板拍桌子说要追责。我那时候就想起你来,想起你以前不管遇到什么问题都能搞定。我就想,就算你骂我一顿也好,至少让我听见你的声音。”
我看着他泛红的眼圈,心里某个柔软的地方被戳了一下。这个男人在职场里摸爬滚打了二十多年,从来都是精明算计、滴水不漏,现在居然在一个被他开除的前下属面前说这种话。看来这三年他的日子确实不好过。
“行了别煽情了,”我拍拍他肩膀,“代驾来了,赶紧回去吧。”
他上车之后摇下车窗冲我喊了一句:“沈默,以后有什么需要帮忙的,尽管开口!”
我冲他摆摆手,转身走了。
回家的路上我沿着江边慢慢走,江水在夜色里黑沉沉的,对岸的灯光倒映在水面上碎成一片一片。我掏出手机看了一眼时间,快十点了。我妈发了条微信问我吃饭了没,我回了张餐桌的照片说吃过了,跟她说是跟以前同事吃的。她回了个笑脸,说早点回家注意安全。
我突然发现这三年我变了很多。以前我总是把自己绷得很紧,觉得被人欺负了就要记恨一辈子,觉得这个世界亏欠了我太多。但现在我好像没那么较真了。不是说那些伤害不存在了,而是我学会了跟它们共处。
陈建国那天说的“对不起”,其实我等了三年。我以为听到这句话的时候我会很解气,会狠狠地嘲讽他一顿然后扬长而去。但真正听到的时候,我发现我更多的是一种释然。恨一个人太累了,尤其是恨一个你曾经真心付出过的人。
系统修复之后的一个月里,陈建国又找过我两次,一次是系统做压力测试让我帮忙参谋一下方案,一次是技术部招人让我去面试把关。这两次我都去了,都给他帮了忙,但都没收钱。他说要给,我说没必要,就当是朋友帮忙。
“朋友”这两个字从他嘴里说出来的时候,我竟然没觉得别扭。
日子还是照常过。我继续接我的私活,帮一些小公司做技术咨询,偶尔去给几个培训班上上课,讲讲架构设计。收入虽然没有在天辰的时候稳定,但胜在自由。我可以早上睡到自然醒,下午去咖啡馆写代码,晚上约朋友吃个饭打打游戏,周末回我爸妈那儿陪他们吃顿饭。
有天下午我在家写代码的时候,手机响了,是个陌生的号码。接起来之后是一个年轻人的声音,语气特别客气:“请问是沈默老师吗?我是迅达科技的工程师,姓赵。我们最近遇到一个分布式系统的难题,听圈子里的人说您在这方面特别擅长,想请您帮忙看看。费用好商量。”
迅达科技。就是那个把天辰系统搞砸了的迅达科技。
我握着手机沉默了两秒钟,然后笑了。
“行啊,”我说,“不过我的报价不低。”
“您说您说,只要在合理范围内……”
“一口价,八十万。先付四十万定金。”
电话那头安静了一会儿,然后那个年轻人小心翼翼地问:“那个……沈老师,您这个报价是不是有点……”
“贵?”我接过话头,“你回去跟你们老板说,就说沈默报的价。他要是觉得贵,可以找别人。”
“行行行,我汇报一下,回头给您回话。”
挂了电话之后我靠在椅背上,看着窗外明晃晃的太阳。迅达的人居然找上我了,这世界真是太小了。不过我不打算为难那个年轻人,他也是打工的,上面让干什么就得干什么。至于他们老板愿意出多少钱,那是他们的事。
我把手机扔到一边,继续写我的代码。屏幕上跳出一行行优美的函数逻辑,像一首流畅的诗。我突然觉得,做一个纯粹的技术人其实挺好的,不用管那些尔虞我诈的人事斗争,不用看任何人的脸色,凭手艺吃饭,堂堂正正的。
过了大概两个小时,那个姓赵的年轻人又打电话过来了。
“沈老师,我汇报过了,”他的语气有点兴奋,“我们老板说没问题,就按您的报价来。您什么时候方便,我们约个时间面谈一下具体需求?”
我放下手里的杯子,窗外的梧桐树被风吹得沙沙响,阳光透过叶子洒了一桌子碎金。
“明天吧,”我说,“下午两点,你定地方。”
挂了电话之后我给自己泡了杯茶,坐在阳台的藤椅上慢慢喝。对面的楼顶上有人晾了一排被子,在风里鼓成一面面白色的帆。楼下有小孩在追着跑,笑声清脆得像玻璃珠子滚在地上。
手机又震了一下,是李鸣发来的消息。他说今天系统跑得特别顺,所有指标都创了新高,业务部门终于不骂人了,他跟团队的人说这都是我教得好。后面跟了个呲牙笑的表情。
我回了他一个抱拳的表情。
然后我妈发来一条语音,我点开听,她说今天包了饺子,韭菜鸡蛋馅的,让我周末回去吃。背景音里是我爸在哼京剧,听调子像是《空城计》。
“我正在城楼观山景,耳听得城外乱纷纷……”他哼得有板有眼的。
我把手机贴在耳边听了一会儿,嘴角不自觉地翘起来了。
三年前我蹲在马路牙子上抽烟的时候以为自己完了,以为天塌下来了,以为这辈子就这么被人踩在脚底下了。结果呢?我熬过来了,而且过得比那时候好得多。那种好不是银行卡里多了几个零,而是我终于可以按照自己的节奏活着了,不用讨好谁,不用忍着谁,不用半夜三点爬起来骑着共享单车去给别人擦屁股。
被开除的那天我是抱着纸箱子走的,现在我抱着的是一整片自由的天空。
那天晚上我做了一个梦,梦见三年前那个周三的下午,我抱着纸箱子站在天辰科技楼下,阳光刺得我睁不开眼。但这次我没有蹲在马路牙子上抽烟,而是抬头看着那栋大楼,大声说了一句:“老子以后会比你牛逼一百倍。”
然后我就醒了,窗外天光大亮,鸟叫得正欢。
我翻了个身拿起手机,看到那个姓赵的年轻人发来一条消息,是他公司地址和明天见面的时间安排。末尾加了一句:“沈老师,久仰大名,明天见。”
我回了个“好”字,然后起床洗漱,准备开始新的一天。
冰箱里有昨天买的吐司和鸡蛋,我煎了个荷包蛋夹在吐司里,又热了杯牛奶。吃早饭的时候我顺手打开电脑看了一眼邮箱,有一封新邮件是陈建国发来的,说公司下个月要办个技术分享会,想请我去做个演讲,题目随便我定,报酬按照外部专家标准给。
我想了想,给他回了一封邮件:“行,题目我回头定。报酬就不用了,管顿饭就行。”
发完邮件我把剩下的牛奶喝完,洗了杯子放在沥水架上。阳光从厨房的窗户照进来,在瓷砖上画出一道暖融融的光斑。我站在这片光里伸了个大大的懒腰,感觉浑身都是劲。
迅达的那个项目后来我接了。他们老板亲自给我打电话,态度客气得不得了,说以前有眼不识泰山,希望我不要计较。我说过去的事就过去了,咱们往前看。其实我心里清楚,他们之所以这么痛快地答应八十万的报价,是因为天辰的系统修复之后在圈子里传开了,大家都知道有个叫沈默的人能搞定别人搞不定的烂摊子。名声这个东西,有时候比钱还管用。
给迅达做技术咨询的那段时间,我接触到了他们内部的一些代码,发现他们其实不全是草包,团队里也有几个挺有想法的年轻人,就是被公司的风气带歪了,只求快不求稳。我给他们提了一些改进建议,手把手教他们怎么做代码审查、怎么设计容灾方案,那帮年轻人学得挺认真。
有一次他们那个姓赵的工程师问我:“沈老师,你这么厉害,为什么不在大公司待着啊?”
我笑了笑说:“大公司太小,装不下我。”
他愣了一下,然后哈哈大笑。
其实我自己知道,我不是在跟谁赌气,也不是故意要跟大公司对着干。我只是找到了适合自己的活法。这个世界上的路有很多条,有些人喜欢在高速公路上开快车,有些人喜欢在乡间小道上慢慢溜达。我属于后者,慢是慢了点,但沿途的风景都是自己的。
最近我还在做一件事,就是把我这些年积累的技术经验和心得整理出来,写成一个系列的文章发在网上。没想到反响挺好的,好多人在下面留言说收获很大,还有人喊我出书。我暂时没想出书的事,但写文章这件事让我挺开心的,感觉自己那点本事没有烂在肚子里,多少能帮到一些人。
我妈有时候会唠叨我,说我不找对象不结婚,一个人晃荡着不像话。我就跟她说:“妈,你看我现在多自由,想去哪儿去哪儿,想干嘛干嘛,多好。”她嘴上念叨,但其实也看出来了,我现在的状态确实比以前好多了。以前在天辰的时候我整个人是绷着的,脸上没什么笑模样,回家吃完饭就进房间继续加班。现在不一样了,我会陪他们去逛公园,会跟我爸下象棋,会给我妈做饭——虽然做得不怎么样。
我跟我爸有一回下棋的时候,他突然说:“儿子,你这两年变了。”
我说哪儿变了。
他说:“你以前总是一副心事重重的样子,好像全世界都欠你的。现在你松快了,像是想通了很多事。”
我落了一个卒过河,说:“人总得往前走嘛。”
其实我是真的想通了。被开除这件事当初对我打击很大,我觉得自己付出了那么多却被一脚踢开,太不公平了。但现在回头看,如果不是那场变故,我可能还在那个格子间里每天开会、改需求、应付领导,永远不敢迈出那一步。有些离别看似是剥夺,其实是解放。
我失去了一个职位,但我找回了自己。
后来有一次我在街上偶遇了以前在天辰的一个老同事,叫王磊,跟我同批进来的,后来去了另一家公司。他看见我特别高兴,拉着我去旁边的奶茶店坐了坐。聊起来才知道他也早就从那家公司出来了,现在自己开了个小工作室做软件外包。
“沈默,你知道吗,”他吸着珍珠说,“当年你走之后,技术部那帮人私下都说,天辰完了。你是那套系统的灵魂,灵魂没了,系统迟早要出大事。结果真让我们说中了。”
我笑了笑没接话。
“不过你现在混得比那时候好多了,”他又说,“圈子里都传你单干之后特别牛,报价八十万起步,爱修不修。牛逼,真牛逼。”
“传得有点夸张了,”我说,“我也不是每个活都报八十万。”
“那迅达那个呢?我听说了,也是八十万吧?”
我笑了笑算是默认了。
王磊一拍大腿:“解气!那帮孙子当年把你东西搞成那样,现在还得乖乖掏钱请你修,你说这叫什么?这就叫技术人的尊严。”
我心里其实没他这么激昂。接迅达的活对我来说就是一笔正常的生意,跟复仇没什么关系。但我理解王磊为什么会这么激动,因为他也是从那套体系里走出来的人,他知道技术人员在那些公司里有多憋屈。
走的时候王磊加了我微信,说以后有合适的项目可以合作。我说好。
回家路上我经过天辰科技那栋大楼,正好赶上晚高峰,楼里亮着密密麻麻的灯。我站在马路对面看了一会儿,想起三年前那个下午我抱着纸箱子从这里走出来,觉得天都塌了。现在再站在这里,心里一点波澜都没有了,就像看着一个普通的路标。
手机响了,是我一个客户打来的,说系统出了个小问题问我能不能远程看一下。我说行,回去就处理。挂了电话我加快了脚步,家里的电脑还开着,有一杯没喝完的茶等着我。
我走在这座城市的夜色里,周围是来来往往的人群和川流不息的车辆,每个人都在自己的轨道上奔忙。三年前我也是他们中的一员,焦虑、疲惫、身不由己。现在我还在走着,但步伐轻松了很多。
后来跟陈建国又见过几次面。他状态比我刚回来修系统那会儿好多了,系统稳定了之后他在公司里的日子也好过了不少,据说老板在大会上专门表扬了技术部。他没说我名字,但我知道他肯定知道是我干的。
有一次他喝多了酒,拉着我说:“沈默,我这辈子做过很多错误的决定,最后悔的就是让你走。你是那种真正的技术人才,不是为了钱干活的人。你走了之后我才发现,有些人是多少钱都换不回来的。”
我当时没说什么,但回去之后我想了很久。他说我是“不是为了钱干活的人”,其实他说对了一半。我不完全是为了钱,但我也不是圣人。我也有我的脾气、我的计较、我的不甘心。我只是学会了把这些东西放在适当的位置,不让它们绑架我的人生。
迅达的项目做了大概一个月,比天辰的那个顺利多了,因为这次是从头开始帮他们重新做架构设计,没有历史包袱。验收的时候他们老板专门请我吃了顿饭,一个四十多岁的中年人,说话挺江湖气的。
“沈老师,我以前是听过你的,但那时候不懂事,觉得年轻人嘛,技术再好能好到哪儿去。这次是真服了,服得五体投地。”他举着酒杯说,“以后有什么需要,尽管开口,迅达这边您就是我座上宾。”
我跟他碰了碰杯说好。
出了餐厅之后我站在路边等车,夜风吹过来带着点凉意。我突然想起我妈说的话,她说人这一辈子最重要的是要活得堂堂正正,不欺负人也不被人欺负。我觉得我现在做到了。
钱是挣不完的,名声也是虚的,但那种挺直腰杆做人、凭本事吃饭的踏实感,是什么都换不来的。
这三年我最大的收获不是技术上的精进,也不是银行卡里的存款,而是我终于搞明白了一个道理:这个世界不会因为你善良就善待你,也不会因为你努力就回报你,但你可以选择用一种更体面的方式去回应那些不公平。不是报复,不是怨恨,而是把自己活成一个更好的人,让那些曾经看低你的人最后不得不承认——是你赢了,用一种不声张、不喧哗的方式。
有天晚上我失眠,翻来覆去睡不着,就爬起来打开电脑,把天辰那套系统的架构设计重新看了一遍。那是我二十四岁到二十九岁的心血结晶,每一行代码里都泡着我的汗水和眼泪。但现在再看,我发现我其实已经不恨那套系统了,也不恨那个逼我离开它的人。它就像我过去的一部分,好的坏的都长在我身上了,构成了现在的这个我。
我把它整理成一个完整的文档,加了一份详细的迁移指南,打包发给了陈建国。附了一句话:“以后再有谁要动这套系统,先让他看完这份文档再动手。”
陈建国秒回:“收到,谢谢。”
我关掉电脑,爬上床,这次很快就睡着了。
天亮了之后又是新的一天。我下楼买豆浆油条的时候碰见了王大爷,他拉着我说电脑又有点卡,问我能不能再帮忙看看。我说行,下午去你家。他乐呵呵地走了,背影消失在晨光里。
我咬了一口油条,酥脆的,满口香。
日子就这样一天天过,不紧不慢的。偶尔有难搞的项目找上门,偶尔有老朋友约着吃饭,偶尔被我妈催着相亲,偶尔晚上一个人坐在阳台上发呆看星星。这三年像是一场长长的修行,把我从一个愤懑的、想要证明给所有人看的年轻人,变成了一个安静的、只想过好自己日子的人。
至于那个八十万的故事,后来在圈子里传得越来越离谱,有人说我开价八百万,有人说我把陈建国骂哭了,还有人说我现在身价过亿。每次听到这些我都懒得解释,随他们传去吧。真正的生活哪有那么多戏剧性,不过是普通人之间的恩怨纠葛,最后各自上路罢了。
但如果有人问我,被开除三年后重新走进那栋大楼是什么感觉,我会说:就像重新走进你自己的过去,然后发现你已经不用再害怕它了。
那个下午我抱着纸箱子走出来的时候以为自己失去了一切,其实我只是失去了一间格子间。而我得到的是整片天空。
天空很大,足够我慢慢地飞。
要是您觉得这故事还有点意思,那就劳驾点个赞,关注一下晴晴故事馆。
免责声明:本故事纯属虚构,人物、公司、事件等均为艺术创作需要而设计,与现实中的任何个人、组织或事件无关。如有雷同,纯属巧合。故事内容旨在传递积极向上的价值观,不针对任何特定对象,不构成任何形式的建议或评价。
热门跟贴