那笔一万七千块的服务费到账时,我正坐在阳台的摇椅上,手里捧着一本翻了半个月还没看完的书。午后的阳光暖洋洋地洒在身上,驱散了初秋最后一丝凉意。手机“叮”地一声轻响,我瞥了一眼,是银行的入账通知。那一串数字,不多不少,正好是我报出的那个带着几分赌气、几分自嘲的价码。
我没有想象中的兴奋,甚至连一丝波澜都没有。关掉手机屏幕,我继续晃着摇椅,目光投向远处灰蒙蒙的天际线。九个月了,自从我从那栋亮着“永辉科技”招牌的写字楼里,抱着一个纸箱子走出来之后,已经过去了整整九个月。这九个月里,我刻意地让自己慢下来,学着养花,学着做复杂的菜式,学着与那个曾经一天要写上万行代码、把咖啡当水喝的自己和解。
我本以为,那段压抑而疲惫的岁月,会像电脑里的临时文件一样,被时间彻底清除。直到那个电话打来,我才发现,有些东西,只是被我埋在了心底最深处,从未真正离去。而此刻,真正让我感到释然的,并非银行卡里多出的那一万七,而是当我离开时,我那位前主管周毅,那张由错愕、不甘、最终转为铁青的脸。
那张脸,比这一万七千块钱,更能抚平我过去两年留下的所有内心褶皱。
一切,都要从那个闷热的周二下午说起。
第1章 那个熟悉的号码
那天下午,我正在厨房里跟一团高筋面团较劲。丈夫陈阳是个彻头彻尾的“面食胃”,我离职后闲来无事,便一头扎进了烘焙的世界。烤箱里正散发出黄油和小麦的香气,我额头上渗着细密的汗珠,手上沾满了面粉,享受着这种原始而踏实的劳作感。
手机就在这时不合时宜地响了起来。
我腾不出手,便用肩膀和脸颊夹住手机,划开了接听键:“喂,你好。”
“喂,请问是林蔚吗?”一个年轻又带着几分小心翼翼的女声传来。
“我是,您是?”我一边问,一边费力地将面团摔打在案板上,发出“砰”的一声闷响。
“啊,林姐,我是永辉科技人事部的小李啊,您还记得我吗?”
“小李?”我停下了手里的动作,脑子飞快地转动着。永辉科技,人事部,小李……哦,是那个我离职时帮我办手续的、刚毕业没多久的小姑娘。我的心没来由地沉了一下,擦了擦手,把手机拿正了。
“记得,怎么了?有什么事吗?”我的语气不由自主地变得客气而疏远。对于前公司,我没有任何留恋,甚至连朋友圈都屏蔽了所有前同事。我只想和那段经历做个彻底的切割。
电话那头的小李似乎有些紧张,说话都有些结巴:“那个……林姐,是这样的,公司这边……嗯……项目上出了点问题,想请您……回来帮忙看一下。”
我几乎是下意识地就想拒绝。“不了吧,”我尽量让自己的声音听起来平静,“我已经离职九个月了,公司的项目情况我早就已经不了解了。而且,我现在也没有再工作的打算。”
“别呀林姐,”小李的声音听起来快要急哭了,“是‘星辰系统’,您之前负责的那个项目。现在出了一个很严重的bug,系统核心模块频繁崩溃,已经影响到好几个大客户的正常使用了。周……周主管他们带着团队的人,熬了好几天了,都没找到问题在哪。”
听到“星辰系统”和“周主管”这两个词,我的胃里顿时一阵翻江倒海般的恶心。星辰系统,那是我倾注了将近两年心血,像养孩子一样一手带大的项目。从最初的架构设计,到每一个核心算法的实现,代码的字里行间都渗透着我的思考和汗水。而周主管,周毅,那个永远穿着不合身的衬衫,头发梳得油光锃亮,PPT做得天花乱坠,却连基础代码都看不懂的男人,则是我下定决心离开永辉科技的根本原因。
我深吸了一口气,压下心头翻涌的情绪,冷淡地说:“公司不是有新员工接替我的工作吗?让他们处理就好了。”
“新来的那位……那位同事,他……他不太熟悉您当初的设计思路,试了好几种方案都不行,还把问题改得更严重了。”小李的声音越说越小,“林姐,真的,这次问题很紧急,公司高层都知道了,下了死命令,必须尽快解决。您就当帮帮忙,回来看看吧,公司会支付您相应的劳务费的。”
劳务费?我心里冷笑一声。当初我为了这个项目,连续加班三个月,每天都到凌晨两三点才回家,最忙的时候甚至直接睡在公司的行军床上。周毅在项目总结会上,拿着我写的报告,对着大老板侃侃而谈,把所有的功劳都揽在自己身上,却在我提出因为长期超负荷工作导致健康出现问题,希望能够调整一下工作节奏时,用一句“年轻人要多点拼搏精神,不要总想着安逸”把我堵了回去。那时候,他怎么没想过给我发点“劳务费”?
“抱歉,小李,我真的帮不上忙。”我斩钉截铁地说道,“我现在有自己的生活,不想再被工作打扰了。”
说完,我便挂断了电话,不想再给她任何纠缠的机会。
厨房里,黄油的香气依旧浓郁,我却再也没有了继续揉面的心情。我洗干净手,走到客厅,瘫坐在沙发上,脑子里乱成一团。那个曾经让我引以为傲的“星辰系统”,如今像一个生了重病的孩子,而我这个“亲妈”,却只能狠心坐视不理。而那个让我深恶痛绝的周毅,他的焦头烂额,又让我心中升起一丝隐秘而扭曲的快意。
晚上,陈阳下班回来,我把这件事当成一个笑话讲给他听。他一边吃着我烤的面包,一边皱着眉头听完,然后放下手里的叉子,认真地看着我。
“他们还会再打来的。”陈阳的语气很肯定。
“不可能,我已经拒绝得很干脆了。”我摇摇头。
“不,你低估了那个系统对他们的重要性,也低估了你在那个项目里的价值。”陈阳说,“而且,你也高估了你那个前主管的能力。如果问题真的那么严重,他解决不了,最后这个锅还得他自己背。为了不背锅,他会不惜一切代价让你回去。”
我沉默了。陈阳也是程序员,他很清楚一个复杂系统的核心开发者有多重要。
“那你觉得我该怎么办?”我有些茫然地问。
“去。”陈阳的回答只有一个字。
“为什么?”我有些惊讶,“你不是一直都支持我辞职,让我好好休息吗?”
“休息和赚钱是两码事。”陈阳笑了笑,拿起一块面包递给我,“而且,这不仅仅是赚钱的事。你想想,你当初走的时候,受了多少委屈?那个周毅是怎么抢你的功劳,怎么打压你的?现在他们反过来求你,这难道不是一个最好的证明自己价值的机会吗?你不是去给他们打工,你是去做他们的救世主。姿态要摆正。”
“救世主?”我被他这个词逗笑了,心里的郁结也仿佛散开了一些。
“对,救世主。”陈阳的眼神里闪着一丝狡黠的光,“所以,如果他们再打电话来,你不要急着拒绝。你要让他们知道,请你出山的代价,是很高的。”
我看着陈阳,心里忽然有了一丝底气。或许,他说得对。这不仅仅是一次简单的返聘,更像是一场迟来的,为自己正名的战争。而我,需要为这场战争,定一个足够响亮的价码。
第2章 旧伤疤与新价码
果不其然,第二天上午,小李的电话又打了过来。这一次,她的语气比昨天更加急切和诚恳,甚至带着一丝哀求。
“林姐,求求您了,您就回来看看吧。昨天系统又崩了一整晚,客户的投诉电话都快把我们客服部打爆了。VP今天早上发了很大的火,说如果今天之内再解决不了,项目组所有人都等着挨处分。”
我靠在沙发上,一边用指甲钳慢悠悠地修着指甲,一边听着她在电话那头诉苦。我没有说话,只是安静地听着,让她把所有的压力和紧迫感都传递过来。我知道,现在的主动权,完全掌握在我的手里。
等她说完,我才不紧不慢地开口:“小李,不是我不帮忙。第一,我已经不是永辉的员工了,没有义务再处理公司的事情。第二,当初我负责这个项目的时候,所有的技术文档、架构图、核心代码注释,我都留得清清楚楚。如果你们的工程师连这点问题都解决不了,那不是我的问题。”
我的话语里带着一丝不易察觉的冷硬。这是我学着周毅的腔调,公事公办,把责任撇得一干二净。
电话那头沉默了几秒钟,然后传来一个压抑着不耐烦的男声:“林蔚,是我,周毅。”
我的心猛地一跳,握着手机的手指不自觉地收紧了。这个声音,即便隔了九个月,依旧能轻易勾起我所有不愉快的回忆。
“周主管。”我淡淡地应了一声。
“公司的情况,小李都跟你说了吧。”周毅的语气里带着一种居高临下的施舍感,仿佛他能亲自打电话给我,已经是天大的恩赐,“我知道你心里可能对公司、对有些事情有看法。但现在不是闹情绪的时候,项目为重。你回来,把问题解决了,公司不会亏待你的。”
闹情绪?我差点气笑了。我用健康换来的成果被他窃取,我提出的合理建议被他无视,我最后身心俱疲地离开,在他嘴里,竟然成了“闹情绪”。
我深吸一口气,告诉自己要冷静。现在,我是陈阳口中的“救世主”,不能被他轻易激怒。
“周主管,我想你误会了。我没有闹情绪,我只是在陈述一个事实:我已经离职了。”我顿了顿,语气变得更加冰冷,“而且,当初我还在职的时候,就多次提醒过你,系统后期接入新模块时,一定要注意数据接口的兼容性和并发处理能力,你当时似乎并没有放在心上。现在出了问题,才想起来找我这个‘外人’?”
我的话像一根针,精准地刺向了周毅的痛处。电话那头,我能清晰地听到他加重的呼吸声。我知道,他被我噎住了。当初,为了赶项目进度,向高层献媚,他强行要求我开放了几个本不应该开放的底层接口给另一个业务部门,我当时强烈反对,并提交了风险评估报告,但他根本没看,直接批了“同意”。现在出问题的,十有八九就是那个地方。
“过去的事情就不要再提了。”周毅的声音果然变得有些恼羞成怒,“你就说吧,怎么样才肯回来?”
来了,终于到正题了。
我想起了昨晚陈阳对我说的话:“开个价,一个让他们肉痛,但又不得不接受的价格。这个价格,要对得起你受的委屈,也要对得起你这两年的心血。”
我沉默了片刻,在心里快速地盘算着。按我之前的薪资,一个月的税后收入大概在两万五左右。这次回去解决问题,快则一两天,慢则三五天。单纯按时薪算,似乎要不了多少钱。但这不是一次简单的技术服务,这是一次“救火”,是为他们管理上的失误和技术上的无能买单。
“可以。”我缓缓开口,“但我不是以‘前员工’的身份回去帮忙,我是以‘独立技术顾问’的身份,提供一次性的技术解决方案。”
“行,没问题。”周毅答应得很爽快,他只想尽快解决问题。
“既然是技术顾问,那就要按市场价来。”我继续说道,“我的服务按项目打包收费,不按天,也不按小时。”
“你要多少?”周毅的语气里透着一丝警惕。
我看着窗外,一只麻雀落在阳台的栏杆上,歪着头看着我。我忽然觉得无比平静。我报出了那个经过深思熟虑,又带着一点恶作劇心态的数字。
“一万七。”
“多少?!”周毅的声音瞬间拔高了八度,充满了难以置信,“一万七?林蔚,你怎么不去抢?你解决一个bug要一万七?”
“周主管,我纠正一下。”我的声音依旧平稳,“第一,我不知道这是一个bug,还是一连串的bug,或者是一个系统架构上的缺陷。我需要看到代码才能评估工作量。第二,我提供的不仅仅是几行代码,而是保证系统恢复正常运行的解决方案,包括问题排查、代码修复、测试上线以及后续的风险规避建议。第三,也是最重要的一点,这个价格,包含了我中断自己正常生活,重新回到那个让我感到不愉快的环境里所付出的情绪成本。”
我把“不愉快的环境”这几个字咬得特别重。
电话那头死一般的寂静。我能想象到周毅此刻的脸色有多难看。他一定在心里把我骂了千百遍,但他也清楚,他没有别的选择。团队里的人解决不了,外面请顾问需要时间走流程,而且未必熟悉系统,而客户的压力和VP的怒火,正像两座大山一样压在他的背上。
过了足足有半分钟,周毅才从牙缝里挤出几个字:“……我需要和上面申请一下。”
“可以。”我说,“给你半个小时。半小时后,如果我没接到答复,这个价格就作废了。到时候你们再想请我,可能就不是这个价了。”
说完,我干脆利落地挂了电话。
放下手机,我的手心里全是汗,心脏“砰砰”地跳个不停。我既紧张又兴奋,像一个刚刚打完一场硬仗的士兵。陈阳从书房走出来,给我递了一杯水:“怎么样?”
“我开了价,一万七。”我喝了一口水,声音还有些发颤。
陈阳吹了声口哨:“够狠,我喜欢。他什么反应?”
“气得快说不出话了,说要去申请。”
“他会的。”陈阳笃定地说,“他现在是在跟时间赛跑,一万七和他的职位比起来,根本不算什么。你就等着吧。”
我看着陈阳,心里的石头落了一半。接下来的二十分钟,是我人生中最漫长的二十分钟。我坐立不安,一会儿去看看烤箱,一会儿又去浇浇花。手机每一次轻微的震动,都让我心惊肉跳。
终于,在第二十八分钟的时候,手机响了。还是小李打来的。
“林姐……”她的声音听起来有些复杂,似乎是松了口气,又带着点不可思议,“公司……公司同意了。您看您什么时候方便过来?我们给您准备合同。”
那一刻,我长长地舒了一口气,感觉浑身的力气都被抽空了。我赢了。不仅仅是赢了一万七千块钱,更是赢回了那份被周毅践踏得所剩无几的尊严。
“我下午两点到。”我说。
第3章 重返“战场”
下午一点半,我站在了永辉科技那栋熟悉的写字楼下。阳光刺眼,玻璃幕墙反射着冰冷的光,让我想起了过去无数个加班到深夜,抬头仰望这栋大楼时的疲惫与迷茫。九个月没来,这里的一切似乎都没变,又似乎哪里都变了。
我没有穿职业装,只是一身简单的T恤牛仔裤,背着一个双肩包,里面装着我的笔记本电脑。我不再是这里的员工林蔚,而是技术顾问林小姐。这个身份的转变,给了我足够的底气。
走进大门,前台换了新的小姑娘,她礼貌地拦住我,让我登记。我报上自己的名字和来意,她打了个电话,很快,人事部的小李就一路小跑地迎了出来。
“林姐,您来啦!”小李看到我,脸上堆满了热情的笑容,和我离职时那种公事公办的冷淡判若两人。
“嗯。”我淡淡地点了点头。
“合同已经准备好了,我们先去会议室签一下吧。”小D领着我往里走。
路过熟悉的工位区,空气中依旧弥漫着咖啡、代码和外卖混合的复杂气味。一些老同事看到了我,脸上露出惊讶的表情,远远地跟我点头示意,眼神里充满了好奇和探究。我能猜到,公司花重金请我回来救火的事情,恐怕已经在内部传开了。
我目不斜视,跟着小李走进了那间我曾经汇报过无数次工作的会议室。周毅已经等在里面了。他看到我,脸上挤出一个比哭还难看的笑容:“林蔚,来了啊。”
“周主管。”我公式化地打了声招呼,在他对面的位置上坐下。
小李把一式两份的劳务合同推到我面前。我拿起来,逐字逐句地仔细阅读。合同写得很清楚,甲方(永辉科技)聘请乙方(林蔚)为“星辰系统”提供技术顾问服务,服务内容为解决当前系统核心模块的紧急故障,服务费总计一万七千元人民币,税后。支付方式为项目完成后三个工作日内一次性付清。
确认无误后,我从包里拿出笔,签上了自己的名字。周毅也跟着签了字,盖上了部门公章。整个过程,他一言不发,脸色阴沉得能滴出水来。
签完合同,气氛变得有些尴尬。周毅清了清嗓子,试图重新掌握主动权:“好了,既然合同签了,那我们就抓紧时间吧。你跟我来,我给你介绍一下现在的情况。”
他起身想带我去工位,我却没动。
“周主管,不用了。”我开口道,“我不需要工位,就在这间会议室工作。麻烦你让人把项目的SVN权限给我开一下,然后把这几天所有的系统崩溃日志、客户反馈记录、还有你们已经尝试过的修复方案,都整理一份给我。在我看完这些资料之前,不要让任何人来打扰我。”
我的语气不容置喙。我不想再回到那个让我压抑的工位,不想再面对那些复杂的眼神。这间会议室,就是我的临时“战场”,我要在这里,用我的方式,打赢这场仗。
周毅的脸上闪过一丝不快,但最终还是忍住了。他现在是有求于我,不敢再像以前那样对我颐指气使。“行,都按你说的办。”他转身对小李说,“去,通知技术部,马上给林顾问开权限。还有,让项目组把所有相关资料都送到这个会议室来。”
很快,技术部给我开通了临时的VPN和代码库权限。项目组的一个小伙子,抱着厚厚一叠打印出来的资料,送进了会议室。他看我的眼神,充满了敬畏和好奇,像是看着一个传说中的人物。
等所有人都离开,会议室的门被关上,世界终于安静了下来。
我打开自己的笔记本电脑,连上公司的网络,开始下载“星辰系统”的源代码。看着那熟悉的进度条,我的心情有些复杂。这就像是探望一个许久未见,却被别人照顾得一塌糊涂的孩子,既心疼,又生气。
下载代码的同时,我开始翻阅那堆积如山的日志和报告。客户的投诉记录措辞激烈,充满了“无法容忍”、“严重影响业务”、“要求赔偿”等字眼。系统崩溃日志则更加触目惊心,满屏的红色错误代码,像一道道刺目的伤疤。而项目组的修复方案记录,更是让我看得直皱眉。他们完全没有找到问题的根源,只是在做一些头痛医头脚痛医脚的表面修补,甚至因为错误的修改,引发了更多潜在的问题。
我仿佛能看到周毅带着一群年轻的程序员,像一群无头苍蝇一样,在这堆乱麻中焦头烂额的样子。他那种只重管理、轻技术的作风,终于在此刻,让他付出了惨痛的代价。一个不尊重技术、不尊重专业人才的领导,当技术壁垒高到他无法用PPT和权术去逾越时,他的无能和恐慌,便会暴露无遗。
我摇了摇头,把这些杂念抛开,重新将注意力集中在眼前的工作上。当代码终于下载完成,我用熟悉的IDE打开项目工程的那一刻,我的心,反而彻底沉静了下来。
那些曾经让我头疼、也让我骄傲的代码,像一群久别重逢的老朋友,静静地躺在屏幕上。我知道,那个“幽灵”般的bug,就藏在它们的中间。而我,就是那个唯一能找到它,并驱逐它的猎人。
这场战争,现在才真正开始。
第4章 记忆的锚点:那次背锅的发布会
我全身心地沉浸在了代码的世界里。会议室的百叶窗被我拉了下来,隔绝了窗外的喧嚣和办公室里窥探的目光。桌上只有我的笔记本电脑、一沓打印资料和一杯早已凉透的咖啡。
“星辰系统”的复杂性远超外人想象。它是我职业生涯中承接过的最庞大的一个项目,涉及到底层数据处理、分布式计算和复杂的业务逻辑。当初为了这个项目,我几乎翻遍了所有能找到的业界顶尖的架构设计论文,每一个模块的设计都反复推敲,力求做到高效、稳定和易于扩展。
然而,当我看到被修改过的代码时,我的心一点点往下沉。在我离开的这九个月里,我的继任者显然对我的设计哲学一无所知。为了实现一些新的业务需求,他用一种极其粗暴的方式,在系统的核心模块上打满了“补丁”。原本清晰优雅的架构,变得臃肿不堪,到处都是冗余的代码和不合理的调用。这就像一栋设计精良的别墅,被后来的住户胡乱地加盖了许多违章建筑,不仅破坏了美感,更严重影响了主体结构的安全。
我强忍着骂人的冲动,耐着性子,一行一行地梳理着代码的逻辑。时间一分一秒地过去,我完全忘记了自己身在何处。直到一阵敲门声把我从深度沉浸中拉了出来。
是周毅。他端着一杯热气腾腾的咖啡走了进来,脸上挂着刻意讨好的笑容:“林蔚,辛苦了。喝杯咖啡提提神吧。”
我看了他一眼,没说话,只是点了点头。
他把咖啡放在我手边,却没有要走的意思,而是凑过来看我的电脑屏幕。“怎么样?找到点头绪了吗?”
“还在看。”我言简意赅地回答。
“这个bug确实很奇怪,”他开始自顾自地分析起来,试图显示自己的专业性,“我们追踪了很久,发现它只在并发量达到某个峰值,并且触发了特定的业务场景时才会出现。我们怀疑是内存泄漏,但用了好几个工具检测,都没有发现明显的泄漏点……”
他说的这些,都是我在日志里已经看到过的,毫无新意。我没有打断他,只是任由他在一旁喋喋不休。我的目光,却被屏幕上的一段代码吸引住了。那是一个关于数据同步的模块,正是我当初强烈反对开放给其他部门的那个底层接口。
看到这段代码,一个尘封已久的场景,瞬间在我脑海里变得清晰起来。
那是在一年多以前,“星辰系统”一期上线的发布会。为了那次发布会,我们整个项目组连续通宵了一个多月。发布会当天,公司所有高层都出席了,场面非常隆重。周毅作为项目负责人,在台上意气风发地介绍着系统的各项强大功能,PPT上的每一页,都凝聚着我们团队无数个不眠之夜。
然而,就在演示进行到最关键的环节时,意外发生了。演示服务器的负载突然飙升,系统响应变得极其缓慢,最终,一个鲜红的错误页面,赫然出现在了大屏幕上。
全场一片哗然。我当时坐在台下,感觉浑身的血液都凝固了。周毅在台上的脸色瞬间变得煞白。
发布会草草结束后,大老板把我们项目组的核心成员叫到会议室,劈头盖脸地训了一顿。周毅站在那里,头埋得低低的,一言不发。
等老板发泄完怒火,开始追究责任时,周毅突然抬起头,用一种非常诚恳又带着几分委屈的语气说:“王总,这次事故,我有不可推卸的领导责任。但是,从技术层面来看,主要还是因为我们在上线前的压力测试环节,做得不够充分。我多次督促过项目组的技术负责人,一定要覆盖所有极限场景,但可能……还是有些疏漏。”
他口中的“技术负责人”,自然就是我。
我当时就懵了。我难以置信地看着他。事实是,我提前一周就提交了详细的压力测试报告,报告明确指出,在某个特定的高并发场景下,系统存在性能瓶颈,建议延期一周上线,让我进行针对性的优化。但是这份报告,被周毅压了下来。他为了赶上公司的季度战略发布会,博取高层的关注,执意要按原计划上线。
此刻,他却轻描淡写地,把所有的责任都推到了我的头上。
我试图解释:“王总,不是这样的。我之前提交过风险评估报告,建议……”
我的话还没说完,就被周毅打断了。“林蔚,”他的语气听起来像一个宽容的长辈在教训不懂事的晚辈,“现在不是找借口的时候,出了问题,我们就要勇于承担。作为技术负责人,你应该对系统的每一行代码负责。”
那一刻,我看着他那张写满了“真诚”的脸,只觉得一阵刺骨的寒意从脚底升起,瞬间传遍全身。会议室里,所有人的目光都聚焦在我的身上,有同情,有疑惑,但更多的是审视。在大老板面前,没有人会相信一个普通工程师的辩解,而会选择相信一个看起来“勇于担责”的项目主管。
那次会议的结果是,我被通报批评,扣除了当月的全部奖金。而周毅,因为“主动承担领导责任”,只是被口头警告了几句。
从那天起,我便彻底看清了他的为人。他是一个精致的利己主义者,为了自己的前途,可以毫不犹豫地牺牲掉任何一个下属。所有的功劳都是他的,所有的黑锅都是我们的。
也是从那天起,我开始为离开做准备。我默默地整理着所有的工作交接文档,将“星辰系统”的每一个细节都记录下来。我不是为了公司,也不是为了我的继任者,我只是不想让我倾注了无数心血的作品,在我离开后,因为一个愚蠢的管理者而迅速腐朽。
现在想来,真是讽刺。一年前,他为了自己的面子,让我背上了一口沉重的黑锅。一年后,他却不得不低声下气地,花一万七千块钱,请我回来,为他自己当初的刚愎自用所埋下的祸根,收拾残局。
“林蔚?林蔚?”周毅的声音将我从回忆中唤醒。
我回过神来,发现他正用一种探究的眼神看着我。
我面无表情地指着屏幕上那段代码,冷冷地开口:“问题,应该就在这里。”
第5章 代码里的幽灵
周毅顺着我手指的方向看去,屏幕上正是我刚才凝视的那段数据同步接口的代码。他皱了皱眉,显然没看出什么名堂。
“这里?”他疑惑地问,“这个接口我们查过了,逻辑很简单,就是把A系统的数据同步到B系统,怎么会有问题?”
“逻辑本身是没问题。”我一边说,一边调出这段代码的提交历史,“问题出在调用它的地方。你们新开发的那个‘风控模块’,在什么情况下会调用这个接口?”
周毅愣了一下,他显然对这种技术细节不甚了解,只能转头向门外喊道:“小王,你进来一下!”
很快,那个之前给我送资料的年轻程序员小王跑了进来。“周主管,林姐。”
“你给林顾问解释一下,风控模块是怎么调用这个数据同步接口的。”周毅命令道。
小王显得有些紧张,他看着我,结结巴巴地解释起来。原来,为了实现一个实时的风控预警功能,他们让风控模块以极高的频率,在后台不断地调用这个数据同步接口,以获取最新的业务数据。
我听完,心里已经有了答案,但还是追问了一句:“调用的频率有多高?”
“大概……每秒钟十几次吧。”小王的声音越说越小。
我差点没把嘴里的咖啡喷出来。我强忍着怒气,对周毅说:“周主管,我能和小王单独聊聊吗?有些技术细节,我需要确认一下。”
周毅虽然不情愿,但还是点了点头,走出了会议室。
门关上后,我对小王说:“你别紧张,坐。把风控模块的源代码调出来给我看。”
小王依言操作。我看着他的代码,发现这个年轻人虽然经验不足,但态度还算认真,代码写得也算规范。只是,他在一个关键的地方,犯了一个致命的错误。
“你在这里,每次调用同步接口之前,都创建了一个新的数据库连接,但是在调用结束之后,却没有释放掉它。对吗?”我指着屏幕上的一段代码,平静地问。
小王脸色“刷”地一下白了,他盯着代码看了半天,额头上渗出了冷汗,嘴唇哆嗦着,半天说不出一句话。
我叹了口气,语气放缓了一些:“你是不是觉得,这个连接对象在方法执行完之后,会被垃圾回收机制自动回收?”
他猛地抬起头,眼神里充满了惊恐和恍然大悟,然后重重地点了点头。
“理论上是这样,但数据库连接池有自己的管理机制。你这样高频率地创建连接却不手动释放,会导致连接池里的活动连接很快就被耗尽。一旦连接池满了,后续所有的数据库请求都会被阻塞,等待空闲连接。而我们的‘星辰系统’,几乎所有核心功能都依赖数据库。所以,当风控模块一启动,整个系统就会因为拿不到数据库连接而陷入假死状态,直到连接超时,然后引发雪崩式的崩溃。”
我用最简单的语言,向他解释了这个“幽灵”bug的成因。这根本不是什么内存泄漏,而是一个更基础、也更隐蔽的资源管理问题。对于一个经验丰富的老程序员来说,这是个常识性的错误,但对于一个刚入行不久的新人,确实很容易忽略。
小王的脸已经变成了猪肝色,他几乎要哭出来了:“对不起,林姐,我……我真的不知道会这样……我……”
“这不完全是你的错。”我打断了他,“你刚来,不熟悉整个系统的架构,也没有人告诉你这个接口的调用限制。负责代码审查的人,应该负主要责任。”
我心里很清楚,那个所谓的“负责代码审查的人”,就是周毅。但他那种水平,能看出什么问题才怪。他所做的,无非是在代码提交记录上,点一下“同意合并”的按钮罢了。
“那……那现在该怎么办?”小王六神无主地问。
“很简单。”我拿过他的电脑,双手在键盘上飞快地敲击起来。我用了一个标准的“tryfinally”语句块,将数据库连接的创建和释放逻辑包裹起来,确保无论代码是否出现异常,连接最终都能被正确地关闭。然后,我又在接口的注释里,用加粗的红色字体,补充了一段警告:“【严重警告】此接口为底层核心接口,调用频率不得高于1分钟1次!非必要情况严禁调用!”
整个修改过程,不超过五分钟。
做完这一切,我对小王说:“好了,你把这个版本发布到测试环境,用压力测试工具模拟一下之前的场景,看看还会不会崩溃。”
小王如蒙大赦,抱着电脑,千恩万谢地跑了出去。
我靠在椅子上,长长地舒了一口气。找到问题并解决它的过程,给了我一种久违的满足感。这是一种纯粹的、属于创造者的快乐,与金钱和职位都无关。
大概半个小时后,周毅推门进来了,他的身后跟着一脸兴奋的小王。
“林蔚,解决了!真的解决了!”周毅的脸上堆满了笑容,那种如释重负的表情,和我记忆中那次发布会后他推卸责任的样子,形成了鲜明而讽刺的对比,“我们用压测工具跑了半天,系统负载一直很平稳,再也没有出现崩溃!你真是太厉害了!”
他毫不吝啬地夸赞着我,仿佛我们之间从未有过任何不快。
我只是淡淡地“嗯”了一声,开始收拾自己的东西。
“问题已经解决了,剩下的就是走上线流程了。”我把笔记本电脑装进包里,“我的工作完成了。麻烦周主管尽快安排一下,把服务费结一下。”
“没问题!没问题!”周毅满口答应,“我马上就去跟财务打招呼,保证尽快给你办!”
他看着我,似乎还想说点什么,比如客套地留我吃个饭,或者探讨一下后续的系统优化方案。但我没有给他这个机会。
我背上包,站起身,平静地看着他,说:“周主管,再见。”
说完,我便转身,头也不回地走出了会议室,走出了这栋我曾经以为会奋斗终生,最后却只留给我一身伤痕的写字楼。
第6章 与闺蜜的深夜食堂
走出永辉科技的大门,外面已经华灯初上。晚高峰的车流像一条拥堵的河流,缓缓地在城市的主干道上流淌。我深深地吸了一口混合着汽车尾气和尘土的空气,却感觉无比的轻松。
我没有立刻回家,而是给闺蜜苏彤打了个电话。
“喂,美女,干嘛呢?”
“刚做完一台手术,累得像条狗。怎么,你这个无业游民终于想起我这个劳动人民了?”苏彤的声音带着一丝疲惫,但依然中气十足。她是一家三甲医院的外科医生,是我们朋友圈里最忙碌的人。
“请你吃饭,撸串,喝啤酒,地方你定。”我干脆地说。
“哟,太阳打西边出来了?你不是早就戒了这些‘不健康’的食品吗?”苏彤调侃道。
“今天心情好,值得破例。”
“行,老地方见。”
半小时后,我在一家烟火气十足的烧烤店里见到了苏彤。她已经脱掉了白大褂,换上了一身便装,但眉宇间的疲惫依然清晰可见。
我们点了两大盘烤串,几瓶冰啤酒。冰凉的液体滑过喉咙,带走了我一天的疲惫和紧绷。
“说吧,什么事让你这么高兴?看你这春风得意的样子,不知道的还以为你中了五百万呢。”苏彤一边啃着鸡翅,一边含糊不清地问。
我把今天发生的事情,从接到电话,到开价一万七,再到重返公司,如何用五分钟时间解决掉他们几天都搞不定的问题,一五一十地讲给了她听。我讲得眉飞色舞,仿佛在讲述一个别人的传奇故事。
苏彤安静地听着,时不时地给我递上一串烤好的腰子。等我讲完,她拿起酒瓶,跟我碰了一下。
“干杯!”她说,“为你迟来的正义。”
我一饮而尽,感觉无比畅快。“什么正义啊,就是挣了点外快而已。”
“得了吧你,”苏彤白了我一眼,“你心里那点小九九我还不知道?你根本就不是为了那一万七。你是为了出口恶气,是为了看那个姓周的吃瘪的样子。”
我嘿嘿一笑,算是默认了。
“不过话说回来,你今天这事办得,真叫一个漂亮。”苏彤由衷地赞叹道,“当初你辞职的时候,我就跟你说,像周毅那种人,迟早会栽跟头。没想到报应来得这么快,还让你亲手递上了铁锹,真是大快人心。”
“其实,”我喝了口酒,情绪有些低落下来,“当我看到那个接替我的小伙子,因为一个新手错误而差点背上大锅的时候,我心里挺不是滋味的。我仿佛看到了当年的自己。”
“这不一样。”苏彤说,“你是被周毅恶意甩锅,那个小伙子,最多算是技术不精,加上周毅监管不力。而且,你不是也帮他解围了吗?你没当着周毅的面,把责任都推到他身上,已经算是仁至义尽了。”
我点了点头。苏彤总是能一针见血地看到问题的本质。
“你知道吗,彤彤,”我看着烤炉里跳动的炭火,轻声说,“今天下午,当我坐在那个会议室里,看着那些熟悉的代码时,我有一瞬间的恍惚。我发现,我恨的不是那家公司,也不是那份工作。我曾经是那么热爱我的事业,我享受那种从无到有,构建一个复杂系统的成就感。我恨的,只是周毅那样的人,是那种乌烟瘴气的职场环境。它会磨灭你的热情,践踏你的专业,让你觉得你所有的付出,都像个笑话。”
苏彤沉默了。她伸过手,拍了拍我的手背。
“都过去了,蔚蔚。你现在已经离开了那个泥潭。而且,你今天用自己的实力,狠狠地打了他的脸。你让他,也让所有人知道,你林蔚,不是一个可以随便拿捏的软柿子。你的价值,需要他们用真金白银来衡量。”
“你说,他们会不会觉得我狮子大开口,为了钱才回去的?”我有些不确定地问。
“他们怎么想,重要吗?”苏彤反问,“你在乎他们的看法吗?你在乎那个周毅怎么评价你吗?如果他在乎你的看法,当初就不会那样对你。所以,别想那么多。你拿了钱,证明了自己,潇洒地转身离开。这才是最酷的姿态。”
我看着苏彤,她眼神里的坚定和豁达,像一束光,照亮了我心里最后一点阴霾。
是啊,我为什么要在乎他们的看法?我不再是他们的员工,我的人生,也和他们再无交集。我所做的一切,都只是为了对得起我自己。
那一晚,我和苏彤聊了很多。聊我们刚毕业时的梦想,聊这些年在职场上的摸爬滚滚,聊未来的打算。我们喝光了桌上的所有啤酒,直到烧烤店的老板开始打哈欠,我们才意犹未尽地离开。
回家的路上,晚风吹在脸上,带着一丝凉意,我的头脑却异常清醒。我给陈阳发了条微信:“老公,我回家了。今晚很开心。”
他很快回复:“开心就好。记住,你值得最好的。”
我看着手机屏幕,笑了。是的,我值得。我值得被尊重,值得被认可,值得拥有一个更广阔、更自由的未来。而今天,就是我迈向这个未来的,一个全新的开始。
第7章 一万七与一张铁青的脸
接下来的两天,我过得异常平静。我没有再接到永辉科技的任何电话,仿佛之前发生的一切都只是一场梦。我照常去菜市场买菜,回家研究新的食谱,下午在阳台上看书、打盹。陈阳也没有多问,只是每天下班回来,都会给我带一束小小的鲜花。
我知道,他在用他的方式,支持和安慰我。
直到周五的早上,我接到了财务部王姐的电话。王姐是公司的老员工,一个雷厉风行、公事公办的女人,我以前和她打过几次交道,对她印象还不错。
“是林蔚吧?我是财务部的王洁。”她的声音一如既往地干练。
“王姐,您好。”
“你的那笔技术服务费,流程已经走完了。你看你是提供一个银行卡号,我们给你转账,还是你方便过来一趟,现场办理一下,顺便签个字?”
“我过去一趟吧。”我想了想说。我需要回去拿一份盖了财务章的合同副本,也想为这件事,画上一个最终的、有仪式感的句号。
“行,那你上午过来吧。”
挂了电话,我换了身衣服,简单地化了个淡妆。镜子里的我,气色红润,眼神明亮,和九个月前那个憔悴不堪、满眼疲惫的自己,判若两人。
再次来到永辉科技,我的心情已经完全不同。我像一个来访的客人,从容而坦然。
我直接去了财务部。王姐看到我,朝我笑了笑,指了指旁边的椅子:“你先坐一下,我把单子调出来。”
她很快就拿着一份支付凭证和我的那份劳务合同走了过来,递给我:“你看一下,金额对不对,没问题的话,在这里签个字。”
我接过来看了看,一万七千元,税后。我拿起笔,正准备签字,财务部的门口,出现了一个我最不想看到的人——周毅。
他似乎是来找王姐报销什么费用的,看到我,明显愣了一下。随即,他的目光落在了我手里的支付凭证上,脸色瞬间就变了。
“王姐,这是……”他指着那张单子,语气里充满了质疑。
王姐头也没抬,一边在电脑上操作,一边随口回答:“哦,这是给林蔚的技术服务费。VP特批的,加急流程。”
周毅的眉头拧成了一个疙瘩。他大概没想到,这笔钱会这么快就批下来。在他看来,我一个离职员工,财务流程怎么也得拖上一两个星期。
“一万七……”他看着那个数字,几乎是从牙缝里念出来的,“就为了改一个bug?”他的声音不大,但足以让办公室里所有竖着耳朵的同事都听到。
他的话里,充满了不甘和贬低。他试图在最后关头,也要挽回一点自己的面子,暗示我是在敲竹杠。
我还没来得及说话,王姐却先开口了。她停下了手里的工作,抬起头,淡淡地瞥了周毅一眼。
“周主管,话不能这么说。”王姐的声音不高,却带着一种不容置疑的权威,“首先,这不是‘改一个bug’的钱,这是‘解决系统瘫痪危机’的钱。我听业务部门的人说,系统崩溃那几天,公司每天的直接和间接损失,都不止这个数。其次,这笔钱是VP亲自审批的,VP认为,花一万七请专家回来解决问题,比让整个项目组停摆、客户流失的代价,要小得多。”
王姐特意在“专家”两个字上,加重了读音。
她顿了顿,又补充了一句,而这一句,像一把最锋利的刀,精准地插进了周毅的心脏。
“而且啊,周主管,咱们做管理的,要算大账。如果当初我们能留住像林蔚这样的人才,可能根本就不会出现这种问题,也就不用花这笔‘冤枉钱’了,不是吗?”
王姐的话,说得云淡风轻,却字字诛心。财务部的办公室里,瞬间陷入了一片死寂。所有人都停下了手里的工作,假装在忙,耳朵却都竖得高高的。
我看到,周毅的脸,以肉眼可见的速度,从白到红,再从红到紫,最后变成了一种难看至极的铁青色。他的嘴唇动了动,似乎想反驳什么,却一个字也说不出来。他那副错愕、屈辱、又不甘的表情,深深地烙印在了我的脑海里。
我知道,王姐未必是在为我出头。她只是站在一个财务管理者的角度,陈述了一个冰冷而残酷的事实。但这个事实,却比任何恶毒的语言,都更能摧毁周毅那可怜的自尊心。
他终于意识到,他引以为傲的管理权术,在真正的价值和赤裸裸的商业损失面前,是多么的不堪一击。他为了省下一点点看得见的薪资成本,赶走了一个核心技术人员,最终却付出了几十倍、甚至上百倍的代价。这笔账,VP会算,财务会算,公司里的每一个人,都会算。
我没有再看他,只是平静地在支付凭证上签下了自己的名字,然后把合同收好。
“谢谢你,王姐。”我对王姐说。
“不客气。”王姐对我笑了笑,那笑容里,带着一丝成年人之间心照不宣的默契。
我站起身,拿着属于我的那份文件,从周毅身边走过。自始至终,我没有再看他一眼,也没有和他说一句话。对他最好的蔑视,就是彻底的无视。
当我走出财务部大门的那一刻,我听到了身后传来其他同事压抑着的、窃窃私语的声音。我知道,从今天起,周毅在公司的威信,将一落千丈。他将成为整个技术部,乃至整个公司的笑柄。
而这一切,与我无关了。
第8章 阳台上的风
我回到了故事开始的那个场景。
坐在阳台的摇椅上,手里捧着那本没看完的书,阳光温暖,微风和煦。银行卡里静静地躺着那一万七千块钱,而我的心里,却比任何时候都要平静。
我没有报复的快感,也没有胜利的喜悦。那种感觉,更像是在心里搬开了一块压了很久的巨石,长长地舒了一口气,感觉整个世界都变得轻松和开阔了。
陈阳下班回来,看到我正在厨房里哼着歌准备晚餐。
“款收到了?”他从背后抱住我,下巴搁在我的肩膀上。
“嗯。”我笑着说,“一分不少。”
“那我们今晚必须好好庆祝一下。”他说,“不如出去吃吧,我知道有家新开的西餐厅不错。”
“不要。”我摇了摇头,把一盘刚切好的番茄递到他嘴边,“我想在家里吃。我做了你最爱吃的红烧肉,还烤了面包。”
陈阳愣了一下,随即笑了:“好,听你的。”
他知道,对我而言,最好的庆祝,不是昂贵的晚餐和喧闹的场合,而是在这个属于我们自己的小家里,享受一顿充满烟火气的、温馨的晚餐。
吃完饭,我们一起窝在沙发上看电影。我把头靠在陈阳的肩膀上,闻着他身上熟悉的味道,心里感到无比的安宁和踏实。
“老公,”我轻声问,“你说,我是不是挺小心眼的?为了过去那点事,还特意回去折腾一趟。”
陈阳关掉了电视,认真地看着我:“不,你不是小心眼。你只是在拿回本该属于你的东西。那不只是一万七,那是你的尊严,你的价值,还有你对那份工作的热爱和付出。这些东西,比钱重要得多。”
他顿了顿,继续说:“而且,你做这件事,不是为了向他们证明什么,而是为了向你自己证明。证明你有能力,有价值,有权利对那些不公平的事情说‘不’。这是你的一次成长,我为你感到骄傲。”
我听着他的话,眼眶有些湿润。是啊,这或许才是我此行最大的收获。我学会了不再委屈自己,学会了用合理的方式,去捍卫自己的边界和尊严。
那一万七千块钱,我没有动。我用它给自己报了一个高级烘焙班,还买了一台专业的单反相机。我开始认真地经营我的慢生活,把每一个平凡的日子,都过得有滋有味。我拍下阳台上每一朵盛开的花,记录下烤箱里每一个面包膨胀的过程,然后把这些美好的瞬间,分享在我的社交媒体上。
我不再屏蔽那些前同事。我甚至看到,有人在我的照片下点了赞。
后来,我听一个还在永辉科技的朋友说,周毅因为那次事件,以及后续暴露出来的更多管理问题,被调离了项目管理的岗位,成了一个没有实权的闲职。而那个叫小王的年轻程序员,据说成长得很快,已经可以独当一面了。
听到这些消息,我心里没有太大的波澜。那些人,那些事,都已经成了我生命里的过去式。就像电脑回收站里的文件,虽然曾经存在过,但清空之后,便再也与我无关。
现在的我,偶尔也会接一些私活,但前提是,项目我感兴趣,合作的人我喜欢。我不再为了薪水和职位去透支自己的健康和热情。我终于明白,工作只是生活的一部分,而不是全部。真正重要的,是找到自己喜欢的生活方式,并且有能力去守护它。
阳台上的风,依旧温柔地吹着。我看着远处城市的灯火,第一次觉得,未来充满了无限的可能。而那段在永辉科技的经历,连同那一万七的服务费和周毅那张铁青的脸,都将成为我人生故事里,一个虽不完美,却意义非凡的注脚。
它提醒我,永远不要低估自己的价值,也永远不要放弃为自己争取尊严的权利。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.