我把那张薄薄的离职报告放在陈良桌上时,他脸上的笑容还没完全绽开。
“谢谢陈主管,我笑纳了。”
我的声音平稳,像在说今天天气不错。
“不过这个,还是留给更需要的人吧。”
陈良嘴角的弧度僵在那里,眼睛盯着报告上的“离职申请”四个字。
他的手指无意识地抽动了一下,喉结上下滚动。
办公室里空调开得很足,但他额角渗出了细密的汗。
五分钟后,手机震动了。
来电显示是“魏总”。我走到窗边才按下接听键。
“小唐啊,”魏全的声音从听筒里传来,比平时低了半个调,语速却快了不少,“现在有空吗?到楼上茶室坐坐,咱们好好聊聊。”
背景里有打火机开合的清脆声响。
我望向楼下街景,车流像一条缓慢移动的光河。
“好。”
挂了电话,转身看见程弘文站在办公室门口。他手里攥着一份刚打印出来的故障报告,眼睛睁得很大,嘴唇微微张开,像是想问什么又不敢问。
茶室的门虚掩着,烟味已经飘到走廊上了。
01
项目庆功宴摆在市中心那家老牌酒店。
水晶灯的光洒下来,在酒杯上折射出细碎的光斑。
陈良端着香槟站在主桌旁,正对着魏全比划着什么。
他今天穿了新西装,深蓝色,衬得脸色很精神。
“这次‘晨曦’能提前上线,全靠魏总的战略眼光。”陈良的声音比平时高了一个八度,“当然,团队也很努力,尤其是技术团队,加班加点……”
魏全微微颔首,手指在桌沿轻轻敲着。
程弘文凑到我旁边,压低声音:“陈主管刚才汇报了四十分钟,就提了你一句‘唐工负责部分模块实现’。”
我端起酒杯抿了一口。
酒是甜的,咽下去后舌根有点苦。
“正常。”我说。
程弘文还想说什么,陈良已经举杯走了过来。他拍拍我的肩膀,力道不轻不重。
“高寒辛苦了,这半年没少熬夜吧?”
“应该的。”
“对,为公司做事,都是应该的。”陈良的笑容堆在脸上,转头又去招呼其他部门的人。
程弘文盯着陈良的背影,喉结动了动。
他是个藏不住情绪的年轻人,去年刚进公司时跟在我手下学技术,眼睛里有股光,看什么都新鲜。
现在那光暗了些,但还没完全熄灭。
“唐哥,主架构是你设计的,核心算法也是你优化的。”他的声音有点发涩,“陈主管连需求文档都没看过几遍……”
“弘文。”我打断他,“喝酒。”
他又看了我一眼,仰头把杯里的酒灌下去。
宴席散时已经快十点。陈良被几个中层簇拥着去第二场,魏全的车早就等在门口。我和程弘文走到地铁站,夜风有点凉。
“唐哥,下个季度调薪,你应该能涨不少吧?”程弘文忽然问。
“也许吧。”
“肯定能,这次项目利润这么高……”
地铁进站的声音淹没了他的后半句话。车厢里空荡荡的,玻璃窗映出我们俩的影子。我靠在椅背上,闭上眼睛。
半个月前,我交上去的技术总结报告,陈良只改了署名就转给了魏全。
这不是第一次。
02
人事部的通知是下午三点发来的邮件。
“薪酬结构调整……结合个人绩效……下调一档……”那些字在屏幕上排列得很工整,像一个个冰冷的代码。
我盯着最后那个数字,比上个月少了百分之十五。
这是半年内的第二次。
第一次是在三个月前,理由是“行业整体下行,公司需要共渡时艰”。陈良当时找我谈话,坐在他那张宽大的办公桌后面,手指交叉放在桌面上。
“高寒啊,你是老员工了,应该理解公司的难处。”他的语气很诚恳,“等这阵子过去了,肯定会补偿大家。”
我点头说好。
那天下午,我偶然在财务部门口听见两个小姑娘聊天。说陈主管刚申请了一笔特别经费,要给几个“重点培养对象”发项目奖金。
名单上没有我的名字。
这次我直接去了陈良办公室。他正在打电话,看见我进来,用手捂住话筒。
“有事?”
“看到调薪通知了。”
“哦那个。”陈良松开手,对着电话说了句“等下打给你”,然后放下手机,“公司层面的决策,我也很无奈。不过你放心,等‘晨曦’二期预算批下来,我一定给你争取。”
他说话时眼睛没有看我,而是盯着电脑屏幕。屏保是张风景照,雪山湖泊,一片纯净的蓝。
“二期预算什么时候批?”
“快了,就这几天。”陈良终于抬起头,露出那种熟悉的、安抚性的笑容,“你是技术骨干,公司不会亏待你的。对了,‘晨曦’的维护文档你抓紧整理一下,客户那边可能要些补充材料。”
走出办公室时,走廊的窗户开着。楼下花园里,几个年轻员工在抽烟说笑。其中一个是陈良的表侄,上个月刚转正,据说薪资定的比我降薪前还高。
我回到工位,程弘文正在调试一段代码。他转过头,看见我的脸色,想问又没敢问。
“没事。”我坐下来,打开文档,“继续干活。”
键盘敲击声在安静的办公区里显得格外清晰。
屏幕上的代码一行行往下滚,逻辑缜密,结构清晰。
这是我花了两年时间搭建起来的系统,每一个模块都浸着心血。
但现在看来,有些东西比代码更复杂。
03
新项目的预研会议通知是周一早上发的。
邮件抄送给了技术部所有人,但会议邀请只发给了六个名字。我扫了一眼名单:陈良,他的两个亲信,还有三个其他部门的负责人。
我的名字不在上面。
程弘文凑过来看我的屏幕,眉头皱起来:“唐哥,这个‘启明’项目不是要用‘晨曦’的核心框架吗?怎么不叫你去?”
“可能不需要吧。”
“怎么会不需要?”他的声音提高了一点,“整个架构你最清楚,那些底层接口……”
“弘文。”我打断他,“去把上周的故障报告整理一下。”
他抿抿嘴,转身回了自己工位。
会议在下午两点开始。
我坐在隔着一堵玻璃墙的工位上,能看见会议室里的人影。
陈良站在白板前挥舞着手臂,另外几个人频频点头。
窗外的阳光斜射进来,在白板上反射出一片刺眼的光。
中间休息时,陈良的一个亲信出来倒咖啡。经过我工位时,他脚步顿了一下。
“唐工,忙着呢?”
“嗯。”
“那个……陈主管让我问你,‘晨曦’的架构文档能不能发我一份?‘启明’项目需要参考。”他的语气很自然,像在要一份普通的会议记录。
我握着鼠标的手停住了。
“哪部分?”
“全部。”他笑了笑,“反正你都有整理。”
茶水间的水壶发出沸腾的鸣叫。我听见自己的声音说:“好,等我整理完发你。”
“谢啦!”他端着咖啡杯走了。
程弘文不知什么时候又过来了。他盯着那个人的背影,嘴唇抿成一条直线。
“唐哥,我昨天听产品部的人说,‘启明’是公司明年重点,预算特别充足。”他的声音压得很低,“他们还说,这个项目成了,参与的人至少能调薪百分之三十。”
我没有说话。
电脑屏幕上,架构文档的目录树展开着。
从基础框架到业务模块,从数据库设计到接口规范,一共四百多个文件,是我这两年一个字一个字敲出来的。
现在有人想直接拿走。
不是第一次了。
04
那个“彩蛋”功能是陈良亲自拍板加的。
客户方的负责人是他大学同学,饭桌上随口提了句“要是能有个一键生成炫酷报表的功能就好了”。
陈良当场就答应下来,说“小事,包在我身上”。
回来开需求会时,技术团队所有人都沉默了。
“陈主管,现有的报表系统是自研的,架构不支持这种动态渲染……”一个后端工程师试图解释。
“那就改架构。”陈良挥挥手,“客户满意度是第一位的,明白吗?”
“但开发周期至少要两个月……”
“一个月。”陈良打断他,“月底我要看到演示版。”
散会后,程弘文跟着我回到工位,脸涨得通红:“这不合理!现有架构要是硬改,后续所有报表都会受影响……”
“我知道。”我打开IDE,“开始干活吧。”
那一周团队天天加班。
我在系统日志里追踪一个诡异的缓存问题时,无意间点开了一组服务器访问记录。
时间戳是三个月前,凌晨两点,来自陈良的办公IP。
他访问的是设计文档服务器的某个目录。
那个目录里存放着“晨曦”项目的核心设计图,包括一些还未公开的架构思路。
我顺着记录往下翻,看到一组异常的外发记录——文档被压缩后发送到了一个外部邮箱。
邮箱前缀是“tech_consulting”,域名属于另一家公司。
一家和我们有竞争关系的公司。
我盯着那行记录看了很久。屏幕的光映在眼镜片上,有些反光。窗外夜色浓重,办公室里只剩我一个人的呼吸声。
凌晨三点,我把日志截屏保存到加密盘,然后清除了浏览记录。
继续调试代码时,手指有些僵硬。
那个“彩蛋”功能最终还是在月底赶出来了。
演示会上客户很满意,拍着陈良的肩膀说“老同学够意思”。
陈良笑得眼睛眯成一条缝,说“应该的,咱们什么关系”。
庆功宴我没去,留在办公室修复一个刚发现的边界bug。程弘文给我带了盒饭回来,放在桌上时欲言又止。
“唐哥,你是不是……”
“吃饭吧。”我打断他。
饭已经凉了,油凝结在白米饭上。我扒了两口,味同嚼蜡。
05
我开始整理所有的工作文档。
从项目初期的调研报告,到每一次迭代的技术方案,从每次线上事故的复盘记录,到每个模块的接口说明。
文档按照时间顺序排列,标注清晰,像一本详尽的病历。
程弘文有一次凑过来看,惊讶地说:“唐哥,这些不是早就归档了吗?”
“再梳理一遍。”我说。
他看了我一会儿,小声问:“唐哥,你是不是……在准备什么?”
我没有回答,继续整理文档。
个人电脑上有一个文件夹,里面是我这几年利用业余时间写的小工具。
有自动化测试脚本,有部署效率提升插件,有代码规范检查器。
这些东西没有写入公司资产列表,因为当初陈良说“这种边角料的东西,不用正式提交”。
现在我把它们一个个移出工作环境,打包加密。
简历是在周末更新的。
我没有主动投递,只是挂在几个专业平台上。
周一早上,猎头的电话就打来了。
对方语气热情,说“唐工您在行业里名气很响,有好几个机会想推荐给您”。
我约了晚上八点通话。
电话打到一半时,程弘文的微信消息弹出来:“唐哥,陈主管让我问你,‘晨曦’的性能优化方案能不能写个总结?他说‘启明’项目要用。”
我看着那条消息,隔了五分钟才回复:“好。”
电话那头的猎头还在介绍职位详情。
是一家初创公司,技术团队是几个前大厂出来的,做的方向很有意思。
最后他说:“唐工,如果您有兴趣,薪酬可以在这个基础上再谈。”
他说了个数字,是我现在薪资的两倍。
挂掉电话后,我坐在书房里很久没动。窗外的路灯一盏盏亮起来,在玻璃上投下昏黄的光晕。电脑屏幕已经暗了,映出我自己的脸。
三十岁,眼角有了细纹,头发比前几年薄了些。
手机又震了一下,还是程弘文:“唐哥,优化总结不急,你别又熬太晚。”
我回复:“知道了。”
光标在文档末尾闪烁。我新建了一个空白文件,敲下标题:工作交接清单。
06
合同到期前五天,我去了陈良办公室。
他正在打电话,语气很热情:“王总放心,这个功能我们一定优先排期……对,就下个月……”
看见我进来,他比了个手势示意稍等。
我站在门口,打量这间办公室。
书架上有几本管理学畅销书,包装都没拆。
墙上挂着裱好的书法,“天道酬勤”四个大字,落款是某个不知名的书法家。
桌角摆着家庭合影,照片里陈良搂着妻子和女儿,笑得一脸灿烂。
“高寒啊,有事?”他终于挂了电话。
“陈主管,我的合同下周五到期。”
“哦对,瞧我这记性。”陈良拍拍额头,笑容可掬,“放心,续约流程已经在走了。你是核心员工,公司肯定要留的。”
“流程大概需要几天?”
“这个……”他翻了下日历,“两三天吧。人力资源那边最近忙,不过我会催的。你安心工作,啊?”
我点点头:“好。”
走出办公室时,背后传来陈良继续打电话的声音:“王总,刚才说到哪了……”
工位上,程弘文正对着屏幕发呆。我坐下来,他立刻转过头。
“唐哥,续约的事……”
“陈主管说在走流程。”
程弘文的嘴唇动了动,像是想说什么,最后只是叹了口气。他转回身去,肩膀微微垮下来。
下午三点,我去了楼梯间。这里没有监控,信号也稳定。拨通那个存了一个月但从未打过的号码。
“喂,高寒?”电话那头的声音很熟悉,是我前同事林晖。两年前他离职创业,我们偶尔会在技术论坛上交流。
“林哥,上次说的事,我考虑好了。”
电话那头安静了两秒,然后林晖的声音郑重起来:“你确定?我们这边可是盼星星盼月亮啊。”
“确定。”
“太好了!”林晖的声音里有压抑不住的兴奋,“团队其他几个人听说你要来,都高兴坏了。你什么时候能入职?待遇就按我们上次谈的,期权部分再加百分之五……”
“下个月一号。”我说。
“行!合同我这就让法务准备……”
通话进行了二十分钟。回到工位时,程弘文已经不在了。桌上有张便利贴,是他留下的:“唐哥,我去楼下买咖啡,你要吗?”
字迹有些潦草。
我坐下来,打开邮箱。里面有三封未读邮件,一封是“启明”项目组的会议纪要,一封是人力资源的例行通知,还有一封是猎头发来的新职位推荐。
全选了,删除。
窗外天色渐暗,城市的灯火一盏盏亮起。我打开交接文档,开始写最后一部分:潜在风险及应急预案。
敲到第三条时,手指顿了顿。
07
合同到期前两天的早晨,公司气氛就不对劲。
我八点半到办公室时,已经有好几个人聚在陈良办公室门口。
透过玻璃墙,能看见陈良在打电话,脸色很难看。
他一只手用力挥舞着,嘴唇快速开合,但隔音太好,听不见声音。
程弘文小跑着过来,呼吸有点急。
“唐哥,‘晨曦’出事了。”
“嗯?”
“预上线环境凌晨三点崩溃,客户那边正在做演示,现场就卡死了。”他语速很快,“运维折腾到现在都没恢复,陈主管的亲信李工在搞,但好像越搞越乱……”
我坐下来,打开电脑。
内部通讯软件上,故障报警群已经刷了几百条消息。
从凌晨三点十七分第一个报警开始,到现在的束手无策。
有人@了李工几次,对方只回复“正在排查”。
九点十分,陈良办公室的门猛地打开。
他冲出来,眼睛扫了一圈,最后落在我身上。那张平时总是带着笑意的脸此刻绷得很紧,嘴角的法令纹深得像刀刻。
“高寒,你来一下。”
他的声音还算平稳,但脚步很快。我跟在他身后走进办公室,他反手关上门,力道有点重。
“坐。”陈良指了指沙发,自己却没坐,在办公桌前来回踱步,“‘晨曦’预上线环境的情况你知道了吧?”
“刚听说。”
“李工搞不定。”陈良停住脚步,双手撑在桌沿上,“客户那边已经发火了,说如果再解决不了,就要重新评估合作。魏总刚才也打电话来问……”
他深吸一口气,转过身面对我:“高寒,现在只有你能救场了。你马上接手,需要什么资源直接提,我今天必须看到系统恢复。”
办公室里安静了几秒。
空调的出风口嗡嗡作响,桌上的电子钟数字一跳一跳。
陈良的额头开始冒汗,他抽了张纸巾擦了擦,又补了一句:“当然,不会让你白辛苦。我已经和魏总申请了,给你特别加薪,百分之……五十。”
他说出这个数字时,眼睛紧盯着我。
“续约合同今天就能签,薪资从下个月开始执行。”陈良的语调急促起来,“高寒,你是老员工,公司不会亏待你。这次处理好了,年底奖金也给你争取最高档。”
我看着他。
看着他眼里的急切,看着他嘴角强挤出来的笑容,看着他撑在桌上微微发抖的手指。
窗外阳光很好,照在他那身深蓝色西装上,领带夹闪着一点金属光泽。
“陈主管。”我开口,声音很平静。
“你说。”他立刻接话,身体前倾。
我从随身带的文件夹里抽出一张纸,放在他桌上。纸是A4大小,对折过,展开时发出轻微的脆响。
陈良的目光落在那张纸上。
他的表情凝固了。
从惊讶到困惑,再到难以置信,最后变成一片空白。
那张总是能说会道的嘴张了张,没发出声音。
他伸手去拿那张纸,动作很慢,像电影里的慢镜头。
纸上只有几行字:
离职申请
申请人:唐高寒
离职日期:合同到期日
下面是我的签名,黑色水笔,字迹工整。
“谢谢陈主管,我笑纳了。”我说,“不过这个,还是留给更需要的人吧。”
陈良的手指捏着那张纸,纸张边缘微微发颤。他抬起头看我,嘴唇动了动:“高寒,你这是……”
“离职报告麻烦您签批一下。”我打断他,“按照流程,今天提交,周五最后工作日。交接文档我已经准备好了,随时可以移交。”
“不是,高寒你听我说……”
“陈主管。”我看着他,笑了笑,“预上线环境的问题,根源在于底层架构强行支持了那个‘彩蛋’功能。数据库连接池的设计有缺陷,压力一大就会崩溃。问题我在两个月前就提过,当时您说‘客户需求优先’。”
陈良的脸一点点变白。
“解决方案在交接文档的‘故障应急预案’章节,第四节。”我继续说,“李工如果仔细看过技术文档,应该能找到。不过那份文档,他似乎一直没时间看。”
办公室里死一般的寂静。
陈良的手松开了,离职报告飘落在桌面上。
他向后踉跄一步,跌坐在椅子上。
椅子轮子滑动了一下,撞到背后的书架。
那几本没拆封的管理学畅销书晃了晃。
我转身走向门口。
手握住门把时,身后传来陈良干涩的声音:“高寒,我们还可以再谈谈……”
我没有回头,拉开门走了出去。
走廊里,几个同事正在张望。看见我出来,又赶紧低下头假装做事。程弘文站在工位旁,手里攥着一份报告,眼睛睁得很大。
我走回自己座位,开始收拾东西。
电脑屏幕还亮着,上面是那份详尽的交接文档。我点了保存,关掉窗口。桌面很干净,除了几个工作必需的软件图标,什么都没有。
手机就是在这时震动的。
08
震动持续了五秒。
我拿起手机,看着屏幕上“魏总”两个字。来电头像是一张标准照,魏全穿着深色西装,头发梳得一丝不苟,嘴角带着职业性的微笑。
按下接听键。
“小唐啊。”魏全的声音传来,比平时低了半个调,但语速很快,“现在有空吗?到楼上茶室坐坐,咱们好好聊聊。”
背景里有打火机开合的清脆声响,一下,又一下。
“好。”我说。
“现在就来吧。”魏全顿了顿,又补了一句,“我泡了壶普洱,陈年的。”
电话挂断了。
我放下手机,继续收拾东西。
键盘、鼠标、笔记本、几支笔。
抽屉里还有些零碎物品:一盒没开封的咽喉糖,一包纸巾,几张便签纸。
我把它们装进纸箱,动作不紧不慢。
程弘文走过来,站在旁边。他嘴唇抿得很紧,手指无意识地绞在一起。
“唐哥,你要走?”
“为什么……这么突然?”
我没有回答,把最后几本书放进纸箱。
一本是《设计模式》,书页已经翻得卷边。
一本是《算法导论》,扉页上有我几年前写的签名。
还有一本薄薄的技术手册,是“晨曦”项目初期我自己整理打印的。
“唐哥。”程弘文的声音有点抖,“刚才陈主管办公室……我听见了。”
我抬起头看他。
这个年轻人的眼睛红了,不是要哭的那种红,而是一种混合着困惑、愤怒和难过的红。
他进公司时二十二岁,现在二十六岁。
四年时间,他跟着我从一个连版本控制都用不好的菜鸟,成长到能独立负责核心模块。
“弘文。”我说,“下午如果有空,我把交接文档给你讲一遍。”
他愣住:“给我?”
“你是最熟悉‘晨曦’的人之一。”我盖上纸箱,“后续维护,可能需要你多费心。”
“可是唐哥……”
楼梯间的门这时开了,陈良走出来。他的脸色还是白的,看见我时脚步顿了顿,然后快步走向电梯间。西装外套的衣角扬起,像一片慌张的旗帜。
电梯门开了,他走进去,转身时目光和我对上。
只一秒,门就关上了。
楼上茶室在十七层,是公司接待重要客户的地方。铺着厚地毯,摆着红木家具,墙上有字画,柜子里陈列着各种茶叶。平时很少开放。
我抱着纸箱走到电梯口。
程弘文跟了上来:“唐哥,我帮你拿……”
“不用。”我按下上行按钮,“你先回去工作。如果李工找你问故障的事,你就说解决方案在文档里。”
电梯来了。走进去时,程弘文还站在原地,像一尊凝固的雕像。
电梯门缓缓合上,他的脸消失在缝隙里。
十七层很安静。走廊两侧是会议室,大多数空着。茶室在最里面,门虚掩着,烟味已经飘出来了。
我敲了敲门。
“进来。”魏全的声音。
09
茶室里烟雾缭绕。
魏全坐在红木茶台的主位,正在洗茶。动作很慢,很稳,沸水冲入紫砂壶,蒸汽升腾起来。他抬眼看了看我,指了指对面的位置。
“坐。”
我把纸箱放在门边的矮柜上,走过去坐下。茶台很大,刻着莲花图案。茶具是整套的宜兴紫砂,颜色暗沉,包浆很润。
魏全没说话,继续泡茶。
洗茶、醒茶、冲泡,一道道工序做下来,有条不紊。
他的手指很粗,但动作精细。
茶汤倒入两个小杯,琥珀色的液体在杯里轻轻晃动。
“尝尝。”他把一杯推到我面前,“十年的普洱,存得不错。”
我端起茶杯。温度透过杯壁传来,有些烫手。茶香很浓,带着陈年老茶特有的木质味。
“好茶。”
魏全笑了笑,端起自己那杯抿了一口。
然后放下杯子,身体向后靠在椅背上。
他今天没穿西装外套,只穿了件深灰色衬衫,袖子挽到小臂。
手表是块老式机械表,表盘已经泛黄。
“小唐,你在公司几年了?”
热门跟贴