第1章 二百五
手机屏幕亮了一下。
银行短信躺在通知栏里,尾号7839的储蓄卡到账250元,备注写着“年终奖”。
我盯着那个数字看了三秒。两百五。不多不少,正好是骂人的数。
办公室里键盘声此起彼伏,没人说话。隔壁工位的周明远探过头来,压低声音:“老陈,你多少?”
我把手机翻了个面扣在桌上。“够买两斤排骨。”
周明远愣了一下,缩回去继续敲代码。他比我晚来三年,上个月刚提了技术组副组长。我在这家公司干了十一年,从三十岁干到四十一岁,工位从靠窗挪到靠厕所,头衔从“高级工程师”变成“资深工程师”,然后就没有然后了。
张总从玻璃隔间里走出来,拍了拍手。“大家注意一下啊,年终奖已经到账了,今年公司确实困难,大家多体谅。明年业务好转,一定给大家补上。”
他说这话的时候眼睛看着天花板,像在背诵一段和自己无关的台词。
没人接话。张总站了两秒,转身回了隔间,玻璃门关上的声音很轻。
我打开抽屉,里面放着一盒没拆封的降压药。上个月体检,医生说我血压偏高,让我少熬夜。我当时笑着说好,回来继续改了三个通宵的代码。那套系统是我十年前搭的底层架构,到现在还在跑,公司百分之八十的业务数据都从上面过。
下午四点五十分,我关掉代码编辑器,清理了桌面上的水杯和笔记本,把抽屉里的降压药装进包里。周明远抬头看我:“陈哥,今天走这么早?”
“到点了。”
“张总说今晚可能要加班,新项目那边——”
“我下班了。”
我背着包走过张总的玻璃隔间,他正对着手机笑,没抬头。走廊尽头的打卡机嘀了一声,显示屏跳出一行字:陈立诚,17:00,签退成功。
地铁上人很多,我抓着吊环,手机又亮了一下。周明远发来消息:张总在群里问你去哪了,说新项目出了点问题,让你赶紧回公司。
我没回。
紧接着又是一条:陈哥,张总说你年终奖的事他不知情,是上面统一定的。
第三条:他打了你电话,你没接。
我翻了翻通话记录,确实有三个未接来电,都是张总。我把手机调成静音,塞进口袋。
到家的时候天已经全黑了。妻子苏敏在厨房炒菜,油烟机声音很大。儿子陈一鸣在房间里写作业,听见开门声喊了一句“爸”,又没声了。
我换了鞋,坐在沙发上。手机屏幕一直在亮,张总的电话一个接一个。第十一个的时候我按了拒接。第十二个又来了。
苏敏端着菜出来,看了一眼我的手机。“谁啊?”
“张总。”
“怎么不接?”
“不想接。”
她没再问,转身去盛饭。结婚十四年,她已经习惯了我这种沉默。我也习惯了她不追问。我们之间不知道从什么时候开始,就变成了这样,话越来越少,日子越来越淡,像一锅煮太久的粥。
饭吃到一半,手机又响了。这次是周明远。
“陈哥!出大事了!公司核心数据库被攻击了!所有备份都被锁了!张总快疯了,让你无论如何接电话!”
我夹了一筷子青菜。“报警了吗?”
“报了!但是对方用的是勒索病毒,加密强度特别高,我们解不了!那套底层架构是你十年前写的,除了你没人能碰!”
我嚼着青菜,听见电话那头张总在远处喊:“让他接电话!告诉他多少钱都行!”
周明远压低声音:“陈哥,张总说只要你回来解决问题,年终奖的事可以再谈。”
我放下筷子。
“明远,我年终奖拿了多少你知道吧?”
“……知道。”
“两百五。够我加一箱油,跑五百公里。从公司到家是十二公里,我跑十一年,跑了四万八千公里。两百五除以四万八千,一公里五分钱。”
电话那头沉默了。
“你跟张总说,我下班了。”
我挂了电话,关机。
苏敏看着我。“公司出事了?”
“嗯。”
“你不去?”
“不去。”
她沉默了一会儿,给我碗里夹了块排骨。“不去就不去。吃饭。”
我低头扒饭的时候,看见陈一鸣站在房间门口,手里拿着作业本,眼睛亮晶晶地看着我。他十一岁,已经能听懂很多事了。
“爸,你是不是被欺负了?”
“没有。”
“那你怎么不接电话?”
我放下碗,看着他。“因为爸爸今天想早点回家。”
他似懂非懂地点点头,回房间去了。
夜里十一点,我躺在床上。苏敏已经睡了,呼吸很轻。我没开机,不知道那一边变成了什么样。但我知道那套系统的所有弱点,知道数据被锁之后每拖延一小时会有什么后果,知道张总现在一定在办公室里来回走,像热锅上的蚂蚁。
我知道,但我不想去。
枕边的手机安静得像块石头。我闭上眼睛,脑子里却浮出十一年前的画面,我坐在那间只有六个工位的办公室里,张总——那时候还是小张——拍着我的肩说,老陈,这套系统要是成了,咱们都是元老。
现在小张变成了张总,我变成了拿两百五的老陈。
凌晨两点,我醒了。窗外的路灯把天花板照出一块昏黄的光斑。我翻了个身,看见苏敏也醒着,眼睛睁着看黑暗中的某个方向。
“睡不着?”她问。
“嗯。”
“你其实想去。”
我没说话。
“你从十点开始翻来覆去到两点,比平时多醒了三次。你每次有心事都这样。”
她太了解我了。我叹了口气,伸手去摸手机。开机之后,屏幕上的通知像洪水一样涌出来。未接来电:99个,来自张总。短信:47条。微信:数不清。
最后一条短信是凌晨一点四十三分发的,只有八个字:陈哥,公司要完了。
我坐起来,穿着睡衣走到阳台上。夜风很凉,楼下保安室的灯还亮着。远处高架桥上的车流像一条发光的河,无声地流。
我翻到张总的号码。拇指悬在拨号键上,停住了。
十一年。四万八千公里。两百五十块钱。
我按下了拨号键。
电话只响了一声就接通了,张总的声音嘶哑得几乎听不出来:“老陈!你在哪!我求你了——”
“张总。”我打断他,“我不是来谈年终奖的。”
“你说!什么条件都行!”
“我要那套系统的完整权限,包括底层代码的修改权。书面授权,明天早上八点前发到我邮箱。”
电话那头停顿了两秒。
“……好。我马上让法务准备。”
“还有。”
“你说!”
“我要你公开说明,这套系统是我一个人建的。从第一行代码到最后一次更新,全部都是我。我不需要奖金,不需要头衔,我只要一个清白。”
夜风从阳台灌进来,吹得客厅窗帘轻轻鼓动。我听见电话那头张总急促的呼吸声,听见他身后乱成一锅粥的办公室,听见有人在喊“张总备份恢复了百分之三”。
“好。我都答应。”
我挂了电话,在阳台上又站了一会儿。
苏敏不知什么时候走到我身后,给我披了件外套。“去吗?”
“去。”
“我就知道。”
她转身回屋,过了一会儿递给我一杯热水。“先把药吃了。”
我从包里摸出降压药,就着温水吞了两粒。出门前,我回头看了一眼儿子的房间。门缝里透出一点光,他大概还没睡。
我走到他门口,轻轻敲了一下。“一鸣,爸爸出去一趟。”
门开了,他揉着眼睛,声音带着睡意。“爸,你去公司?”
“嗯。”
“那你还回来吗?”
“天亮前回来。”
他想了想,从口袋里掏出一颗糖,塞进我手里。“那你路上吃。”
那颗糖握在手心,有点黏。我攥着它出了门。
电梯里,手机又响了。张总的电话,这是第一百个。我接了。
“老陈,法务已经在写授权书了!你到哪了?我派车来接你!”
“不用。我自己开车。”
“好好好,你快点,这边真的撑不住了——”
“张总。”
“嗯?”
“那两百五,我收下了。就当是你们买断我十一年加班费的钱。”
电话那头彻底沉默了。
我挂了电话,发动车子。仪表盘的光映在脸上,红色的指针从零跳到一千转。凌晨三点的城市很空,路灯一盏接一盏往后跑。我握着方向盘,手心里还攥着那颗糖,没舍得拆。
第2章 授权书
到公司楼下的时候,凌晨三点二十七分。
整栋写字楼只有十七层还亮着灯。我把车停进地下车库,发现张总的黑色奥迪停在入口最近的位置,车头歪着,显然停得很急。电梯门打开的时候,里面飘出一股烟味。地上有三个烟头,都是同一种牌子,张总只抽这个。
十七楼的门禁虚掩着,走廊里没人。办公区灯火通明,七八个人围在会议室的白板前面,张总站在中间,衬衫袖子挽到小臂,头发乱得像刚睡醒。他看见我进来,三步并作两步冲过来,伸手要握我的手。
我没伸手。
“授权书呢?”
张总的手在空中停了一下,缩回去,转身从会议桌上拿起一个牛皮纸信封。“法务连夜赶出来的,你看看。”
我拆开信封,抽出三页纸。第一页是授权说明,第二页是权限清单,第三页是张总的签名和公司公章。我逐行看完,把纸折好放进口袋。
“系统现状?”
周明远从电脑后面抬起头,黑眼圈很重。“陈哥,对方用的是新型勒索病毒,加密算法把主表和备份表全锁了。我们试了所有已知解密工具,没用。”
“日志呢?”
“被清了一部分。对方在攻击前用管理员账号登录过,删了登录记录。”
“哪个管理员账号?”
周明远看了张总一眼。张总咳了一声。“是我的账号。但我没泄露过密码,我真的不知道——”
“你的密码是不是设的六个八?”
张总的脸一下子涨红。“我……方便记。”
我没再说什么,走到我的工位。电脑还开着,屏幕上是刚才没关掉的代码编辑器。我坐下,手指放在键盘上,十一年养成的肌肉记忆让手指自己找到了位置。
“明远,把物理隔离的备用服务器打开。就是那台放在机房角落、三年没关过的。”
“那台?那台连的是内网旧系统,和现在的主库不兼容——”
“主库的底层架构是我写的。我说兼容就兼容。”
周明远愣了一下,转身往机房跑。
我打开终端,输入一行命令。屏幕上跳出一串十六进制代码。我一行一行往下翻,找到第三十七行的某个参数,改了一个数值,回车。
“张总,你过来看。”
张总凑过来,盯着屏幕。
“这是攻击者修改过的参数。他把数据加密的触发阈值调低了,导致系统自动锁死了所有连接。这不是外部勒索,是内部有人拿着你的管理员权限改的配置。”
张总脸色发白。“内部?谁?”
“你的账号登录记录虽然被删了,但网络设备上有镜像。明远,把交换机日志调出来。”
周明远从机房探出头。“交换机日志?那个要路由器权限——”
“用我的账号。密码是十九位混合字符,我待会儿发你。”
张总看着我,嘴唇动了动。“老陈,你的账号权限……”
“比你高。十一年前建系统的时候,我给自己留了后门。本来是用来做灾难恢复的,没想到今天用上了。”
办公室安静了几秒。周明远在机房里喊:“找到了!昨晚十点零七分,有一个内网IP登录了张总的账号,IP地址是……十七楼会议室那台公用电脑。”
所有人的目光转向会议室角落那台台式机。那台电脑平时没人用,键盘上落了一层灰。
张总走过去,按亮屏幕。电脑没设密码,直接进了桌面。桌面上干干净净,只有回收站里有一个刚删不久的文档。
周明远点开回收站,还原文档。是一份员工通讯录,加密的。打开之后,里面有一行被红笔圈出来的名字。
我的名字。
“陈立诚,工号017,入职日期……”
张总念到一半停住了,抬头看我。“老陈,这个人是谁?”
通讯录上,我的名字旁边,用红笔写着四个字:不可留用。
我盯着那四个字,脑子里闪过很多画面。周明远三个月前被提为副组长时欲言又止的表情,张总上个月把我从核心项目组调去维护旧系统的通知,人事部那个新来的小姑娘每次见到我都低头快步走过。
“张总。”我听见自己的声音很平,“年终奖两百五,是你签的字吧?”
他的脸从白变红,又从红变青。“我……那是人事部报上来的方案,我只是走流程——”
“你走流程的时候,看见我的名字,就没想过问问为什么?”
他没说话。
我转过身,对着电脑屏幕。手指在键盘上敲了四行命令,屏幕跳出一个蓝色进度条。
“病毒在解密了。大概需要四十分钟。在这四十分钟里,张总,你给我解释清楚,这份通讯录是谁做的,那四个字是谁写的。”
张总站在那里,像一条被扔上岸的鱼。周明远从机房走出来,站在我旁边,看了我一眼,又看了张总一眼,最后低下头。
“陈哥。”他的声音很轻,“通讯录是人事部李经理做的。但红笔圈出来……是张总的意思。”
张总猛地抬头:“周明远你——”
“我看见了。上周三晚上,你让我加班改系统配置,我经过你办公室门口,门没关严。你拿着笔在名单上画圈,一边画一边打电话,说‘这个人不能留,他知道太多了’。”
办公区里剩下的几个人都停下了手里的活。有人悄悄把手机屏幕按灭,有人往后退了一步。
我盯着屏幕上那个蓝色进度条,一格一格往前走。四十分钟,足够我把这十一年从头到尾想一遍。
“张总。”我的声音没什么起伏,“我建这套系统的时候,你还在跑销售。我改底层代码的时候,你在陪客户喝酒。我通宵修bug的时候,你在海南度假。十一年,我没请过一次年假,没拿过一次项目分红,没升过一次职。”
进度条走到一半。
“两百五。”我笑了一声,很短,“你打发叫花子呢。”
张总张了张嘴,没发出声音。
“系统还有二十分钟恢复。恢复之后,我会把所有权限交接给明远。然后我辞职。”
周明远急了:“陈哥——”
“你听我说完。”我打断他,“这套系统我留了后门,本来是为了灾难恢复。但今天我用它查了攻击来源。你知道攻击者是怎么拿到张总账号密码的吗?”
所有人看着我。
“去年年底,公司开年会,张总喝多了,在酒店大堂用公用电脑登过邮箱。那台电脑上被人装了键盘记录器。装记录器的人,是通过内网进入的。而内网的漏洞,是我三个月前提交过补丁、但张总批了‘暂缓处理’的那个。”
张总的脸彻底白了。
“你压我的补丁,压我的年终奖,在名单上圈我的名字。张总,你到底是怕我知道太多,还是怕别人知道你知道太多?”
进度条跳到百分之百。屏幕上弹出一行绿色文字:解密完成,数据完整率百分之九十九点七。
我站起来,把椅子推回桌下。从口袋里掏出那颗糖,放在键盘旁边。
“明远,剩下的事交给你了。授权书在我口袋里,明天你去找法务正式备案。”
我拿起包,往门口走。经过张总身边的时候,我停了一下。
“对了,张总。那九十九个电话,我一个都没接。你知道为什么吗?”
他看着我,眼睛里全是血丝。
“因为从今天起,我的时间只卖给尊重它的人。你出两百五,我就只值两百五。你出尊重,我才值十一年。”
我走出办公区,按下电梯。身后很安静,没人追出来。
电梯门关上之前,我听见周明远喊了一句:“陈哥,系统好了!数据全在!”
我按下一楼。电梯往下走的时候,手机震了一下。苏敏发来消息:回来了吗?
我回:在路上了。
她又发:一鸣给你留了灯。
我看着那行字,喉咙有点紧。电梯到一楼,门打开,车库里的灯白晃晃的。我走到车旁边,坐进去,发动。
手机又震了一下。这次是周明远:陈哥,张总刚才在办公室哭了。李经理被叫来了,两个人在会议室吵。你要不要回来看看?
我回了一个字:不。
然后把手机扔到副驾驶座上,开出车库。天还没亮,但东边的云已经开始泛白。我握着方向盘,手心里的汗把方向盘套浸得有点潮。那颗糖留在公司了,但我记得它的味道,橘子味的,儿子最喜欢的那种。
第3章 暗流
到家的时候,天刚蒙蒙亮。
苏敏坐在客厅沙发上,身上裹着毯子,茶几上的水杯还冒着热气。她看见我进门,站起来。“系统的事解决了?”
“解决了。”
“那你脸色怎么这么难看?”
我换了鞋,坐到她旁边。沙发垫子陷下去一块,发出轻微的声响。我靠在靠背上,盯着天花板上那盏便宜的吸顶灯。灯罩里积了一层灰,光线透过灰蒙蒙的塑料片洒下来,把整个客厅照得昏黄。
“张总在员工名单上圈了我的名字。旁边写了四个字,不可留用。”
苏敏的手停在半空,正要给我倒水。她慢慢把水壶放下,转过身看我。“你说什么?”
“我查了攻击来源。是内鬼配合外面的人做的。内鬼用的是张总的账号,张总自己也有份。他在名单上圈了我,意思是这次攻击之后要把我裁掉。”
“为什么?”
“因为我三个月前发现了一个系统漏洞,提交了补丁。那个漏洞如果被人利用,可以拿到整个数据库的最高权限。张总批了‘暂缓处理’。”
苏敏看着我,眼睛里有种说不清的光。“那你今天把系统修好了,他……”
“他哭了。在办公室。”
她沉默了一会儿。“你辞职了?”
“嗯。”
“那接下来怎么办?”
“不知道。先睡一觉。”
我站起来往卧室走。经过儿子房间的时候,门开了一条缝,陈一鸣的脑袋探出来,头发乱蓬蓬的。“爸,你回来了。”
“嗯。怎么醒这么早?”
“我听见你开门。”他揉着眼睛,声音黏糊糊的,“爸,你公司的事解决了吗?”
“解决了。”
“那你以后还去吗?”
我蹲下来,和他平视。他十一岁,眼睛很亮,像苏敏。“不去了。爸爸换一个地方工作。”
他想了想。“那是不是以后可以早点回家?”
“可以。”
他笑了,露出两颗小虎牙。“那挺好的。”
我拍拍他的头,让他回去睡觉。自己进了卧室,倒在床上。身体很累,脑子却停不下来。闭上眼睛,全是那四个红笔圈出来的字,不可留用。翻来覆去不知道多久,终于迷迷糊糊睡着了。
醒来的时候已经中午。阳光透过窗帘缝隙照进来,在床单上拉出一道白线。苏敏不在床上,厨房里有切菜的声音。我摸过手机,屏幕上全是未接来电和消息。
周明远打了七个电话,发了十几条微信。最后一条是:陈哥,出事了。李经理反咬一口,说你私自留后门,违反公司安全规定,要追你的责。
我坐起来,揉了揉太阳穴。回了一条:张总什么态度?
周明远秒回:张总没表态。但公司法务刚才找我谈话了,问我知不知道你后门的事。陈哥,他们可能要告你。
我盯着那行字看了十秒钟,然后拨通了周明远的电话。
“明远,授权书在我这里。上面写得很清楚,我拥有系统底层代码的完整权限。后门是我建系统的时候就留的,属于原始设计的一部分,不是后来私自添加的。”
“可是李经理说——”
“她说没用。让她来找我。”
挂了电话,我穿好衣服走到客厅。苏敏正在盛饭,看见我出来,指了指餐桌。“先吃饭。”
我坐下,端起碗。她做了西红柿鸡蛋面,汤是红的,鸡蛋炒得很嫩。我吃了两口,放下筷子。
“苏敏。”
“嗯?”
“公司可能要打官司。”
她盛饭的手顿了一下,然后继续把面条挑进碗里。“打就打。你有授权书,有十一年加班的记录,有那个补丁被压下来的邮件。怕什么。”
我看着她。她没抬头,但嘴角绷得很紧。我忽然想起来,上一次看见她这么绷着嘴角,是陈一鸣三岁时发高烧,我加班赶不回来,她一个人抱着孩子在医院排了四个小时队。那时候我到家已经凌晨,她也是这样,盛了碗面放在桌上,一句话没说。
“我待会儿去一趟公司。”我说。
“把面吃完。”
我低头把面吃完,汤也喝干净。出门前,她从柜子里翻出一个文件夹,递给我。“这是你这几年加班审批单的复印件。我每个月都去人事部复印一份。你说我多事,我没听你的。”
我接过文件夹,翻开。里面整整齐齐按日期排着,从七年前开始,每个月都有。加班时长加起来,是两千多个小时。
“你什么时候开始弄的?”
“你第一次通宵改代码的时候。那时候一鸣刚满月,你三天没回家。我就想,万一哪天你累倒了,这些得有个凭证。”
我把文件夹装进包里,在她脸上亲了一下。她愣了一下,然后推我:“快去吧。别让人家等。”
到公司的时候,气氛和凌晨完全不一样。办公区里人来人往,键盘声、电话声、打印机声混在一起,好像什么都没发生过。但经过我工位的时候,我注意到电脑被锁了,屏幕上贴着一张便签:设备冻结,待查。
周明远从会议室跑出来,脸色很难看。“陈哥,李经理在里面,法务也在。张总还没来。”
“张总人呢?”
“不知道。电话打不通。”
我推开会议室的门。李经理坐在长桌一端,四十来岁,短发,戴着金边眼镜。她面前摊着一叠文件,旁边坐着一个穿西装的中年男人,是法务老赵。老赵看见我进来,点了一下头,算是招呼。
“陈立诚。”李经理开口,声音很尖,“你私自留后门的事,已经严重违反了公司信息安全规定。我现在代表公司正式通知你,你的行为可能涉及刑事——”
“李经理。”我打断她,把包里的授权书抽出来,放在桌上。“张总亲笔签的授权书。法务连夜拟的,公章齐全。上面写着,我拥有系统底层代码的完整权限,包括后门程序。”
李经理脸色一变,拿起授权书看了两遍,递给老赵。老赵看完,推了推眼镜。“这份授权书……法律效力没问题。张总签了字,盖了章。”
“而且。”我从包里又拿出那个文件夹,啪地放在桌上。“这是我七年来所有加班审批单的复印件。总计两千三百四十七小时。按照劳动法规定,公司应该支付我加班费。我粗略算过,大概十七万。加上未休年假的补偿,二十万出头。”
李经理的嘴唇抿成一条线。
“另外。”我又从口袋里掏出手机,翻到一封邮件截图。“这是我三个月前提交系统漏洞补丁的邮件。张总回复的是‘暂缓处理’。这个漏洞,就是昨晚攻击者利用的入口。如果公司要追究责任,那我们先从这封邮件开始追。”
会议室安静了。老赵把授权书和文件夹都看了一遍,转头对李经理说:“李经理,这事恐怕得张总亲自来定。”
李经理站起来,金边眼镜后面的眼睛盯着我。“陈立诚,你别以为有张总的签字就万事大吉。张总今早给我打了电话,说他被胁迫签的字。”
我笑了一声。“胁迫?昨晚他在电话里求我去公司,凌晨三点我到他办公室,他亲手把信封递给我。法务拟的授权书,公章是人事部保管的。我胁迫他什么了?”
李经理不说话。
“李经理,名单上那四个字,是你写的还是张总写的?”
她的脸刷地白了。
“红笔圈名字,写‘不可留用’。你以为删了就没事了?十七楼会议室那台电脑,回收站里的文档,我昨晚就发给劳动监察大队了。”
李经理猛地站起来,椅子向后倒去,砸在地上发出一声闷响。老赵赶紧打圆场:“陈工,陈工,有事好商量。李经理也是按流程办事——”
“流程?”我看着李经理,“我在这家公司干了十一年,建了整套系统,通宵了两千多个小时。你们给我两百五的年终奖,在名单上圈我的名字,现在还要告我?李经理,你告诉我,这是哪门子的流程?”
会议室的门被人从外面推开。张总站在门口,头发乱着,衬衫还是昨晚那件,皱巴巴的。他看了看我,又看了看李经理,最后走到会议桌前,拿起那份授权书。
“授权书是我签的。”他的声音很哑,“后门的事我知道,系统建的时候他就跟我说了,是我同意留的。至于名单……”
他看了李经理一眼。
“红笔是我画的。那四个字,也是我让她写的。”
第4章 裂痕
张总这句话说完,会议室里安静得能听见空调出风口的风声。
李经理的脸色从白转红,又从红转白。她张了张嘴,似乎想说什么,但最终只是把眼镜摘下来,用衣角擦了擦镜片,又戴回去。老赵合上文件夹,悄悄往后退了半步。
“张总。”我的声音很平,“你当着我面说清楚。”
张总走到会议桌前,把授权书放回桌上,双手撑着桌面。他低着头,像在看桌上的木纹。“老陈,你那个补丁……我压下来,是因为当时正好在跟一个大客户谈续约。那个漏洞如果公开,客户会质疑我们的安全能力,续约就黄了。”
“所以你拿我的名字换你的业绩。”
他没反驳。“名单的事……是上个月开的会。人事部提了一批优化名单,你在上面。李经理问我意见,我说留着。”
“留着?”李经理突然开口,声音很尖,“张总你明明说——”
“我说留着,但李经理理解成了留用。”张总转过头看她,“你圈了红笔,写了‘不可留用’,然后跟我说是人事部的建议。我当时没仔细看。”
李经理的脸涨得通红。“张总,你当时明明说——”
“够了。”我打断她,“你们俩谁在撒谎,我不关心。我关心的是,那封邮件还在,加班记录还在,授权书还在。张总,你现在打算怎么办?”
张总站直身体,看着我。他眼睛里全是血丝,脸上的皮肤松弛地挂着,像一夜之间老了十岁。“老陈,我欠你的。授权书给你了,后门的事不追究。加班费……公司现在拿不出二十万。”
“那我的年终奖为什么是两百五?”
他沉默了几秒。“是李经理报的方案。她说你年纪大了,技术更新跟不上,给个象征性的数就行。我签了字,没细看。”
我看着他,忽然觉得很累。不是身体的累,是那种从骨头缝里渗出来的疲惫。十一年,我以为自己是在跟技术打交道,跟代码打交道,其实一直在跟人打交道。而我在这一块,从来都不及格。
“张总。”我拿起桌上的授权书和文件夹,装回包里。“我辞职。今天就算交接。”
“老陈——”
“系统交给明远。他技术没问题,人品也比你强。至于加班费,我不要了。”
张总愣住了。
“二十万买断十一年,你觉得贵,我觉得贱。但我不想再为这件事耗下去了。我儿子昨天问我,爸爸你是不是被欺负了。我不想让他知道,他爸爸被人欺负了十一年,最后还为了二十万跟人打官司。”
我转身往门口走。经过李经理身边的时候,我停了一下。“李经理,那四个字是你写的。但圈是我自己钻进去的。以后招人的时候记住,别把老实人逼到没路走。老实人一旦走了,你们连系统都修不了。”
走出会议室,办公区里的人都在看我。周明远站在工位旁边,手里攥着一个U盘。我走过去,拍拍他的肩。“系统交给你了。后门的密码我发你邮箱了。以后别学我,该要的得要。”
他点点头,眼圈有点红。
我收拾了工位上的私人物品。一个水杯,一盆快死的绿萝,几张全家福,还有抽屉最里面那盒降压药。装进纸箱的时候,我发现抽屉底下压着一张旧照片,是公司刚成立那年拍的。照片上六个人,我站在最左边,张总站在中间,那时候他还很瘦,笑得露出一口白牙。
我把照片翻过来,背面有一行字,是我自己写的:2009年3月,系统上线。
我把照片放进纸箱,抱着箱子往外走。经过张总办公室的时候,玻璃门关着,他坐在里面,双手捂着脸。我没停步。
电梯下到一楼,门打开,阳光从大堂的玻璃门照进来,在地砖上铺了一大片。我抱着纸箱走出大楼,站在台阶上。十一年了,我第一次在中午走出这栋楼,第一次看见公司门口那条路白天长什么样。路边种着梧桐树,叶子被阳光照得透亮,有风吹过的时候,哗啦啦响成一片。
手机震了一下。苏敏发来消息:回来了吗?
我回:回来了。今天中午吃什么?
她秒回:红烧排骨。一鸣说给你庆祝。
我看着那行字,站在台阶上,忽然眼眶一热。纸箱里那盆快死的绿萝被风吹得晃了晃,一片黄叶子掉下来,落在台阶上。
我抱着箱子走下台阶,往地铁站走。走了几步,身后有人喊我。回头一看,周明远跑出来,手里拿着一个信封。
“陈哥,张总让我给你的。”
我接过信封,拆开。里面是一张支票,金额二十万,日期是今天。还有一张便签,上面写着:加班费,一分不少。系统的事,对不起。
我把便签翻过来,背面还有一行小字:后门的事,我从来没怪过你。你是对的。
我把信封折好,放进纸箱。对周明远说:“回去告诉张总,系统每隔三个月要打一次补丁。别拖。”
周明远点头,站着没动。我转身继续往地铁站走。阳光很暖,风也暖。纸箱里的绿萝虽然黄了叶子,但根还在。我想,回去换个大点的盆,浇点水,也许还能活。
第5章 新盆
到家的时候,苏敏正在往餐桌上端菜。红烧排骨冒着热气,旁边摆着一盘清炒西兰花,一碟凉拌黄瓜。陈一鸣坐在桌边,手里拿着筷子,眼睛盯着排骨。
“爸回来了!”他从椅子上跳下来,跑过来接我手里的纸箱。箱子有点沉,他抱得踉踉跄跄,但坚持要自己搬。把箱子放在茶几上之后,他扒着往里看。“这是什么?”
“公司的东西。”
“这盆花快死了。”
“嗯,待会儿去给它换个盆。”
苏敏解下围裙,走过来看了看纸箱里的东西。她把那盒降压药拿出来,放在电视柜上。“这个以后每天吃,我盯着你。”然后拿起那张旧照片,看了看背面那行字,没说话,放回箱子里。
吃饭的时候,陈一鸣啃着排骨,含含糊糊地问:“爸,你以后不去那个公司了?”
“不去了。”
“那你以后做什么?”
“先休息几天。然后找个新工作。”
“那是不是以后每天都能回家吃饭?”
苏敏给他夹了一筷子西兰花。“别光吃肉。”
陈一鸣把西兰花塞进嘴里,嚼了两下,又说:“爸,我们班王浩他爸也换工作了。他爸以前在工厂,现在开滴滴。王浩说他爸现在每天接他放学。”
我没接话,低头扒饭。苏敏看了我一眼,对陈一鸣说:“吃饭别说话。”
下午,我去小区门口的花鸟店买了个新花盆,一袋营养土。回来把绿萝从旧盆里拔出来,根已经长满了,缠成一团。我把老根剪掉一部分,换了新土,浇透水,放在阳台上。阳光透过玻璃照在叶子上,那几片黄叶子旁边,冒出了一个很小的新芽。
手机响了。陌生号码。我接起来,对面是个女的,声音很客气:“请问是陈立诚先生吗?我是猎头公司的,姓何。您的一位前同事推荐了您,说您在找新机会?”
我愣了一下。“哪位前同事?”
“周明远先生。他说您有十一年系统架构经验,最近刚从一个项目里出来。我们这边有几个岗位,想跟您聊聊。”
我靠在阳台栏杆上,看着楼下的小区花园。几个老人在散步,小孩在滑梯上爬上爬下。“何女士,我今年四十一了。你们那边对年龄有要求吗?”
她笑了一声。“陈先生,我们这边有一个客户,做工业软件的,正缺一个懂底层架构的人。他们明确说不要年轻人,要稳的。您有兴趣的话,我把职位描述发您邮箱。”
“好。”
挂了电话,我站在阳台上又看了一会儿。楼下有个老头在遛狗,狗跑几步就停下来闻地上的东西。远处的天空很蓝,有几只鸟从楼顶飞过去。我忽然想起来,上一次在白天这样站着看外面,已经不记得是什么时候了。
苏敏走过来,手里拿着我的降压药和一杯水。“吃了。”
我接过药,就水吞了。她把杯子拿回去,站在我旁边。“猎头?”
“嗯。周明远推荐的。”
“你打算去?”
“先看看。不着急。”
她点点头,看着阳台上那盆刚换过土的绿萝。“这花能活吗?”
“能。根还在。”
她没再说话,只是把手放在我胳膊上,轻轻握了一下。她的手很暖,指腹上有切菜留下的茧。我低头看了一眼,她的指甲剪得很短,干干净净的,像她这个人。
那天晚上,陈一鸣睡着之后,我和苏敏坐在客厅看电视。电视里放着一部老剧,声音开得很小。她靠着我的肩,头发蹭着我的下巴。我盯着电视屏幕,脑子里想的却是别的事。
“苏敏。”
“嗯。”
“那二十万,张总给了。在我包里。”
她没动。“你打算怎么办?”
“存一鸣的教育基金。剩下的……给你买份保险。你身体不好,一直没去检查。”
她沉默了一会儿。“你自己呢?”
“我没事。有手有脚,饿不死。”
她在我肩上蹭了蹭,声音闷闷的。“陈立诚,你这个人最大的毛病就是什么都自己扛。以前在公司扛,现在在家里扛。你什么时候能学会分一点给别人?”
我想了想。“以后吧。”
她抬起头看我,眼睛里有水光。“你说到做到。”
“嗯。”
第二天上午,猎头何女士把职位描述发过来了。我坐在阳台上,用手机仔细看了一遍。是一家做工业控制软件的公司,规模不大,但技术底子不错。职位是系统架构师,负责重建他们的底层平台。薪资比原来高百分之四十,有项目奖金,不强制加班。
我回了邮件,约了下周面试。然后给周明远发了条消息:谢了。
他秒回:陈哥,应该的。另外跟你说一声,李经理今天辞职了。张总在全员会上把那四个字的事说了,没提你名字,但大家都知道。李经理自己走的。
我看着屏幕,打了一行字,又删掉。最后只回了一个:知道了。
放下手机,阳光正好照在那盆绿萝上。新冒出来的芽比昨天又大了一点,嫩绿色的,在旧叶子中间很扎眼。我伸手摸了摸,指尖沾了一点水汽。
苏敏从厨房探出头:“中午想吃什么?”
“随便。”
“没有随便。”
“那就面条。你做的西红柿鸡蛋面。”
她笑了一声,缩回厨房。我听见她开冰箱的声音,打鸡蛋的声音,水龙头哗哗流水的声音。这些声音混在一起,从厨房传到阳台,从阳台传到客厅,把这个不大的房子填得满满的。
我靠在椅子上,闭上眼睛。阳光透过眼皮,变成一片温暖的橘红色。像那颗橘子糖的颜色。
第6章 裂缝
面试定在周四上午。
前一天晚上,我把那件压在衣柜底下的深蓝衬衫翻出来,让苏敏熨了熨。领口有些发黄,但整体还过得去。陈一鸣在旁边看着,忽然说:“爸,你穿这个像电视里的工程师。”
“我本来就是工程师。”
“那以前怎么不穿?”
我想了想。“以前觉得没必要。”
周四早上,我提前二十分钟到了那家公司。办公楼在开发区,只有五层,外墙刷成灰色,门口种着两排冬青。前台小姑娘把我领到一间会议室,倒了杯水,说技术总监马上到。
会议室不大,白墙上贴满了项目进度表。我扫了一眼,看到几个熟悉的术语,和一套开源的工业协议栈。几分钟后,门被推开,进来一个四十来岁的男人,戴着黑框眼镜,穿一件洗得发白的 polo 衫。
“陈工吧?我姓孙,孙志强。”他伸出手,握了一下,掌心有老茧。“明远跟我说了你的情况。咱们直接点,我这人不会绕弯子。”
他拉开椅子坐下,从口袋里掏出一张纸,推到我面前。“这是我们现在用的系统架构。你帮我看看,问题在哪。”
我拿起纸,上面画了一套三层架构的简图。底层是数据采集,中间是业务逻辑,上层是接口。我看了大概三十秒,指了指底层的一个模块。
“这里。你们用的这套协议栈是五年前的开源版本,有一个已知的缓冲区溢出漏洞。如果数据量大了,会导致整个采集层崩溃。你们现在应该偶尔会遇到数据丢包吧?”
孙志强的眼睛亮了一下。“对。我们查了三个月,一直以为是网络问题。”
“不是网络。是内存越界。换新版本的协议栈,加上内存池管理,能解决。”
他把纸收回去,靠在椅背上。“你什么时候能来上班?”
“下周一。”
“薪资按招聘上写的,试用期一个月。加班不多,但偶尔赶项目可能需要你盯一下。”
“可以。”
他站起来,又握了一次手。“那行。周一见。”
走出那栋灰色小楼的时候,阳光正好。我站在门口,看着冬青叶子上的光斑,忽然觉得有点不真实。面试太顺利了,顺利得像是别人安排好的。但我知道不是。是周明远把我过去几年写的代码文档发给了孙志强,那些文档里每一行注释都是我熬夜写的。
手机响了。周明远打来的。
“陈哥,面试怎么样?”
“过了。周一上班。”
“太好了。对了,跟你说个事。昨晚张总找我谈话,说想让我接技术总监的位置。”
“你答应了吗?”
他沉默了一下。“我拒了。”
“为什么?”
“我技术不如你,管人也不如李经理。张总让我接,是因为现在没人了。我不想变成第二个你。”
我站在冬青树旁边,听见风吹叶子的声音。“明远,你听我说。接不接是你的决定,但别因为怕变成我而拒绝。我变成今天这样,不是因为技术,是因为我不会跟人打交道。你跟我不同,你懂人情世故。”
电话那头安静了一会儿。“陈哥,你说得对。我再想想。”
“还有。”
“嗯?”
“张总这个人,能共苦不能同甘。公司好的时候他会把你当兄弟,公司难的时候他会先保自己。你跟他做事,留个心眼。”
“知道了。”
挂了电话,我往公交站走。走了几步,又停下来,回头看了一眼那栋灰色小楼。五层,不高,外墙有几处墙皮剥落了,但整体很干净。门口挂着一块铜牌,上面写着公司名字。
我想,这地方,也许能待得久一点。
晚上到家,苏敏已经做好了饭。陈一鸣在房间里写作业,听见我进门,跑出来问:“爸,面试过了吗?”
“过了。下周一上班。”
他欢呼了一声,跑回房间继续写作业。苏敏在厨房里喊:“洗手吃饭。”
我洗了手,坐到餐桌前。苏敏端着一碗汤放在我面前,坐下之后看了我一眼。“你今天气色比前几天好。”
“可能因为新工作有谱了。”
她点头,夹了一筷子菜。“那盆绿萝发新芽了。你看没看?”
“看了。早上走的时候看了一眼。”
“我觉得能活。”
我低头喝汤,听见阳台那边有风吹过来,绿萝的叶子轻轻打在玻璃上,发出细碎的声响。陈一鸣在房间里哼着歌,跑调的旋律穿过门缝,混在汤的热气里。
那天晚上,我躺在床上,翻来覆去睡不着。脑子里把过去半个月的事过了一遍,从那条两百五的短信开始,到今晚的汤结束。中间隔了太多事,好像过了很久,又好像只过了几天。
苏敏翻了个身,迷迷糊糊地问:“还不睡?”
“睡了。”
我闭上眼睛。黑暗中,我仿佛看见那盆绿萝的新芽,一点点往外拱。嫩绿色的,在旧叶子的阴影里,不声不响地长着。
第7章 老照片
新工作第一个月,我每天早上七点半出门,晚上六点到家。苏敏说我脸色好了,吃饭也多了。陈一鸣说我接他放学的次数比过去三年加起来都多。
第三周的时候,孙志强把我叫到办公室,递给我一份合同。“转正。薪资按招聘上写的再加百分之十。另外,这个项目你牵头,组里配两个人。”
我看了看合同上的数字,比张总那边多了将近一倍。“孙总,我才来三周。”
“我看的是能力,不是资历。那个协议栈的问题,你三十分钟就找到了我们三个月没找到的漏洞。值这个价。”
我签了合同。走出办公室的时候,手机震了一下。陌生号码,短信只有一句话:老陈,我是张总。想跟你见一面,方便吗?
我盯着那条短信看了很久。屏幕上还有上一条通知,是周明远昨天发的:张总最近状态很不好,天天加班到凌晨,系统又出了两次小故障,他都自己扛着。
我没回张总的短信。
但那天晚上,我翻来覆去又睡不着。苏敏被我吵醒了,开了灯问怎么了。我把短信给她看,她看完,把手机放回床头柜。
“你想去就去。”
“我不知道。”
“那就再想想。”
第二天中午,我在公司食堂吃饭的时候,手机又响了。还是张总。这次是电话。
我走到食堂外面,接了。
“老陈。”他的声音很哑,像很久没睡好。“我不绕弯子。系统出了点问题,明远搞不定。我想请你回来看看,就一次。报酬你开。”
“什么问题?”
“底层的数据同步模块,每隔几天就丢一批数据。明远查了半个月,没找到原因。”
我站在公司走廊的窗户前,看着楼下停车场里的车。阳光很好,车顶反着白光。“张总,明远技术没问题。他找不到,是因为那个模块的注释是五年前写的,用的还是旧版语法。你让他翻二〇一九年的代码变更记录。”
电话那头安静了几秒。“老陈,你是不是还在生我的气?”
“我没生气。我只是不想回去。”
“那你能不能……远程看一下?就这一次。我把日志发你邮箱。”
我想了想。“日志发过来。我看完给你回消息。不用报酬,就当帮明远。”
“……好。”
挂了电话,我站在窗前又待了一会儿。走廊里有人经过,端着咖啡,脚步匆匆。阳光从窗户照进来,在地板上画出一块亮斑。
晚上回家,我打开电脑,张总已经把日志发过来了。我翻了一遍,找到数据丢失的时间点,对照代码变更记录,发现是一个同步锁的粒度问题。改法很简单,加一行配置参数就行。
我把解决方案写好,邮件发给周明远,抄送张总。邮件里只写了一句话:改第三行参数,重启服务。
发完邮件,我关掉电脑,走到阳台。绿萝的新芽已经长成一片小叶子了,比旧叶子颜色浅,嫩绿嫩绿的。苏敏走过来,递给我一杯水。
“解决了?”
“解决了。”
“你心情好像不太好。”
我看着那片新叶子。“张总说想让我回去。远程帮一次可以,回去就算了。”
“那就不回。”
我接过水杯,喝了一口。“苏敏,你说我这人是不是太记仇了?”
她想了想。“你不记仇。你就是心冷了。心冷了,捂不热。”
我没说话。她靠在我旁边,肩膀贴着我的胳膊。阳台外面,小区的路灯一盏一盏亮起来,把楼下的路照得发黄。有小孩在下面跑,笑声从楼下飘上来。
“不过。”她又说,“你心冷归心冷,该做的事还是会做。这就是你。”
我低头看她,她没抬头,只是看着楼下。灯光映在她脸上,把眼角的细纹照得很清楚。我忽然想起来,她比我小两岁,今年三十九,但看起来比实际年龄老一些。这些年跟着我,没享过什么福。
“苏敏。”
“嗯。”
“下个月发工资,带你去医院做个全面体检。”
她愣了一下,然后笑了。“行。你也做。”
“好。”
那天夜里,我又梦见了那张老照片。六个人站在公司门口,张总在最中间,笑得很开心。我站在最左边,手里拿着一块白板,上面画着系统架构图。梦里我低头看白板,发现图上的所有线条都变成了绿萝的藤蔓,缠缠绕绕,爬满了整个画面。
醒来的时候,天刚蒙蒙亮。苏敏还在睡,呼吸均匀。我轻手轻脚地下床,走到阳台上。晨光里,那盆绿萝的新叶子又长大了一点,向着窗户的方向伸展着。
我看了很久,然后回到屋里,打开电脑。邮箱里有一封新邮件,是张总回的。只有两个字:谢谢。
我把邮件删了,合上电脑。转身去厨房煮粥。淘米的时候,水声哗哗的,米粒在锅里转着圈。我想起小时候我妈煮粥,也是这个声音,也是这个味道。那时候我爸还在,每天早起去厂里上班,我妈就在厨房里煮粥。粥煮好了,我爸也走了。
我把锅放在灶上,开火。蓝色的火苗舔着锅底,水慢慢热起来。窗外,天已经全亮了,阳光从楼缝里挤过来,照在厨房的瓷砖上。
第8章 风暴眼
转正后的第二个月,孙志强把我叫到办公室,说有个大项目要启动。
“客户是做智能电网的,需要一套完整的设备管理平台。项目周期六个月,预算充足。我打算让你做技术负责人。”
他把项目计划书推过来。我翻了两页,看到系统规模的时候,手指停了一下。“这个体量……比张总那边的系统还大。”
“所以我才找你。这个项目要是做成了,公司能上一个台阶。”
我合上计划书。“我需要两个人。一个做前端,一个做数据层。”
“已经在招了。下周到位。”
那段时间我忙得脚不沾地。早上七点出门,晚上八点到家,有时候周末也要去公司。苏敏没抱怨,只是每天在餐桌上放好降压药,旁边摆一杯温水。陈一鸣期中考试考了全班第五,拿着成绩单让我签字,我看了一眼,签了,他满意地跑回房间。
项目启动第三周,一个周五的下午,我正在会议室里给团队讲架构方案,手机震了。苏敏打来的。
她很少在我上班时间打电话。
我走出会议室,接起来。“怎么了?”
“一鸣在学校出事了。”她的声音很紧,“体育课跑步摔了,胳膊可能骨折了。老师刚给我打电话,我现在往医院赶。”
“哪个医院?我马上过去。”
我挂了电话,回会议室拿包。孙志强正好路过,看见我脸色不对,问了一句。我说儿子摔了,他立刻说:“快去。项目的事我盯着。”
我赶到医院的时候,陈一鸣已经拍完片子了。右胳膊桡骨骨折,不算严重,但要打石膏固定六周。他坐在急诊室的椅子上,左手攥着苏敏的手,看见我进来,眼圈红了一下,但没哭。
“爸,我没事。”
我蹲下来,看了看他打着石膏的胳膊。石膏从手腕打到肘弯,白得刺眼。“疼不疼?”
“有一点。但是医生说不严重。”
苏敏在旁边说:“体育老师说是跑道上有块翘起来的塑胶,他没看见,绊了一跤。”
我站起来,问医生后续怎么处理。医生交代了一些注意事项,开了止痛药和消炎药。我拿了药,回到急诊室的时候,陈一鸣正用左手拿着手机看动画片,苏敏在跟老师打电话。
“对,对,不用来医院,我们已经处理好了……好的,谢谢老师关心。”
挂了电话,她叹了口气。“学校说会排查跑道,让我们把医药费单据留着,他们报销。”
陈一鸣抬头看了她一眼。“妈,不怪学校。是我自己没看路。”
苏敏摸摸他的头。“知道。但该他们负责的,还是要负责。”
那天晚上,陈一鸣早早睡了。我坐在客厅里,苏敏在旁边算医药费的单子。她算了两遍,把计算器放下。
“陈立诚。”
“嗯。”
“你今天从会议室出来的时候,手机忘在桌上了。孙总后来给我打了个电话,问你到家了没有。他说你走的时候脸色很难看,让我多注意你。”
我没说话。
“他还说,你最近加班太多了,让我劝劝你。”
“项目要紧。”
“项目要紧还是一鸣要紧?”
我抬起头看她。她的眼睛很平静,但嘴角绷着,像上次我说要打官司时那样。我忽然意识到,这个表情出现的时候,事情通常很重要。
“苏敏,我——”
“我没说不让你加班。”她打断我,“我是说,你别又回到过去那样。以前在张总公司,你也是天天加班,家里什么事都指望不上。一鸣长到十一岁,你陪他过过几个生日?你去开过几次家长会?”
我低下头,看着茶几上那盒降压药。新的一盒,快吃完了。
“我知道你换工作了,想做出点成绩。但家不是旅馆,你回来睡一觉就走。一鸣今天摔了,他第一反应是给你打电话,结果你手机在会议桌上。他给我打的电话,第一句话问的是,我爸在忙吗?”
我喉咙发紧。“他说的?”
“他说的。我告诉他你在忙,他说那别打扰爸爸了。”
那天晚上,我在客厅坐到很晚。苏敏回卧室睡了,留我一个人。我走到陈一鸣房间门口,轻轻推开门。他睡着了,左胳膊露在外面,右胳膊裹着石膏放在被子上。月光从窗帘缝里透进来,照在他脸上,睫毛投下细细的影子。
我站了一会儿,回到客厅,打开电脑。给孙志强发了封邮件,申请把项目排期延长两周,团队增加一个人。然后给周明远发了条消息,问他有没有认识的靠谱前端,推荐一个。
第二天早上,陈一鸣醒来的时候,我已经煮好了粥。他坐到餐桌前,左手拿勺子有点别扭,但坚持自己吃。我坐在对面看着他,忽然说:“一鸣。”
“嗯?”
“以后爸爸每天接你放学。”
他抬起头,眼睛里有一点亮光。“真的?”
“真的。”
苏敏从厨房出来,端着一碟咸菜。她看了我一眼,没说话,但嘴角松开了。
第9章 旧代码
项目排期延长之后,节奏缓了一些。我每天六点准时下班,骑车去陈一鸣学校门口等他。他右胳膊还打着石膏,背书包不方便,我就帮他背。一路上他跟我说学校的事,谁和谁吵架了,数学老师讲课太快了,体育课他只能坐在旁边看。我听着,偶尔插一句。
接了他两周之后,我发现自己的血压降下来了。苏敏每天早上量一次,记在一个小本子上。本子上的数字从一百五慢慢降到一百三十五。她把本子拿给我看,说:“你看,还是得少加班。”
有一天接陈一鸣的时候,我在校门口看见了张总。
他站在对面马路边,穿着一件灰夹克,头发比上次见的时候白了不少。他手里夹着一支烟,没点,就那么捏着。看见我,他犹豫了一下,然后穿过马路走过来。
“老陈。”
陈一鸣抬头看了他一眼,又看了看我。我拍拍他的肩:“一鸣,你先去前面那家文具店等爸爸,我看一下本子。”
他点点头,背着书包走开了。走几步还回头看了一眼张总。
张总看着陈一鸣的背影,声音有点哑。“你儿子?”
“嗯。”
“多大了?”
“十一。”
张总沉默了一下,把手里没点的烟折断,扔进旁边的垃圾桶。“老陈,我来找你是想跟你说件事。”
“你说。”
“那个攻击事件,后来查清楚了。李经理是中间人,但她背后还有别人。”
我看着他。
“是竞争对手公司的人。他们通过李经理拿到我的管理员账号,想用勒索病毒锁死数据,然后趁我们系统瘫痪的时候抢客户。李经理拿了好处费,一共五十万。”
“你报警了?”
“报了。李经理被带走了,对方公司也立案了。但是……”他停了一下,“对方公司请了很好的律师,一直拖着。我最近收到消息,他们可能要和解。”
我没说话。张总看着我,眼睛里有一种我很熟悉的东西,那种走投无路的人才会有的光。
“老陈,我不是来求你回来的。我知道你不会回来。我来是想说……对不起。”
风从马路对面吹过来,带着一股汽车尾气的味道。校门口的学生走得差不多了,保安在拉铁栅栏门。
“你跟我说对不起,是因为系统出了问题你搞不定,还是因为真的觉得对不起我?”
张总张了张嘴,又闭上。过了几秒,他说:“都有。”
我叹了口气。“张总,我不恨你。真的。我就是不想再跟你共事了。你这个人,对代码没感情,对人有感情但不多。你适合做管理,不适合做朋友。”
他低下头,把那个折成两截的烟头从垃圾桶里捡出来,又扔回去。“你说得对。”
“系统的问题,让明远继续问我。远程帮个忙可以,但我不收你钱,你也别欠我人情。一码归一码。”
张总抬起头看着我,眼睛有点红。“好。”
他走了。我站在校门口,看着他过了马路,走进对面的一条巷子里。他的背有点驼,走得不太稳,像一下子老了很多。
陈一鸣从文具店跑出来,左手拿着一支铅笔。“爸,你看这个,带橡皮的,好看吗?”
“好看。”
“那买这个吧。我原来的那支摔断了。”
我掏钱给他买了铅笔。他左手攥着铅笔,走在我旁边。走了一段,他问:“爸,那个人是谁?”
“以前公司的老板。”
“他找你干什么?”
“道歉。”
陈一鸣想了想。“那他是坏人吗?”
“不算坏人。就是做了错事。”
“那你原谅他了吗?”
我看着前面的路。傍晚的街上人来人往,路灯一盏一盏亮起来,把梧桐树叶子照成半透明的黄色。“原谅了一半。”
“为什么是一半?”
“因为他道歉是真的,但做的事也是真的。做错了事,不是一句对不起就能全抹掉的。得看他以后怎么做。”
陈一鸣点点头,好像懂了,又好像没懂。他把铅笔放进书包,左手伸过来拉我的手。我握着他的手,感觉到他手心有点潮,是刚才跑出来的汗。
晚上到家,苏敏已经在做饭了。她看见我手里提着陈一鸣的书包,笑了一下。“今天又帮他背的?”
“胳膊还没好。”
“你就是惯他。”
陈一鸣从房间探出头:“妈,爸爸才没惯我。是我胳膊疼!”
苏敏摇摇头,转身继续炒菜。我走到阳台上,那盆绿萝的藤蔓已经爬了半个窗台,新叶子一茬接一茬。我给它浇了水,水从盆底渗出来,滴在托盘里,发出轻微的嗒嗒声。
手机响了。孙志强发来消息:项目客户那边催得紧,想提前两周交付。你觉得可行吗?
我回:不行。质量比速度重要。提前交付出了问题,后面更麻烦。
他秒回:听你的。
我放下手机,靠在阳台栏杆上。楼下有小孩在玩滑板,轮子碾过地面的声音很响。远处的高架桥上车灯连成一条线,慢慢移动。
苏敏在屋里喊:“吃饭了。”
我转身回屋,顺手把阳台的窗户关上一半。绿萝的叶子被风吹得晃了晃,那片最嫩的叶子蹭在玻璃上,留下一点水痕。
第10章 暗涌
项目进入第四个月的时候,团队里来了一个新人。
孙志强领进来的时候,我正在白板上画架构图。他敲了敲会议室的门,身后站着一个穿格子衫的年轻人,瘦高个,戴着圆框眼镜,头发有点长,遮住了半边耳朵。
“陈工,这是新来的前端,叫林越。明远推荐的。”
我放下笔,打量了他一下。他冲我点了一下头,动作很轻,像怕惊到什么东西。
“之前在哪做?”
“在家接项目。没正式上过班。”
孙志强补了一句:“技术很扎实。明远说他以前在开源社区做过几个挺有名的项目。”
我没再问,让他坐到会议室里,继续讲架构。林越坐在角落,打开笔记本电脑,一边听一边敲。我讲完一段,走过去看了一眼他的屏幕,他已经画出了一套前端的状态管理方案,和我讲的架构正好匹配。
“你手速很快。”
他推了一下眼镜。“习惯了。”
之后的几周,林越融入了团队。他不怎么说话,但代码写得干净利落。开会的时候从来不抢着发言,但每次开口都在点上。团队里另外两个年轻人很快跟他混熟了,下班后偶尔一起去吃饭。他总是找借口推掉。
有一次我加班到七点,走的时候看见林越还在工位上。他盯着屏幕,眉头皱得很紧。我走过去看了一眼,他在看一段反编译的代码。
“这是什么?”
“前几天客户给的一个旧系统模块,说想集成到新平台里。但我看这段代码的编译时间戳……是去年的。”
我凑近看了一眼。屏幕上是一段二进制反编译出来的代码,时间戳显示的是去年九月。但客户之前说这套旧系统是五年前建的,最后一次更新在三年前。
“你跟客户确认了吗?”
“问了。客户说他们也不知道,可能是后来有人动过。”
我盯着那段代码看了一会儿,发现里面有一个加密模块,使用的算法和当年攻击张总公司的那套勒索病毒很像。同样的加密强度,同样的密钥生成方式。
“林越,这个先别往下做了。把这段代码拷出来,单独放一个目录。我去找孙总。”
孙志强看了代码之后,沉默了很久。“你觉得和那个案子有关?”
“算法特征太像了。可能只是巧合,但我不想赌。”
孙志强点头。“你决定。需要停就停。”
那天晚上回家,我一直在想这件事。苏敏看出来了,问了一嘴。我说了,她听完,皱起眉头。
“那个案子不是已经抓到李经理了吗?”
“李经理是中间人。她背后的公司一直没结案。如果这套代码跟他们有关,说明他们还在活动。”
“那你打算怎么办?”
“先查清楚。如果是巧合,就继续做。如果不是……”
我没说完。苏敏看了我一会儿,说:“你最近血压又高了。别想太多。”
第二天,我让林越把那段代码的编译特征提取出来,和当年的攻击样本做比对。林越花了一个上午,比对结果出来的时候,他把我叫到他的工位前。
“陈工,你看这个。”
屏幕上并列着两组数据。一组是当年攻击张总公司的病毒样本特征,一组是客户旧系统里那段代码的特征。两个特征码的相似度,百分之八十七。
“这已经不能算巧合了。”林越的声音很轻。
我盯着屏幕,脑子里转得很快。客户是智能电网项目的中标方,如果他们提供的旧系统里藏着和攻击张总公司同源的代码,那就意味着,当年攻击张总公司的那个团伙,可能已经渗透到了这个客户内部。
“林越,这件事先不要跟任何人说。把数据打包加密,发我邮箱。”
“好。”
我回到自己工位,给周明远发了条消息:明远,当年攻击张总公司的那个案子,卷宗里有没有提到对方公司的名字?
他回得很快:有。叫“天启科技”。但后来因为证据不足,没起诉成。
我把“天启科技”四个字在脑子里过了一遍,又打开项目文档,翻到客户公司的股东名单。翻到第三页的时候,我看见了一个熟悉的名字。天启科技,持股百分之十二。
第11章 底牌
那天晚上,我把项目文档里所有和客户公司相关的文件翻了一遍。
天启科技是他们第三大股东,入股时间是两年前。两年前,正是张总公司的系统第一次出现异常登录记录的时候。时间线对得上。
我给周明远打了电话。“明远,天启科技的案子,当时是谁负责调查的?”
“经侦那边的刘警官。我跟他打过几次交道,人挺靠谱。”
“你能不能帮我约他见一面?我有东西要给他看。”
周明远沉默了一下。“陈哥,你是不是发现了什么?”
“还不确定。但可能跟天启有关。”
第二天中午,我在一家茶馆见到了刘警官。四十来岁,方脸,穿便衣,看起来像个普通上班族。他听完我的来意,把那段代码的比对数据看了两遍。
“这个相似度,确实有问题。”他合上文件夹,“但单凭代码特征,不足以立案。天启很聪明,当年就是钻了证据链不完整的空子。”
“如果我能拿到他们近期活动的证据呢?”
刘警官看着我。“陈工,你是技术人员,不是警察。这种事交给我们。”
“我知道。但这个项目是我在负责。如果他们真的在通过客户系统做手脚,我得先弄清楚,不然项目做出来就是给他们做嫁衣。”
刘警官想了想,从口袋里掏出一张名片。“你如果发现新的东西,直接打这个电话。但记住,别自己行动。”
我收了名片,离开茶馆。回到公司的时候,林越正在工位上等我。他看见我进来,站起来,表情很紧。
“陈工,刚才客户那边发来一封邮件,说他们想提前验收旧系统模块的集成进度。孙总把邮件转给我了。”
“什么时候发的?”
“十分钟前。要求我们今天下班前给回复。”
我走到自己工位,打开邮箱。客户的邮件写得很客气,但要求很明确:希望明天上午派人来现场检查旧系统模块的集成情况。落款是一个我不认识的名字,抬头是“天启科技技术顾问”。
我盯着那个落款看了几秒,然后给孙志强发了消息:孙总,明天客户来人的话,我全程陪同。另外,旧系统模块的集成先暂停,等我通知。
孙志强很快回了电话:“出什么事了?”
“还不确定。但可能跟我们之前聊过的那个案子有关。”
他沉默了一下。“你处理。需要我做什么随时说。”
挂了电话,我把林越叫到会议室。“明天客户来的人,你全程记录。每一句话,每一个要求,都记下来。另外,把旧系统模块的所有代码路径、编译记录、访问日志,全部备份加密。”
“好。”
“还有。”我压低声音,“明天你注意看对方的人有没有试图接触服务器或者内网。如果他们要权限,一律拒绝,说需要书面申请。”
林越推了一下眼镜,点头。
那天晚上,我又加班了。苏敏打来电话,我说项目有点急事,晚点回去。她没多问,只说降压药在包里,别忘了吃。
我吞了一粒药,坐在工位上,把项目里所有和天启科技相关的节点重新捋了一遍。天启持股客户公司,客户旧系统里藏着和天启攻击工具同源的代码,天启的技术顾问要求明天来现场。这些节点连起来,指向一个可能:天启在通过客户系统,搭建一条隐蔽的数据通道。而这条通道,可能被用来攻击第三方。
就像当年他们攻击张总公司一样。
凌晨一点,我关掉电脑,起身准备走。经过林越工位的时候,发现他还在。屏幕上是一张复杂的网络拓扑图。
“这是什么?”
“我把客户旧系统的所有对外连接画了一遍。发现一个异常通道,每隔十二小时向一个外部IP发送加密数据包。IP地址的注册地是境外。”
我盯着那张图,忽然想起来一件事。当年攻击张总公司的勒索病毒,解密之后留下的追踪标记,也是一个境外IP。刘警官说那个IP的注册人是一个空壳公司,查不到实际控制人。
“林越,这个IP能查到更多吗?”
“我试了。但对方用了多层代理,只能追到第一个跳板机。跳板机在东南亚。”
我拍拍他的肩。“明天的事很重要。你今晚早点回去休息。”
他点头,关了电脑。我们一起下楼,走到公司门口。他往左,我往右。走了几步,他忽然回头喊了一声:“陈工。”
“嗯?”
“你以前是不是在张总的公司干过?”
我愣了一下。“你怎么知道?”
“明远哥跟我说的。他说你建了那套系统,后来被张总亏待了。”
我没说话。
“我觉得……”他推了一下眼镜,声音不大,“你比张总厉害。”
说完他转身走了,格子衫的背影很快融进路灯的暗影里。我站在公司门口,夜风从北边吹过来,有点凉。手机震了一下,苏敏发来消息:还没回来?
我回:在路上了。
她又发:一鸣等你等到十点才睡。他说明天想让你送他上学。
我看着那行字,喉咙有点紧。回了一个字:好。
第12章 面对面
第二天上午十点,天启科技的人到了。
来了两个人。一个中年男人,穿深灰西装,自称是天启的技术顾问,姓方。另一个年轻女的,拿着笔记本电脑,说是助理。孙志强在前台接待,把他们领到会议室。
我带着林越走进会议室的时候,方顾问正在看墙上的项目进度表。他转过身,冲我点了一下头。“陈工是吧?久仰。”
“方顾问。我们直接看旧系统模块吧。”
我带着他们走到测试区,打开演示环境。旧系统模块的集成进度停在百分之三十,界面能跑,但数据层没有对接。方顾问看了一遍,问:“为什么进度这么慢?”
“这个模块的代码有些问题,需要先做兼容性改造。”
“什么问题?”
我看了他一眼。“编译时间戳和文档不符。我们在确认原因。”
方顾问的表情没有变化,但他旁边那个助理的手指在键盘上顿了一下。“可能是之前外包团队改过。我们可以提供原始文档。”
“那最好。”我说,“另外,这个模块里有一段加密代码,用的是比较老的算法。我们想换成公司统一的加密标准,需要你们书面同意。”
方顾问看着我,眼神很稳。“加密算法的事,我需要回去跟技术团队确认。但问题不大,应该可以。”
他说话的时候,林越在旁边全程记录。我注意到那个助理在会议室里四处看,视线在服务器机柜的方向停了几秒。
参观结束之后,方顾问说要上个洗手间。我让林越带助理去休息区,自己站在走廊里等。方顾问从洗手间出来,经过我身边的时候,忽然压低声音说了一句:“陈工,有些事,知道得太多对个人发展不利。”
我看着他。“方顾问,你这是在提醒我,还是在威胁我?”
他笑了一下,很短。“只是善意的建议。”然后他走了,皮鞋踩在地砖上,发出清脆的响声。
下午,我把方顾问的来访记录和刘警官给的名片放在一起,拍了张照,发到刘警官的邮箱。附了一句话:今天来的人,提到了我的个人发展。
傍晚的时候,刘警官回了电话。“陈工,你提供的线索很有用。那个方顾问,我们盯他很久了。但你说他当面暗示你,说明他们可能已经察觉你在查。”
“那我怎么办?”
“继续做你的事。但注意安全。另外,你那个新来的前端,林越,他的背景我查了一下。没问题,是干净的。”
挂了电话,我坐在工位上,看着窗外。天快黑了,楼下的路灯已经亮了。林越走过来,把今天的记录本放在我桌上。
“陈工,那个助理在休息区的时候,问了我一个问题。”
“什么问题?”
“她问我,公司的服务器是不是放在十七楼。我说我们的机房在二楼,十七楼是另一家公司。”
我抬起头。“她怎么知道十七楼?”
“她说她之前来过这栋楼,记得十七楼有个做数据存储的公司。”
我拿起手机,给周明远发了条消息:明远,张总公司的楼层,是不是十七楼?
他回:是啊。怎么了?
我看着屏幕,把手机放下。十七楼。天启的人知道十七楼。他们不只是盯着张总的系统,他们连张总公司在哪一层都记得清清楚楚。
那天晚上回家,陈一鸣已经睡了。苏敏在客厅等我,茶几上放着一碗热好的汤。我坐下喝汤,她坐在旁边看着我。
“事情很麻烦?”
“有点。”
“会有危险吗?”
我想了想。“不会。我有分寸。”
她看着我,眼睛很亮。“陈立诚,你每次说‘有分寸’的时候,最后都搞得自己很累。”
我放下碗。“这次不一样。这次我不是一个人在扛。有警察,有同事,有明远。而且……”
“而且什么?”
“而且我现在知道,有些事比工作重要。”
她没说话,只是把汤碗往我面前推了推。“喝完。”
我低头把汤喝完。碗底有一块排骨,炖得很烂,筷子一夹就散了。
第13章 收网
接下来的两周,我把项目进度放慢,把主要精力放在旧系统模块的排查上。
林越帮我把那段加密代码的完整路径梳理出来,发现它连接着一个隐蔽的数据上传接口。这个接口没有在客户提供的文档里出现,是在代码层面被硬编码进去的。上传的目标地址,指向境外的一个云服务器。
我把所有证据打包,通过刘警官提供的安全渠道提交。刘警官那边动作很快,三天后给我回了消息:已经立案。天启科技涉嫌非法侵入计算机信息系统、窃取商业机密,主要嫌疑人方某已被控制。客户公司那边,他们也派人去调查了。
消息是周四下午到的。我正在开会,手机震了一下。刘警官的短信只有一行:方某今早被刑拘。客户那边有内鬼,正在审。
我把手机放下,继续开会。孙志强看了我一眼,没问。
会开完的时候,林越走过来,把笔记本电脑转过来给我看。屏幕上是一封客户发来的邮件,说因为内部原因,项目要暂停两周。
“他们知道了。”林越说。
“嗯。”
“那项目还能继续吗?”
“能。”我合上他的电脑,“天启的事是他们内部问题,跟我们做的平台没关系。等他们内部处理完,项目继续。”
林越推了一下眼镜,没说话,但嘴角往上翘了一点。
那天晚上,我回家比平时早。苏敏在厨房做饭,陈一鸣在客厅写作业。我坐在沙发上,看着他们俩,忽然觉得这个画面很珍贵。厨房的油烟机声音、儿子写字的沙沙声、电视里低低的新闻播报声,混在一起,像一首很慢的歌。
手机响了。周明远打来的。
“陈哥,张总今天来找我了。”
“什么事?”
“他说天启的案子破了,刘警官跟他通了电话。他让我转告你,谢谢你。”
我靠在沙发上,看着陈一鸣抬起头冲我笑了一下,又低头继续写作业。“不用谢。又不是为了他。”
“还有。”周明远的声音低了一点,“张总说他想把公司卖了。累了,不想干了。”
我沉默了几秒。“那你怎么想?”
“我想接。”他的声音很稳,“但不是现在。我想再攒两年经验,然后自己出来做。陈哥,到时候你愿意合伙吗?”
我想了想。“到时候再说。先把眼前的事做好。”
“好。”
挂了电话,苏敏端着菜出来。“又是工作?”
“明远。他说张总想卖公司。”
她把菜放在桌上,看了我一眼。“跟你有关系吗?”
“没有。”
“那就吃饭。”
我站起来,走到餐桌前。陈一鸣已经把作业收起来了,左手拿着筷子敲碗边。苏敏拍了他一下:“别敲。”
他吐了吐舌头,开始夹菜。我坐在他旁边,拿起筷子。窗外的天已经全黑了,阳台上的绿萝在灯光里投下一小片影子,藤蔓爬到了窗框上面,绕了半圈。
第14章 交接
天启的案子结得比预想中快。
方顾问被刑拘之后,很快交代了整个链条。天启科技通过入股客户公司的方式,把恶意代码植入客户系统,再通过隐蔽通道向外传输数据。他们的目标不止张总的公司,还有另外两家同行业的企业。三家公司的损失加起来,超过五百万。
刘警官给我打了个电话,说方顾问的案子已经移交检察院。客户公司那边开除了两个涉事高管,天启的股份也在走转让程序。
“你的项目可以继续了。”刘警官说,“客户新管理层让我们转达,他们对之前的干扰很抱歉,希望合作继续。”
我说好。
孙志强得到消息之后,把我叫到办公室。“项目重启。交付日期按最初定的,还有三个月。来得及吗?”
“来得及。”
“另外。”他从抽屉里拿出一个信封,“公司决定给你和团队发一笔专项奖金。数目不大,但意思一下。”
我接过信封,没拆。“孙总,团队里几个人平分。林越要多给一份,这次的事他出了大力。”
“你来定。”
项目重启之后,节奏反而比之前顺了。客户新管理层很配合,旧系统模块的集成也在两周内完成了。林越带着前端团队把界面重构了一遍,跑起来比原版快了不少。
有一天加班到晚上九点,我准备走的时候,看见林越还坐在工位上。他面前摆着一本翻开的笔记本,上面密密麻麻写满了字。
“还不走?”
“马上。陈工,我能问你一个问题吗?”
“你说。”
“你在这个行业干了十几年,有没有想过转行?”
我靠在工位隔板上,想了想。“想过。但除了写代码,我也不会干别的。”
“我也想过。”他推了一下眼镜,“但我发现,写代码这件事本身是快乐的。麻烦的是人。”
我笑了一声。“你说得对。”
他合上笔记本,站起来收拾东西。我们一起下楼,走到公司门口。他往左,我往右。这次他走了几步,又回头。
“陈工。”
“嗯?”
“你下次招人的话,我还来。”
我冲他摆摆手。他转身走了,格子衫被风吹得鼓起来,像一面小旗子。
第15章 新芽
项目交付前一周,我接到了一个电话。
来电显示是一个陌生号码,归属地是本市的座机。我接起来,对面是一个女声,温和但带着一点紧张。“请问是陈立诚先生吗?”
“是我。”
“我是市第一医院的体检中心。您上个月在我们这里做了一次全面体检,有一项结果需要您来复查一下。”
我握着手机的手紧了一下。“哪一项?”
“肝功能。有一项指标偏高,需要进一步检查。您方便的话,明天上午来一趟。”
我说好,挂了电话。苏敏正好从厨房出来,看见我脸色不对,问怎么了。我把医院的话复述了一遍,她沉默了几秒。
“明天我陪你去。”
“不用,我自己去就行。”
“我陪你去。”
我没再争。那天晚上,我躺在床上,脑子里翻来覆去。体检是上个月做的,那段时间正好是最忙的时候,连续加班了半个月。我猜是累的,但不敢说。
第二天上午,苏敏陪我去了医院。抽血、B超、等结果。下午三点,医生把我们叫进诊室,看着报告说:“指标偏高,但B超没发现器质性问题。考虑是疲劳和药物引起的肝损伤。你最近是不是吃了什么药?”
“降压药。”
“什么牌子?”
我报了药名。医生在电脑上查了一下,点点头。“这种降压药长期服用,有一部分人会出现肝酶升高。建议换一种药,同时注意休息,少熬夜。三个月后复查。”
走出医院的时候,苏敏的手一直攥着我的胳膊。她没说话,但攥得很紧。走到医院门口,她才松开,站定了,看着我说:“陈立诚,你听见医生说的了?”
“听见了。”
“少熬夜。以后不许加班超过七点。项目再急也不行。”
“好。”
她看着我,眼圈有点红,但没哭。“你答应我的事,每次都说好,然后转头就忘。”
“这次真的记住了。”
她盯着我看了几秒,然后伸手拦了一辆出租车。“回家。今天不让你做饭,也不让你洗碗。”
我坐进车里,她坐在我旁边,手还攥着我的胳膊。车窗外的街景往后退,树影和阳光交替着打在脸上。我闭上眼,感觉到她的手心温热,像攥着一颗糖。
那天晚上,陈一鸣听说了体检的事,跑到我房间,左手拿着一幅画。画上是一家三口,站在一栋房子前面,房子旁边有一盆很大的绿萝,叶子画得比房子还高。
“爸,这是你,这是妈妈,这是我。这是咱家的花。”
“为什么把花画这么大?”
“因为它长得快啊。你每天浇水,它就每天长。”
我把画贴在冰箱上。苏敏经过的时候看了一眼,没说话,但嘴角松开了。
第16章 绿萝
半年后的一个周六早上,我被阳光晒醒了。
窗帘没拉严,一道光落在床上,正好照在我脸上。我翻了个身,苏敏已经不在旁边了。厨房传来切菜的声音,还有陈一鸣念英语的声音,磕磕巴巴的,但很响亮。
我起床,走到阳台上。那盆绿萝已经从窗台垂到了地面,藤蔓沿着窗框绕了两圈,叶子绿得发亮。新长出来的叶子比老叶子大,一片叠着一片,密得看不见里面的土。
我给它浇了水。水从壶嘴里流出来,打在叶子上,顺着藤蔓往下淌。有几滴落在窗台上,洇开小小的圆点。
手机响了。周明远发来一张照片。照片里是他新租的办公室,不大,只有四个工位,但窗户朝南,阳光很好。他站在门口,举着一块牌子,上面写着公司名字。
下面跟了一条消息:陈哥,下个月开业。你和林越的工位我留好了。
我回了一个字:好。
他又发:张总把公司卖了,价格还行。他现在在老家开了个茶馆,天天给人泡茶。昨天给我寄了一盒茶叶,说是自己山上采的。
我回:替我谢谢他。
放下手机,我站在阳台上又看了一会儿。绿萝的叶子被风吹得轻轻晃,有几片翻过来,露出浅绿色的背面。楼下的小区花园里,一个老头在打太极,动作很慢。远处的梧桐树开始落叶了,金黄色的叶子铺了一地。
苏敏在屋里喊:“吃饭了。”
我转身回屋。经过陈一鸣房间的时候,他正在收拾书包,右胳膊已经完全好了,两只手都灵活得很。他把那支带橡皮的铅笔放进笔袋,抬头看见我,咧嘴一笑。
“爸,今天送我吗?”
“送。”
他背上书包跑出来,在门口等我。苏敏把早餐端上桌,煎蛋、小米粥、一碟咸菜。我坐下,吃了两口,抬头看见冰箱上那幅画还在。画上的绿萝已经比房子高了。
吃完饭,我送陈一鸣去学校。路上他跟我说,下周学校要开家长会,问我能不能去。我说能。他高兴地蹦了两步,书包在背上一颠一颠的。
送完他,我往公司走。新公司离学校不远,骑车十分钟。孙志强昨天发消息说,新项目启动了,规模比上一个还大。我回他说好,但说了每天六点下班,周末不加班。他回了一个大笑的表情,说没问题。
走到公司楼下的时候,阳光正好照在那块铜牌上。牌子擦得很亮,能映出人的影子。我站在门口,看了一眼自己的影子,然后推门进去。
电梯里,手机震了一下。苏敏发来一张照片,是阳台上的绿萝。照片里,最顶端的那片新叶子上,挂着一颗水珠,被阳光照得透亮。
她配了一行字:今天浇过水了,你安心上班。
我把手机收进口袋。电梯门打开,走廊里传来键盘声和说话声。我走到自己的工位,打开电脑,屏幕亮起来。桌角放着一盆小绿萝,是上周从家里那盆剪下来的枝条插活的,已经冒出了新根。
我坐下,手指放在键盘上。屏幕上是新项目的架构图,空白的框架等着我去填。阳光从窗户照进来,落在键盘上,落在绿萝的叶子上,落在那颗还没干的水珠上。
我敲下第一行代码。
全文完