“他这是……”赵敏敏的声音变得小心翼翼,“在帮你?”
姜荨把那张纸翻过去,不想再看。但她的大脑不受控制地回想著纸上的内容——那些优化思路确实比她原本的方案更好,更高效,更优雅。
而且,那个落款处的标记,她已经四年没有见过了。
她闭上眼睛,深吸了一口气。
“赵敏敏。”
“嗯?”
“你上次说,想知道他为什么在代码里写我的论文。”
“对啊,所以呢?”
姜荨睁开眼睛,看著桌上那张被翻过去的纸,声音轻得像在自言自语。
“我好像……也想知道。”
公司季度聚餐定在周五晚上,地点是技术总监最爱的那家日料店。
姜荨本来想借口不去,但赵敏敏死拖活拽把她从工位上拉起来:“你已经连续加班四天了,再不去吃点好的,我怕你猝死在机房里。”
“我没那么脆弱。”
“你没那么脆弱,但你现在看起来像个鬼。”赵敏敏上下打量她,“而且你知道吗,你越躲,陈繁那种人越觉得你好欺负。今天聚餐老大也在,你多露露脸,让他记得你是谁。”
姜荨想了想,觉得有道理。她换了件干净的衬衫,把头发扎起来,跟著赵敏敏进了日料店的包厢。
包厢里已经坐了大半桌人。技术总监坐在主位,旁边是几个部门主管,再旁边是普通员工。姜荨选了一个离门口最近的位置,坐下来就开始倒茶。
赵敏敏在她耳边小声说:“你知道谁还没来吗?”
“不想知道。”
“陆司辰。”
姜荨倒茶的动作顿了一下,然后继续倒,倒到茶水溢出来都没发现。
“姜荨!”赵敏敏抢过茶壶,“你烫到手了!”
“没事。”
她若无其事地把杯子推开,拿起菜单开始看。赵敏敏盯著她看了三秒,露出一个“我就知道”的表情,但没再说什么。
人陆续到齐,菜也上了。觥筹交错间,包厢里的气氛热闹起来。技术总监心情不错,连开了两瓶清酒,挨个敬酒。
姜荨端著茶杯,每次都说“我开车来的”,成功躲过了所有酒。她安静地吃东西,偶尔接一两句话,存在感低得像是包厢里的装饰品。
然后陆司辰来了。
他推门进来的时候,包厢里的声音明显小了一截。他扫了一圈,目光在姜荨身上停了不到一秒,然后走到技术总监旁边的空位坐下。
“路上堵车。”他说,语气平淡。
技术总监笑著给他倒酒:“小陆来得正好,刚才我们还在聊你那个新架构,上线后效能提升了百分之四十,厉害啊。”
“团队合作的结果。”陆司辰接过酒杯,仰头喝完。
姜荨低头吃烤银鳕鱼,假装自己是一棵长在椅子上的植物。
但她的耳朵不受控制地竖了起来。
酒过三巡,桌上的话题从技术聊到了八卦。有人开始翻旧照片,有人开始爆料谁谁谁当年面试时的糗事。技术总监喝得脸红脖子粗,突然拍了一下桌子:“说到当年,你们知道吗,陆司辰来咱们公司的时候,可是放弃了星辉科技的offer。”
全场哗然。
星辉科技,业界顶尖,多少人挤破头都进不去。
“真的假的?”有人问,“那为什么来咱们这?”
技术总监笑瞇瞇地看向陆司辰:“这得问他自己。”
陆司辰没说话,又喝了一杯酒。
姜荨夹菜的筷子停在半空。她也不知道自己为什么紧张,明明这件事跟她一点关系都没有。
“为了人。”陆司辰突然开口。
全场安静。
“什么人?”技术总监追问。
陆司辰没有回答。他转过头,视线越过半张桌子,落在姜荨身上。那个眼神很淡,淡得像是在看一个无关紧要的人,但姜荨感觉自己的心脏被人狠狠攥了一下。
然后他移开视线,又给自己倒了一杯酒:“随便说的,别当真。”
技术总监哈哈大笑:“你这小子,喝醉了就开始胡说八道。”
话题被岔开,包厢里又热闹起来。但姜荨手里的筷子再也没有动过。
赵敏敏凑过来,眼睛亮得像两个灯泡:“姜荨,你听到了吗?”
“听到什么?”
“‘为了人’!他说为了人!”赵敏敏压低声音,但语气激动得像中了彩票,“而且他刚才看你了!所有人都看到了!”
“他随便说的。”姜荨的声音干巴巴的。
“你信吗?”
姜荨没回答。
她不信。但她也不敢不信。
中场休息,赵敏敏借口上厕所,溜出去打电话。十五分钟后她回来,脸上的表情像是挖到了金矿。
“姜荨,”她坐下来,声音压到最低,“我刚打听到一件事。”
“什么事?”
“大学的事。”
姜荨的手指收紧了茶杯。
“技术部有个老员工,姓周,比你大五届,跟陆司辰是同一个导师。”赵敏敏的声音又快又低,“他说,陆司辰大四那年,导师让他帮忙审毕业设计的代码。你的论文刚好分给了他。”
姜荨的心跳开始加速。
“他说,陆司辰看完你的代码之后,发现有一个地方被人改过——就是那个导致逻辑漏洞的部分。你的原始版本是对的,但有人在答辩前动了你的程式码。”
姜荨的脑子嗡的一声。
“所以他在答辩现场当众指出来,不是为了让你难堪,是因为——”赵敏敏深吸一口气,“因为他发现问题太晚了,来不及私下告诉你,只能用这种方式提醒你。他希望你能注意到那个漏洞,在答辩的时候解释清楚。”
“但他打断了我的思路。”姜荨的声音很轻,“我根本没反应过来。”
“对,因为你当时太紧张了。”赵敏敏说,“老周说,陆司辰后来后悔了很久。他觉得自己搞砸了,不但没帮到你,还让你……”
她没有说下去。
姜荨低下头,看著茶杯里自己的倒影。模糊的,扭曲的,像她这四年来对陆司辰的所有记忆。
“还有一件事。”赵敏敏说,“老周说,陆司辰这些年一直在找你。”
“找我?”
“对。他知道你来了这家公司之后,才放弃了星辉的offer。他本来可以去更好的地方,但他选了这里。”赵敏敏看著她,“因为你在这里。”
姜荨的手指开始发抖。
“还有那些Bug——”赵敏敏的声音越来越小,“老周说,陆司辰的代码从来不会有那种低级错误。那些小问题,是他故意写的。”
“为什么?”
“因为只有系统出问题,你才会来找他。”
姜荨猛地站起来。
“你去哪?”赵敏敏吓了一跳。
“洗手间。”
她快步走出包厢,关上门的那一刻,靠在墙上,大口大口地喘气。
她的脑子里乱成一团。所有的记忆都在翻涌——毕业设计那天他的眼神,工作后每一次“偶遇”,代码里那些只有她懂的注释,凌晨两点的咖啡,手写的优化方案。
她以为是挑衅,以为是针对,以为是陆司辰看她不顺眼。
但原来,从头到尾,都是一场笨拙到极点的——
“姜荨?”
她猛地抬头。
陆司辰站在走廊的另一端,手里拿著烟,但没有点燃。他看到她靠在墙上,脸色苍白,眉头立刻皱了起来。
“你不舒服?”
“没有。”姜荨站直身体,“我只是——”
话没说完,包厢门打开了,技术总监探出头来:“小陆,进来进来,大家都在等你喝酒!”
陆司辰看了姜荨一眼,没有动。
“快进来!”技术总监直接走出来拉人,“今天高兴,不醉不归!”
陆司辰被拽进包厢,经过姜荨身边的时候,低声说了一句:“不舒服就早点回去。”
姜荨没说话。
她回到包厢的时候,气氛已经到了最高点。不知道谁起哄,开始轮流问每个人一个问题,答不出来就要罚酒。
轮到陆司辰的时候,有人问:“陆架构师,你为什么总是跟姜荨过不去?”
全场安静。
姜荨的茶杯差点从手里滑出去。
陆司辰坐在位置上,面前的酒杯已经空了三次。他的眼神有点迷离,脸颊泛著不正常的红,看起来是真的喝多了。
他沉默了很久,久到所有人都以为他不会回答了。
然后他开口了。
“我没跟她过不去。”
声音很低,低得像是在自言自语。
“我只是……”他停了一下,视线穿过半张桌子,落在姜荨脸上,“想让她多看看我。”
全场死寂。
姜荨手里的杯子掉了。
茶水泼了一桌,顺著桌沿滴在她的裙子上,但她完全没有感觉。她只是看著陆司辰,看著那双平时冷得像冰的眼睛,此刻却带著一种她从未见过的温度。
那温度很烫,烫得她不敢直视。
“哈哈哈哈——”技术总监第一个笑出来,“小陆你喝醉了!说什么胡话!”
其他人也跟著笑,笑声冲淡了刚才的尴尬。有人开始打圆场,有人开始转移话题,包厢里又热闹起来。
但姜荨知道,他没有说胡话。
散场的时候,已经是深夜十一点。同事们三三两两地离开,赵敏敏被男朋友接走了,走之前用力捏了一下姜荨的手:“好好谈谈。”
姜荨站在路边等计程车,冷风吹得她打了个寒颤。
身后传来脚步声。
“姜荨。”
她转过头。陆司辰站在她身后,手里拎著西装外套,衬衫袖口挽到小臂,整个人看起来狼狈又清醒——一种喝醉后特有的清醒。
“你怎么回去?”他问。
“计程车。”
“我送你。”
“不用。”
“太晚了,不安全。”
“陆司辰。”姜荨看著他,“你到底想怎样?”
他没有回答。他只是站在那里,看著她,眼神认真得像在审视一段最关键的代码。
然后他走过来。
一步,两步,三步。
他停在她面前,距离近到她能闻到他身上的酒味,混著洗衣液淡淡的清香。
“姜荨。”他说,声音很低。
“嗯?”
“你知不知道……”
他停住了。
姜荨屏住呼吸。
“你写代码的时候,”他伸出手,指尖差点碰到她的头发,又缩了回去,“特别好看。”
姜荨的心跳漏了一拍。
下一秒,陆司辰的身体晃了一下,整个人直接朝她倒了过来。
她本能地伸手去接,他的体重压在她肩上,沉得她往后退了两步才稳住。他的头靠在她肩膀上,呼吸均匀,温热的气息喷在她的颈侧。
睡著了。
就这样靠在她肩上睡著了。
姜荨僵在原地,动也不敢动。她能感觉到他的心跳,透过薄薄的衬衫,一下一下,稳定的,有力的。
和她乱成一团的心跳形成了鲜明的对比。
她抬起手,犹豫了很久,最后轻轻地放在他的背上。
“陆司辰。”她小声说。
没有回应。
他睡得很沉,眉头舒展著,嘴角似乎还带著一点弧度。这张脸她看了四年,从大学到现在,从来没有这么近过。
姜荨闭上眼睛,深吸了一口气。
她想起他说的话——“我只是想让她多看看我”。
她想起那些代码注释,那些只有她懂的变量命名,那些故意制造的Bug。
她想起毕业设计那天,他在台下举手,眼神里她从未读懂的焦急。
她想起自己这四年来,每一次看到他,都拼命移开视线,拼命告诉自己“你不配”。
但原来,从一开始,就不是她不配。
是他太笨了。
笨到用四年的时间,写了无数个Bug,只为了让她多看自己一眼。
姜荨睁开眼睛,看著肩膀上那张睡著的脸,轻声说了一句话。
声音很小,小到连她自己都几乎听不见。
“你这个笨蛋。”
姜荨是被手机闹钟吵醒的。
她睁开眼,第一个感觉是肩膀疼——被一个一米八几的男人压了一整夜,不疼才怪。第二个感觉是脖子酸,因为她昨晚就靠在沙发上睡著了,姿势扭曲得像一只煮熟的虾。
第三个感觉是,有人正在看她。
她猛地转头。
陆司辰坐在沙发另一头,已经醒了,手里端著一杯水,正盯著她看。他的衬衫皱巴巴的,头发乱得像是被风吹过的鸟窝,整个人看起来狼狈极了。
但眼神清醒得要命。
“你醒了。”他说。
姜荨瞬间坐直,下意识地检查自己的衣服——还好,整整齐齐。她清了清喉咙,努力让声音听起来正常:“你昨晚喝醉了,我不知道你家地址,就把你带回来了。”
“我知道。”
“你吐了两次。”
“……我知道。”
“你还说了一堆胡话。”
陆司辰的耳根红了:“我说了什么?”
姜荨看著他那副紧张的样子,突然觉得有点好笑。原来天才架构师喝醉了也会说胡话,醒来也会尴尬,耳朵也会红。
“你说我的代码写得特别好。”她面不改色地撒谎。
“不可能。”陆司辰皱眉,“我喝醉了也不会说这种违心话。”
姜荨:“…………”
空气安静了三秒。
陆司辰意识到自己说了什么,整个人僵住了。他张了张嘴,似乎想解释,但什么都没说出来。
姜荨站起来,走向厨房:“你要吃早餐吗?我只有吐司和鸡蛋。”
“不用——”
“我没问你需不需要,我问你吃不吃。”她打开冰箱,“三分钟。”
陆司辰沉默了几秒:“……吃。”
姜荨背对著他,嘴角忍不住翘了一下。
早餐端上桌的时候,气氛缓和了不少。陆司辰吃东西的样子很安静,叉子碰到盘子几乎没有声音。姜荨坐在对面,捧著一杯热牛奶,时不时偷看他一眼。
“昨晚的事,”陆司辰突然开口,“抱歉。”
“哪件?”
“所有。”他放下叉子,看著她,“喝醉、吐在你家、说胡话。还有之前的事——代码注释、凌晨送咖啡、在技术会上跟你吵架。”
姜荨挑眉:“你是在道歉?”
“是。”
“一次道歉全部打包?”
陆司辰的眉头又皱起来了,似乎在认真思考这个问题的语义。过了几秒,他说:“如果你觉得不够,我可以分开道歉。”
姜荨终于没忍住,笑了出来。
她笑起来的时候,眼睛弯成了月牙形,整个人从那个冷静理性的运维工程师,变成了一个普通的二十六岁女孩。陆司辰看著她,手里的叉子停在半空,忘了放下。
“陆司辰。”姜荨止住笑,看著他。
“嗯?”
“你是不是想约我吃饭?”
他的手指收紧了叉子:“……你怎么知道?”
“因为你从醒来到现在,看了我手机萤幕十七次。”姜荨说,“每次都在看餐厅的点评页面。”
陆司辰沉默了。
姜荨叹了口气:“你直接问我不就好了?”
“……那你周六有空吗?”
“有。”
“那——”
“但你要答应我一件事。”
“什么事?”
“约会的时候不许讨论技术。”姜荨说,“不许说代码、架构、部署、效能优化,一个字都不行。”
陆司辰的表情像是被人强行删掉了整个硬碟:“那……聊什么?”
姜荨站起来,拿起他的空盘子走进厨房。她的声音从厨房传来,带著一点笑意:“随便。聊天气、聊电影、聊你小时候养过什么宠物。人类约会都聊这些。”
“……人类?”
“对,你不是人类吗?”
陆司辰坐在餐桌前,看著她的背影,嘴角弯了一下。那个弧度很小,小到几乎看不出来,但确实是笑了。
---
周六的约会,陆司辰选了一家安静的法餐厅。
姜荨到的时候,他已经坐在位置上了,面前放著一本翻开的书。她走过去才看清楚——那是一本《如何与人类沟通》。
她差点当场笑出来。
“你买的?”她坐下来,指著那本书。
陆司辰迅速把书收进包里:“朋友推荐的。”
“哪个朋友?”
“……不重要。”
姜荨忍著笑,翻开菜单。两个人安静地点了餐,安静地等上菜,安静地喝水。空气里弥漫著一种微妙的尴尬,像是两个刚认识的人被安排相亲,不知道该说什么。
“所以,”姜荨打破沉默,“你小时候养过宠物吗?”
“养过。”陆司辰说,“一只乌龟。”
“什么品种?”
“不知道。路边捡的。”
“然后呢?”
“养了一个月,死了。”
“……你怎么养的?”
“喂牠吃火腿肠。”
姜荨沉默了三秒,然后笑到趴在桌上。陆司辰看著她笑得眼泪都出来了,表情有点无辜:“文档上说乌龟是杂食动物。”
“文档?”姜荨笑得上气不接下气,“你养宠物看文档?”
“不然看什么?”
她笑了整整一分钟才停下来,擦著眼泪说:“陆司辰,你真的是……太有意思了。”
“这是在夸我?”
“算吧。”
陆司辰若有所思地点了点头,似乎在心里把这句话存进了某个重要文件夹。
---
约会之后,两个人的关系发生了微妙的变化。
在公司里,他们看起来还是跟以前一样——陆司辰在技术会上照样挑她部署方案的毛病,姜荨照样面无表情地怼回去。同事们都以为他们还是水火不容的对头,完全没发现任何异样。
但私下里,完全是另一幅光景。
陆司辰开始在她的工位上放东西——不是花,不是礼物,是一份份手写的代码优化建议。每一份都写得密密麻麻,从架构设计到变量命名,从效能优化到安全漏洞,连标点符号都不放过。
姜荨第一次收到的时候,在工位上愣了整整五分钟。
赵敏敏凑过来看了一眼,惊呼:“这什么?情书?”
“代码复审。”姜荨面无表情地收起来。
“代码复审用粉红色便利贴?”
姜荨没说话。她回到家才仔细看,发现最后一页的角落里,用极小的字写著:“第3页的优化方案我改了两天,希望你喜欢。”
她拿著那张便利贴看了很久,最后叹了口气,打开电脑。
第二天,陆司辰收到了一个包裹。拆开来,是一本书——《如何与人类沟通(进阶版)》。扉页上写著一行字:“谢谢你的代码复审。但下次能不能别用粉红色便利贴?太显眼了。”
书里还夹著一张CD,是某个冷门后摇乐队的专辑。没有署名,但他知道是谁。
从那天起,陆司辰开始戴耳机上班。
没有人知道他在听什么,只有姜荨知道——那张CD里有一首歌,是她最喜欢的。他们会在同一个时间按下播放键,隔著整个办公区,分享同一段旋律。
有时候姜荨会抬头,透过隔板的缝隙看过去。陆司辰总是低著头写代码,表情专注,但手指敲击键盘的节奏,会跟著音乐的拍子走。
她看了很久,直到赵敏敏的声音把她拉回来。
“你在看什么?”
“没什么。”姜荨低头继续写代码。
“你最近很奇怪。”赵敏敏压低声音,“老是发呆,老是看手机,有时候还会莫名其妙笑出来。”
“没有。”
“有!而且你昨天穿了一件新外套,你已经三年没买过新外套了!”
“那件打折。”
“打几折?”
“……三折。”
赵敏敏盯著她看了五秒:“姜荨,你是不是谈恋爱了?”
姜荨的手指在键盘上停了。
“没有。”她说。
但她的耳朵红了。
---
那个周三的下午,姜荨在电梯里遇到了陈繁。
电梯门关上的那一刻,陈繁的手机响了。他掏出来看了一眼,没接。但就在那短短的几秒钟里,姜荨的余光扫到了他的萤幕——那是一张照片。
她的照片。
是在上次聚餐的时候拍的,她正低头喝茶,完全没有看镜头。拍摄角度很隐蔽,像是偷拍的。
姜荨的心脏猛地缩了一下。
陈繁似乎意识到了什么,迅速把手机收进口袋,面无表情地看著电梯楼层显示器。两个人沉默地站著,空气压抑得像暴风雨前的天空。
电梯到了一楼,门开了。陈繁走出去,头也没回。
姜荨站在原地,看著他的背影消失在大厅门口,心里涌起一股说不清的不安。
当天下午,那不安就应验了。
她的邮箱里躺著一封新邮件,发送者是陈繁,抄送给了技术总监和人事部。
邮件标题是:关于运维组人员轮岗学习的通知。
内容很简短——从下周一开始,姜荨调离核心系统维护岗位,负责一个上世纪九十年代遗留下来的旧系统维护。美其名曰“轮岗学习”,实际上是把她发配到了技术部门最边缘、最无聊、最没有发展空间的岗位。
轮岗周期:三个月。
姜荨盯著那封邮件,手指攥紧了滑鼠。
她知道这是陈繁的报复。上次那个紧急项目她虽然完成了,但过程中他所有不合理的要求她都保留了邮件证据,还在项目总结会上委婉地提了一句“需求文档缺失导致开发周期延长”。技术总监虽然没说什么,但会后把陈繁叫进办公室谈了半个小时。
从那天起,陈繁看她的眼神就不对了。
但她没想到,他会用这种方式。
“姜荨!”赵敏敏冲过来,“你看到邮件了吗?那个旧系统——那个破系统连文档都没有,代码是用早就淘汰的语言写的,全公司没几个人会维护!”
“我看到了。”
“你不能去!去了就是死路一条,三个月出来你什么核心技术都忘光了!”
“我知道。”
“那你——”
“我会处理。”姜荨站起来,关掉邮件页面。
她走出工位,还没到电梯口,就看到陆司辰从另一边走了过来。他的脸色很难看,嘴唇抿成一条线,整个人周围的气压低得像暴风眼。
“你看到了?”姜荨问。
“嗯。”他的声音很冷,“我现在去找陈繁。”
“陆司辰——”
但他已经转身走了,步伐快得像一阵风。
姜荨追上去的时候,他已经推开了陈繁办公室的门。
陈繁正坐在电脑前喝茶,看到陆司辰进来,脸上露出一种意料之中的表情:“陆架构师,什么风把你——”
“轮岗的事,谁决定的?”
陈繁放下茶杯:“这是运维组内部的人事安排——”
“我再问一次,谁决定的?”
陆司辰的声音不大,但语气冷得像冰刀。姜荨站在门口,看到陈繁的脸白了一瞬。
“是我提议的。”陈繁说,“轮岗学习是公司制度——”
“那个旧系统三年没人动过,你让她去维护,是想废掉她?”
“陆架构师,你这话说得太重了——”
“重?”陆司辰往前走了一步,“陈繁,你上次的紧急项目是谁帮你擦的屁股?上上次的线上故障是谁半夜爬起来修的?你现在把她调走,核心系统出问题谁来顶?”