车子驶入陈默住的小区时,车载音响正放到一首钢琴曲的尾声。最后一个音符落下,车厢里只剩下引擎的低鸣。
沈清澜关掉音乐。她看着陈默把车停进车位,拉起手刹。仪表盘的蓝光暗下去,车窗外的路灯黄蒙蒙的。
“上去坐坐?”陈默问。他嗓子有点哑。
沈清澜点点头。她解开安全带,金属扣弹回去的声音很清脆。
电梯上行时,两人都没说话。陈默盯着楼层数字跳,沈清澜低头看手机屏幕。白光映在她脸上,睫毛投下细碎的影子。
门开了。陈默摸出钥匙,插进锁孔转动。咔哒一声,门向内滑开。
屋里没开灯。窗外的城市光透进来,在地板上铺了层灰蓝色的亮。陈默按亮玄关的灯,暖黄的光一下子漫开。
“拖鞋在柜子里。”他说。
沈清澜拉开柜门。里面整齐摆着两双拖鞋,一双灰色,一双深蓝色。她拿了蓝色的那双,鞋底很新,标签还没撕。
陈默走进客厅。他脱下西装外套,随手搭在沙发扶手上。布料滑下去一半,悬在半空。
“喝水吗?”他问。
“我自己来。”沈清澜说。她走进厨房,打开冰箱。冷气扑出来,带着蔬菜和牛奶的味道。
她拿出两瓶矿泉水。瓶身上凝着细密的水珠,摸上去凉丝丝的。
陈默已经打开了笔记本电脑。屏幕亮起来,蓝光照亮他的半边脸。他登录公司后台,手指在触摸板上滑动。
沈清澜把水放在茶几上。瓶底碰到玻璃,咚的一声轻响。
“查什么?”她问。
“日志。”陈默说,“吴斌那五十行查询,到底看了什么。”
沈清澜拉过一把椅子坐下。椅子轮子在地板上滑出半道弧线,吱呀一声。
屏幕上代码滚动得很快。黑色背景,绿色和白色的字符一行行往下跳。陈默的眼睛跟着光标走,瞳孔里映出闪烁的光点。
“这里。”他忽然停住。
沈清澜凑过去看。屏幕上是数据库的查询日志,时间戳显示昨晚八点零三分。查询语句调用了用户画像模型的参数表,限制返回前五十行。
“他看了核心权重矩阵。”沈清澜说。
陈默没说话。他点开参数表的详细结构图。密密麻麻的字段名排列着,旁边标注着数据类型和说明。
权重矩阵占了三十七个字段。这些数字决定了模型如何给用户打标签,是算法最核心的部分。
“五十行够推导出架构吗?”陈默问。
沈清澜想了想。“如果是熟手,够猜个七七八八。但想复现,还差得远。”
陈默向后靠进沙发里。布面被他的重量压得凹陷下去,弹簧发出轻微的咯吱声。
“赵志刚那边有能人。”他说,“如果他们拿到这五十行,再结合公开论文……”
“最多做出个六成像的东西。”沈清澜打断他,“我们上周刚更新了损失函数,这五十行里没有。”
陈默看向她。沈清澜的眼睛在屏幕光里很亮,像两枚黑色的宝石。
“你确定?”他问。
“确定。”沈清澜说,“更新是我亲手做的,日志还没同步到测试库。吴斌查的是上个月备份的版本。”
陈默长长吐了口气。气息在空气中散开,看不见形状。
他拿起矿泉水,拧开瓶盖。水涌进喉咙,凉意一直滑到胃里。
“那就是虚惊一场。”他说。
“不算虚惊。”沈清澜摇头,“他动了心思,这才是问题。”
窗外传来救护车的声音。鸣笛由远及近,又由近及远,最后消失在楼宇之间。
陈默合上电脑。屏幕暗下去,房间里的光一下子少了三分之一。
“明天开全员会。”他说,“有些话得说清楚。”
“怎么说?”
“照实说。”陈默站起来,走到窗边,“有人被挖,没走。公司有救助基金,能用。再有下次,按竞业协议追责。”
沈清澜也站起来。她走到陈默身边,两人并肩看着窗外。远处写字楼的灯还亮着,方形的窗户像一个个发光的格子。
“会伤士气。”她说。
“不说更伤。”陈默转头看她,“藏着掖着,猜来猜去,人心就散了。”
沈清澜沉默了几秒。她抬起手,指尖在玻璃上划过,留下一道浅浅的痕。
“我同意。”她说。
陈默手机震了。他掏出来看,是张伟发来的消息。
“吴斌刚给我发了邮件。”张伟写道,“说想明天一早找你谈谈。”
陈默回:“让他九点到公司。”
他放下手机。屏幕朝下扣在茶几上,震动声被闷在下面。
“他找你谈什么?”沈清澜问。
“不知道。”陈默说,“也许是辞职,也许是别的。”
“你觉得他会走吗?”
陈默想了想。“不会。”
“为什么?”
“因为他今天把u盘掏出来了。”陈默说,“真要走的人,不会演这出。”
沈清澜嗯了一声。她走回沙发边,拿起自己的包。帆布包挎上肩膀时,带子摩擦毛衣,发出沙沙的声音。
“我回去了。”她说。
陈默送她到门口。沈清澜换回自己的鞋,高跟鞋踩在地板上,哒哒两声。
“明天见。”她说。
“明天见。”
门轻轻关上。陈默在玄关站了一会儿,听着电梯下行时缆绳转动的声音。那声音很低,像远处的雷鸣。
他走回客厅,重新打开电脑。屏幕亮起,光刺得眼睛发涩。
他开始写明天会议的提纲。键盘敲击声在安静的房间里回荡,一下,又一下。
写到第三点时,他停住了。手指悬在键盘上方,微微颤抖。
他想起吴斌母亲的眼睛。糖尿病并发症,视网膜病变,看东西像隔了层毛玻璃。
上个月团建拍照时,吴斌特意说,等拿到年终奖就带妈妈去北京治眼睛。年轻人说这话时笑得傻气,啤酒沫子沾在嘴角。
陈默删掉了刚写的一行字。他重写,语气放软了些。
墙上的钟指向凌晨一点。秒针一跳一跳地走,声音很轻,但每一跳都很清晰。
他写完提纲,点了保存。危机处理与团队净化_会议提纲_日期。
关掉电脑时,屏幕暗下去的瞬间,他看见自己疲惫的脸映在黑屏上。
洗了个澡。热水冲在背上,皮肤微微发红。浴室里雾气弥漫,镜子上蒙了层白,什么也看不清。
他躺上床时已经快两点了。窗帘没拉严,一道街灯的光斜斜切进来,落在被子上。
他闭上眼睛,脑子里还在回放今天的画面。吴斌发红的眼睛,沈清澜平静的脸,周拓绷紧的下巴。
这些画面旋转着,像碎玻璃在阳光下闪。
不知道什么时候睡着的。再睁开眼时,天已经亮了。灰色的光从窗帘缝挤进来,在地板上拉出一道亮线。
陈默坐起来。头有点沉,像灌了铅。
他冲了杯咖啡。速溶的,粉粒在水里旋转着融化,冒起热气。味道很苦,他加了半勺糖。
八点半出门。电梯里遇到隔壁的老太太,拎着菜篮子,冲他点点头。陈默也点点头,没说话。
到公司时刚过九点。前台小姑娘正在擦桌子,抹布拧得半干,水珠滴进盆里,嗒嗒响。
“陈总早。”她抬起头。
“早。”陈默说,“吴斌来了吗?”
“在会议室等您。”
陈默走向会议室。玻璃门关着,百叶窗拉下一半。透过缝隙,他看见吴斌坐在长桌尽头,双手放在膝盖上,背挺得笔直。
他推门进去。吴斌立刻站起来,动作太急,椅子腿刮过地板,发出刺耳的声音。
“陈总。”
“坐。”陈默说。他在吴斌对面坐下,中间隔了整张桌子。
吴斌慢慢坐回去。他今天穿了件熨过的衬衫,领子很挺,但脸色很差。眼下一片青黑,胡子也没刮干净。
“想谈什么?”陈默问。
吴斌从包里掏出个文件夹。牛皮纸的,边角磨得发白。他双手递过来,手指有点抖。
“这是我的检讨书。”他说,“还有……离职申请。”
陈默没接。他看着文件夹,封面用钢笔写了四个字:深刻检讨。字迹很用力,纸面都凹下去了。
“想好了?”他问。
吴斌低下头。“我没脸待下去。昨天……昨天我差点毁了公司。”
“差点而已。”陈默说,“没毁。”
吴斌抬起头,眼睛红了。“陈总,我……”
“把检讨给我。”陈默伸出手,“离职申请收回去。”
吴斌愣住。他张着嘴,半天没说出话。
陈默拿过文件夹,翻开。里面是手写的检讨,密密麻麻三页纸。字写得歪歪扭扭,好几处被水渍晕开,墨迹化成一团。
他快速扫了一遍。吴斌写了怎么被接触,怎么动摇,怎么挣扎。最后一段写着:我不配做默视的人。
“写得不怎么样。”陈默合上文件夹,“但态度还行。”
他把文件夹放在桌上,推回吴斌面前。
“公司有规定,重大违纪降一级,观察半年。”陈默说,“你从高级工程师降到中级,薪水调回调薪前的水平。有问题吗?”
吴斌摇头,摇得很用力。
“观察期内,你调离核心组,去支持组做基础开发。”陈默继续说,“半年后如果表现合格,可以申请调回。接受吗?”
“接受。”吴斌声音发哑,“谢谢陈总。”
“别谢我。”陈默站起来,“谢你自己,昨晚没把u盘插上。”
他走到门口,又停住。
“十点开全员会。”他说,“你也要来。”
会议室的门开了又关。吴斌一个人坐在长桌尽头,盯着面前的文件夹。封面上的字在晨光里微微反光。
他伸手摸了摸那些凹陷的笔画。指尖触到纸面,粗糙的质感。
眼泪掉下来,砸在“检讨”两个字上。墨迹又化开一点,晕成小小的圆。
十点整,大会议室坐满了人。
陈默站在前面,背后是投影幕布。沈清澜坐在第一排,周拓和张伟分坐两边。吴斌坐在最后面的角落,低着头。
空气很安静。只有空调出风口的嘶嘶声,还有谁不小心碰倒水杯的轻响。
陈默打开投影。幕布上出现一行字:关于近期事件的通报与说明。
“今天开会,说三件事。”他开口。声音不大,但每个人都听得清楚。
“第一,公司昨天发生了一起未遂的技术泄露事件。一名员工被竞争对手接触,几乎动摇,但最后关头选择了留下。”
底下响起轻微的骚动。有人转头,目光在人群里搜寻。吴斌的头垂得更低了。
“事情已经处理完毕。”陈默继续说,“公司启动了内部调查,评估了潜在损失。结论是,核心技术和数据没有泄露。”
骚动平息下去。人们重新坐直,目光回到陈默身上。
“第二,公司设有员工紧急救助基金。”陈默切换下一张幻灯片,“家庭突发困难,重大疾病,都可以申请。流程和标准在这里,散会后行政会发详细说明。”
幻灯片上是申请表格的样张。条款列得很清楚,审批流程画了流程图。
“我要说的是,”陈默看着所有人,“有困难,找公司。别自己扛,更别走歪路。”
他说这话时,眼睛扫过最后一排。吴斌的肩膀抖了一下。
“第三,”陈默关掉投影,“关于忠诚。”
会议室里更安静了。空调好像也停了,空气凝滞不动。
“我不要求你们把公司当家,也不要求你们奉献一切。”陈默说,“但我要求基本的职业操守。拿了工资,就把活干好。签了合同,就遵守协议。”
他顿了顿,手指在讲台上敲了敲。木质台面发出沉闷的响声。
“如果有人觉得外面更好,可以提离职,我们按劳动法办。”他说,“但如果一边拿着公司的钱,一边想着怎么把东西带走——”
他的声音冷下来。
“竞业协议不是摆设。法务部也不是摆设。”
最后一句话落下,会议室里连呼吸声都轻了。有人咽了口唾沫,喉咙滚动的声音很清晰。
陈默看了眼手表。
“十一点技术组继续开会,复盘这次的技术隐患。其他部门照常工作。”他说,“散会。”
人们陆续站起来。椅子腿拖过地板,咕噜噜响。交谈声低低地浮起来,像水面下的暗流。
吴斌最后一个离开。他走到门口时,陈默叫住他。
“吴斌。”
吴斌转身。他眼睛还红着,但背挺直了。
“去工作吧。”陈默说。
吴斌用力点头。他走出会议室,脚步起初有些虚浮,但越走越稳。
沈清澜走到陈默身边。她手里拿着笔记本,纸上记了几行字。
“效果怎么样?”她问。
“不知道。”陈默说,“但该说的都说了。”
周拓走过来,拍了拍陈默的肩膀。“够硬气。就该这样。”
张伟在门口等着。他等人都走光了才进来,手里端着杯咖啡。
“技术组会我来主持?”他问。
“嗯。”陈默说,“把漏洞补上,权限再收紧一级。”
“明白。”
三人走出会议室。办公区已经恢复了平常的样子。键盘声密集起来,电话铃声此起彼伏。有人在小声讨论需求,有人对着屏幕皱眉思考。
陈默回到自己办公室。他关上门,外面的声音被隔开,只剩一层模糊的背景音。
他在椅子上坐下。阳光从窗外照进来,在桌面上切出明亮的一块。灰尘在光柱里缓缓旋转,像微小的星系。
手机震了。深蓝资本发来消息,确认下午三点的会议。
陈默回了个“收到”。他打开邮箱,未读邮件堆了三十多封。投资问询,合作邀请,媒体采访请求。
他点开最上面一封。是一家行业媒体的专访邀约,标题写着:新锐ai公司默视科技,如何从背叛中崛起?
陈默看了几行,关掉了。
他不需要讲这种故事。至少现在不需要。
门外传来敲门声。陈默说了声“进”,沈清澜推门进来。
“技术组会开始了。”她说,“张伟在讲权限管理的新方案。”
“让他放手做。”陈默说,“你下午跟我去深蓝?”
“嗯。”沈清澜在对面坐下,“材料我都准备好了。”
她从包里拿出文件夹。厚厚的一摞,封面上贴着彩色标签。财务数据,技术路线图,市场分析,每一部分都分门别类。
陈默翻开看了看。表格做得精细,图表清晰,连附注的字体都统一。
“你昨晚没睡?”他问。
“睡了三小时。”沈清澜说,“够了。”
陈默合上文件夹。纸页合拢时发出轻微的啪嗒声。
“谢谢。”他说。
沈清澜摇摇头。“分内的事。”
她站起来,走到窗边。十六楼看下去,街道上的车流像彩色的河,缓缓向前流动。
“下午的会,你打算怎么说?”她背对着问。
“照实说。”陈默也站起来,走到她身边,“技术优势,市场机会,团队实力。还有——我们刚处理了一次内部危机,证明公司有抗风险能力。”
沈清澜转过头看他。阳光从侧面照过来,在她脸上投下清晰的阴影线。
“他们会问细节。”她说。
“那就给细节。”陈默说,“但不是全部。”
两人并肩站着,看着楼下的城市。正午的阳光很烈,玻璃幕墙反射出刺眼的白光。远处有云在积聚,边缘被染成淡金色。
“要下雨了。”沈清澜轻声说。
“下吧。”陈默说,“下完天更晴。”
会议室里的讨论声隐约传进来。张伟的声音时高时低,偶尔夹杂着谁的提问。那些声音混在一起,像某种持续的低鸣。
陈默看了眼时间。十一点四十。
“去吃饭?”他问。
“好。”
他们走出办公室。经过技术组会议室时,门开着一条缝。张伟站在白板前,正画着什么图。底下坐满了人,吴斌坐在最边上,笔记本摊在腿上,笔尖飞快地动。
陈默轻轻带上门。咔哒一声,里面的声音被关住了。
走廊里很安静。地毯吸走了脚步声,只有空调风管里持续的嗡嗡声。
电梯下行时,沈清澜忽然开口。
“你其实可以开除他。”她说,“没有人会说什么。”
“我知道。”陈默看着楼层数字跳,“但开除解决不了问题。”
“那什么能解决问题?”
“时间。”陈默说,“还有他以后写的每一行代码。”
电梯到达一楼。门开了,大厅里的嘈杂声涌进来。前台电话在响,快递员在签收,几个访客坐在等候区翻杂志。
陈默和沈清澜穿过大厅。玻璃自动门向两边滑开,热风扑面而来,带着汽车尾气和水泥地被晒烫的味道。
他们走向街对面的餐厅。人行道上树影婆娑,光斑在地砖上晃动。
红灯亮了。车流停住,引擎声低下去。一只麻雀跳上斑马线,啄了啄地面,又飞走了。
陈默抬头看天。云层更厚了,边缘镶着铅灰色的边。
真的要下雨了。
但他忽然觉得,这样也好。雨会洗掉灰尘,也会让扎根的东西,扎得更深。
绿灯亮了。他迈开步子,朝着对面走去。
沈清澜跟在他身后半步。她的影子叠在他的影子上,在正午的阳光下,融成一个模糊的深色形状。