我嫁给穷小子被闺蜜嘲笑,二十年后公司上市,来面试的竟然是他
楔子
“你真要嫁给他?没房没车,连份像样工作都没有。”周莉的声音穿过二十年,仍扎在苏念安耳朵里。她低头看着手里那封从未拆开的信,泛黄信封上字迹已模糊。手机震了下,秘书发来消息:面试技术顾问的人到了,姓陆。她指尖一颤,信纸边缘被捏出细褶。窗外陆怀舟站在前台,灰西装洗得发旧,正局促地整理袖口。
第一章 你确定要嫁给他
2003年6月的江城,梧桐絮飘得满街都是,像一场不合时宜的雪。
苏念安拉着陆怀舟的手往学校后门的川菜馆走,手心全是汗。她偷偷抬头看他,他今天特意换了件干净的白衬衫,袖子挽到小臂中段,手腕上什么也没有,连块表都没有。头发是刚剪的,后颈处有一道明显的推子印,显然是图便宜去了校门口十块钱那家。
“你紧张?”苏念安捏了捏他的手指。
陆怀舟摇头,嘴角绷得很紧:“不紧张。”
“那你手心怎么这么凉。”
“天热。”
苏念安笑了一声,没戳穿他。川菜馆的玻璃门推开时,冷气混着辣椒味扑面而来,她一眼就看见周莉坐在靠窗的位置,正举着菜单翻看。同桌的还有另外两个女生,赵敏和张帆,都是周莉从大一起就玩在一起的圈子。
周莉抬头,目光先掠过苏念安的脸,又落到她身后半步的陆怀舟身上。那目光停了一瞬,然后弯起嘴角。
“来了啊,坐。”周莉把菜单推过来,“这家水煮鱼不错,我点过了,你们再加。”
苏念安拉着陆怀舟坐下。圆桌不大,四个女生原本坐得松散,他们一来,空气里忽然多了一层说不清的紧。赵敏笑着问陆怀舟:“陆同学是哪个学院的?以前没见过。”
“计算机。”陆怀舟说。
“哦——计算机好啊,好找工作。”赵敏的语气像是已经看见了结局。
菜一道道上。周莉挑着鱼片,忽然开口:“念安,你工作定了吗?”
“定了,外贸公司,下个月报到。”
“那陆同学呢?”
陆怀舟放下筷子:“我暂时不找。”
桌上安静了两秒。周莉的眉毛挑起来,筷子停在半空,眼神在苏念安和陆怀舟之间转了个来回。
“不找?毕业不找工作,那你干什么?”
“我和几个同学在做一个项目。”陆怀舟说,“软件外包,接单开发,已经谈了两个客户。”
“外包。”周莉慢慢重复这两个字,像在咀嚼一颗咬不动的硬糖,“那就是朝不保夕了。”
苏念安夹了一筷子菜放进陆怀舟碗里,声音很平:“他有技术,接单比他上班赚得多。”
“赚得多?”周莉笑了一声,笑声不冷不热,桌上其他两个女生跟着笑了笑,虽然她们可能根本不知道在笑什么,“念安,你是我们系成绩最好的,追你的人都排到校门口了。你知道张帆现在跟谁在一起吗?恒信证券的分析师,去年毕业的,在江城买了房。”
张帆低头喝汤,没有接话。
苏念安把筷子放平,端起茶杯喝了一口。她知道周莉在看她,那种带着优越感的、关切中藏着刀刃的眼神,从大二起她就在熟悉。周莉家境好,父亲是区里的干部,母亲开美容院,她习惯了一切用价签衡量。
“莉莉,”苏念安说,“我喜欢他,跟房子车子没关系。”
“喜欢?”周莉放下筷子,身体前倾,压低声音但桌上每个人都听得清楚,“念安,你太天真了。我表姐当年也说喜欢,嫁了个穷教书的,现在呢?三十岁不到,手糙得跟四十一样,天天为了奶粉钱吵架。你以为爱情能当饭吃?”
陆怀舟正在剥虾。他手指修长,指节分明,指甲剪得很干净。虾壳被完整地剥下来,码在碟子边上,一只,两只,三只。他把剥好的虾肉放进苏念安碗里,动作很轻,没有抬头,也没有说话。
苏念安看着碗里的虾肉,忽然想起去年冬天,她发烧到三十九度,陆怀舟逃了两天课守在她宿舍楼下,怕她半夜需要去医院。他没有钱给她买贵的药,就去药店一样一样对比价格,把说明书上的成分表抄下来问药剂师哪种效果一样但便宜。那个冬天很冷,他在风里站了四个小时,因为宿管阿姨不让男生进楼。
“他给我剥虾。”苏念安抬起头,声音不大,但每一个字都清楚,“他记得我不吃虾线,每次都会挑干净。他记得我所有的过敏源,记得我生理期是哪天,记得我喝豆浆要加一勺糖。你们说的那些条件,他会有的,但不是因为我逼他要有才配跟我在一起。”
桌上彻底安静了。周莉的脸色变了变,嘴唇抿成一条线。赵敏打圆场:“哎呀,念安你别激动,莉莉也是为你好……”
“我知道。”苏念安站起来,“这顿我请了,你们慢慢吃。”
她拿起包往外走,陆怀舟跟在她身后,始终没有说话。
出了川菜馆,晚风热烘烘地扑过来。苏念安走在前面,走了大约五十米,忽然停下来,转过身瞪着他。
“你怎么不反驳?她说你没房没车没背景,你就坐在那里剥虾?”
陆怀舟看着她,路灯在他脸上投下淡淡的阴影。他确实瘦,颧骨微微突出,但眼睛很亮,深黑色的瞳孔里映着路灯光。
“反驳什么。”他说,“她说的都对。”
“陆怀舟——”
“念安。”他往前一步,离她很近,近到苏念安能闻到他衬衫上洗衣粉的味道,那种超市里最便宜的牌子,“我现在的确什么都没有。你跟着我,会被人说傻。”
苏念安盯着他:“你也觉得我傻?”
他摇头,很慢,很用力。
“那不就完了。”苏念安伸手拽住他的手指,握紧,“他们说什么我不管。我毕业了有工作,你有技术。我们慢慢来,总会好的。”
陆怀舟低下头。他的额头几乎碰到她的发顶,喉结上下动了一次,声音闷在胸腔里:“我以后会让你过好日子。”
“我知道。”
“真的。”
“我说我知道了。”苏念安抬起脸冲他笑,眼睛弯成两道月牙,“你剥的虾我还没吃呢,下次补给我。”
他也笑了,嘴角弧度很小,但眼睛里的沉重散开了一点。路灯把两个人的影子拉得很长,交叠在梧桐树影斑驳的人行道上。陆怀舟反握住她的手,他的手掌很热,刚才的凉意已经散了。
“走吧,送你回宿舍。”他说。
两个人慢慢地走。苏念安把他的手扣在自己的指缝里,感觉到他虎口处的一层薄茧,常年敲键盘磨出来的。她不觉得粗糙,反而觉得很踏实。
“你那个外包项目,靠谱吗?”她问。
“嗯。下个月结第一笔款,三千块。”
“三千?”苏念安偏头看他,“够租房子了。”
“够租一个单间。”
她没说话,只是把他的手握得更紧了些。走到宿舍楼下,梧桐树的影子在地上晃来晃去,晚风把她的裙子吹得微微鼓起来。
“上去吧。”陆怀舟松开手。
苏念安退后两步,站在台阶上,她比他高出一个头,低头看他。
“陆怀舟,我等你来接我。”
“接你去哪?”
“哪都行。”她笑,“反正我跟你走。”
他仰着脸看她,路灯的光从她身后照过来,她的轮廓镀了一圈暖黄色。他点了一下头,很郑重,像是点了这一下就要认一辈子。
苏念安转身推门进去,走到楼梯口回头看了一眼。他还站在路灯下,双手插在裤兜里,白衬衫被风吹得贴住身体,瘦削的肩胛骨形状都看得清。
她冲他挥了挥手。他也抬手挥了一下,幅度很小。
苏念安跑上楼梯,跑进宿舍,靠在门板上喘气。心跳得很快,快得有点过分。她摸着自己的脸,烫得厉害。
那晚躺在床上,她翻来覆去睡不着,脑子里全是陆怀舟站在路灯下的样子。她摸出手机,给他发了一条短信:到宿舍了没。
过了半分钟,回复来了:到了。
又过了几秒,屏幕上又跳出三个字:我想你。
苏念安把手机贴在胸口,笑得把脸埋进枕头里。宿舍窗外梧桐叶沙沙地响,六月的热气从窗缝里钻进来,黏黏的,闷闷的,但她觉得很甜。
她不知道的是,那天晚上陆怀舟回到出租屋后,在计算机面前坐了很久。他没有打开代码编辑器,只是盯着屏幕右下角的时间跳到了凌晨两点。然后他从抽屉里翻出一个本子,在第一页写了一行字:欠苏念安一个家。
写完他把本子合上,压在枕头底下,关了灯。黑暗里他闭上眼睛,周莉的声音像一根细刺扎在某个够不到的地方——“朝不保夕”“没房没车”“跟着他只会受苦”。
他翻了个身,把脸埋进枕头。枕头底下那个本子的棱角硌着他的后脑勺,一下一下,像心跳。
第二章 你配不上她
二〇〇四年十月,周莉的婚礼定在市里最好的酒店。
苏念安提前一周收到请柬,烫金封面,内页写着“敬备喜筵”。她翻来覆去看了两遍,把请柬压在办公桌的玻璃板下面。周莉嫁的是做建材生意的,比她大六岁,市区两套房,一辆黑色雅阁。苏念安在电话里说恭喜,周莉笑得爽朗:“伴娘还是你,别想跑。”
婚礼那天苏念安起了个大早,把唯一一件真丝连衣裙从衣柜深处翻出来,试了又试,腋下的拉链有些紧。她对着镜子化了淡妆,又觉得太素,添了一点口红。出门前给陆怀舟打电话,响了三声接起来,背景里是键盘敲击的噼啪声。
“你在哪?”
“机房。客户临时加需求,上午要交。”
“周莉的婚礼十一点半,你别忘了。”
电话那头顿了一下。“我尽量赶。”
“陆怀舟,你说好陪我去的。”
“我知道。”他的声音里有明显的疲惫,“你先进去,我到了直接去酒店找你。”
苏念安抿了抿嘴,没再追问。挂电话前还是补了一句:“别穿那件灰夹克,换件像样的。”
独立到酒店门口时,迎宾牌上周莉和新郎的婚纱照立得比人还高。签到台前围了一群大学同学,有人一眼认出苏念安,挥手喊她过来。她走过去,免不了被打量几眼。有人问现在做什么工作,她说外贸公司,刚转正。有人问男朋友呢,她说过会儿到。再问做什么的,她说做软件开发。
“自己开公司?”
“不是,接一些项目做。”
问的人“哦”了一声,转头和别人聊起来。苏念安在签到簿上写下名字,随了六百块礼金,心里算着这个月工资还剩多少。
婚宴大厅摆了二十桌,水晶吊灯把每个人的脸都照得亮堂堂的。苏念安被安排在大学同学那桌,旁边坐的是当年同宿舍的小敏。小敏嫁了个公务员,手上钻戒不小,说话间总有意无意地转动手腕。苏念安安静地剥着花生,听她们聊房子、聊装修、聊老公单位分了几桶油。
“念安,你男朋友今天来不来?”小敏问。
“来,晚点到。”
“听说他在外面接项目?那挺辛苦的。”
周莉的声音从身后响起来:“辛苦是辛苦,能赚几个钱就不知道了。”
她穿一身大红敬酒服,头发盘起来,插了支金步摇。新娘妆浓得盖住了原本的五官,但笑容是真的,锋利也是真的。她在苏念安旁边坐下,拉着她的手:“伴娘怎么穿这么素?我给你准备了礼服的。”
“不用,这样就挺好。”
周莉的目光在她身上转了一圈,最后落在她的手腕上——那里空空的,没有首饰。“陆怀舟呢?这种场合都不早点来?”
“他在赶项目。”
周莉笑了一声,转头对桌上其他人说:“你们不知道,念安当年可是系里最抢手的,追她的人排到校门口。结果选来选去选了个——”她顿住,像是突然想起什么,“算了不说了,今天高兴。”
苏念安把花生壳捏在手里,指尖发白。
婚礼仪式开始,灯光暗下来,追光灯打在周莉和她丈夫身上。他们在台上交换戒指,司仪高喊“新郎可以吻新娘了”,全场鼓掌。苏念安跟着鼓掌,扭头看了一眼门口,没有人进来。
仪式结束,上菜。陆怀舟是在第三道菜的时候到的。他穿了一件白衬衫,袖口挽到小臂,西装裤是深色的,但料子明显不是配套的,膝盖处有久坐压出来的褶。他弯腰走到苏念安身边坐下,低低说了一声“抱歉”。
苏念安帮他把餐具摆上:“没事,刚开始上菜。”
周莉换了第二套礼服过来敬酒时,看见陆怀舟只是微微抬了抬下巴:“来了啊。”陆怀舟站起来,手里端着一杯橙汁。周莉看着他,目光从他洗得发白的衬衫领口滑到那双旧皮鞋上,说了句“随意”,举杯碰了一下,转身去了下一桌。
那顿饭陆怀舟几乎没怎么说话。有人问他做什么的,他说软件开发,对方追问什么公司,他说是个小工作室。那人“哦”了一声,又说“现在互联网是风口”,他点头,说“嗯”。然后就没有然后了。苏念安在桌下握住他的手,他的手很凉。
婚宴结束后宾客散去,苏念安去化妆间帮周莉拿外套。推开门的时候,里面只有周莉和陆怀舟。周莉背对着门站在镜子前拆发饰,陆怀舟站在靠墙的位置,手里捏着苏念安忘记带走的披肩。苏念安正要进去,听见周莉的声音清晰地传过来——
“陆怀舟,我问你一句话,你跟我说实话。”周莉从镜子里看着他,手上的动作没停,“你拿什么娶她?”
陆怀舟没说话。
“你租的那个单间,一个月多少钱?八百?一千?”周莉转过身,靠着化妆台,双臂抱在胸前,“你连一件像样的西装都买不起,今天这身还是去年毕业时买的吧?你拿什么给念安一个家?你有存款吗?你每个月赚的钱够两个人生活吗?”
她的语气并不咄咄逼人,反而很平,像在谈一件再普通不过的家常事。但每个字都精准地扎进了某个地方。陆怀舟手里的披肩被他攥紧了,指节发白。
“我没有看不起你的意思,”周莉继续说,“我是念安最好的朋友,我看不了她跟着你吃苦。你如果真的为她好——”
门被推开了。苏念安走进去,从陆怀舟手里抽走披肩,声音平静:“周莉,今天你结婚,别聊这些了。”
周莉耸了耸肩,对着镜子重新戴上耳环:“行,不聊。反正该说的我都说了。”
回出租屋的路上,陆怀舟一路沉默。苏念安坐在公交车靠窗的位置,秋天傍晚的风吹进来,把她额前的碎发吹得乱飞。她几次想开口,看他侧脸绷得紧紧的,又把话咽回去。
直到进了那间不到十平米的屋子,他坐在床沿,双手撑着膝盖,头低垂着。
苏念安倒了一杯水放在他手边,蹲下来看他:“陆怀舟,你怎么了?从下午就不对劲。”
“没事。”
“你骗得了别人骗不了我。”她把手放在他膝盖上,“是不是周莉说什么了?”
他抬起头,眼睛里有种她几乎没见过的神色,说不清是疲倦还是别的什么。他看了她很久,然后说了一句话,声音很轻:“我在想怎么配得上你。”
苏念安愣了一下。她站起来,胸口有什么东西在往上涌,热热的,堵得慌。
“你说什么?”
“我说——”他停住了,垂下眼。
“陆怀舟,你看着我。”她的声音开始发颤,“我跟你在一起,是因为你是你。什么配不配的,我不在乎那些。”
“可我在乎。”
他这三个字说出口,像把什么东西从胸腔里挖出来了。他抬起头,眼眶泛红,但没有眼泪。他说:“今天那个人问我做什么,我说不出口。我连一个正经的工作都没有,我拿什么——”
“我不需要你拿什么!”苏念安打断他,声音大起来,“我要的是你这个人,你听不懂吗?周莉说的话你就那么在意?你什么时候变得这么——”
她停住了。因为她看到他的表情裂了。不是愤怒,不是委屈,是一种被戳到最软弱处之后无处躲藏的窘迫。他偏过头去,不再看她。
沉默持续了很久。窗外有邻居在炒菜,油锅的滋啦声隔着薄薄的墙壁传进来,混着谁家小孩的哭闹和电视机的背景音。这些日常的声响在这一刻都变得格外刺耳。
苏念安吸了吸鼻子,把水杯往他面前推了推:“喝水。”
他没动。
她直起身,走到门口把灯拉亮,然后背对着他,声音闷闷的:“陆怀舟,我从来没觉得你配不上我。是你自己觉得。这个念头不是别人塞给你的,是在你心里本来就有的。”
身后没有回应。
她站在门口,背对着他,手握着门把手。她想推门出去,又松开了。她转过身,看到他不知什么时候抬起了头,正看着她。目光里有太多东西,沉沉地压着,像暴风雨来临前低垂的云。
“你今晚别走了。”她说。
他摇头:“我回那边去。”
“陆怀舟——”
“念安。”他站起来,走到她面前。他比她高不了多少,但此刻他微微弯下腰,视线和她平齐。他伸出手,犹豫了一下,落在她的头顶,轻轻揉了揉。
“让我自己待会儿。”
他拿起搭在椅背上的外套,走到门口换鞋。弯腰系鞋带的时候,他的肩膀看起来很窄,被那件洗得发白的衬衫裹着,撑不起来。
门关上了。苏念安站在原地,听着他的脚步声沿着老旧的楼梯一层层往下,越来越轻,最后消失在单元门合拢的闷响里。她慢慢蹲下来,把脸埋进膝盖,肩膀开始不受控制地抖动。她没有哭出声,只是抖着,指尖掐进掌心。
桌上那杯水还满着,杯壁的温度已经凉透了。窗外的炒菜声停了,取而代之的是新闻联播的片头曲,悠扬而遥远。她抬起头,看到床头柜上他留下的那个本子——深蓝色硬壳,边角磨得起了毛。她记得他提过,那是记账用的。她拿起来,翻开第一页。上面只有一行字,黑色钢笔写的,字迹工整得近乎用力:欠苏念安一个家。墨水洇开的地方,纸张微微发皱。
她合上本子,抱在怀里。手机屏幕亮了一下,是他发来的短信:到了。早点休息。
她没有回。把那本本子塞进自己包里,拉上拉链,然后关了灯,躺在他刚刚坐过的那张床上。枕头上有他留下的洗发水味道,廉价的那种,薄荷味很重。她把脸埋进去,薄荷味冲得她眼睛发酸。
窗外不知谁家在放一首老歌,断断续续的,听不真切。她闭上眼睛,想着明天要早起,想着下周要出差,想着很多事情。但想得最多的还是他走下楼时的背影,那件白衬衫在昏暗的楼道灯下晃了晃,然后不见了。
第三章 不告而别
那封信压在枕头下面,信封上只写了三个字:苏念安。字迹是陆怀舟特有的端正,黑墨水,用力均匀,笔锋收得紧紧巴巴,像是怕多写一笔就会泄露什么。
苏念安发现那封信的时候,天还没亮透。她是被冷醒的,被子不知什么时候滑到了地上,半边肩膀露在外面。十二月的出租屋暖气不足,窗玻璃上结了一层薄霜,把外面灰蒙蒙的天光滤得发白。她伸手去够被子,手背碰到了枕下那个硬邦邦的边角。
她先看到的是那条项链。银色的细链子,坠子是一颗很小的透明石头,在晨光里折出一点微弱的光。不是什么好材质,链扣的地方甚至有点发黑。陆怀舟从来没送过她首饰,去年生日的时候他问她要什么,她说你别花钱,请我吃碗面就行。那条项链就摆在信封旁边,压在枕头上,像两个等待被发现却又不忍心被发现的东西。
苏念安坐起来。床的另一半是空的,被子叠得整整齐齐,方正得像豆腐块。她低头看了看自己身上的毛衣——昨晚没换衣服就睡了。床头柜上那杯水不见了,换成了一只倒扣的玻璃杯,杯底压着一张便签条,是从那个深蓝色记账本上撕下来的,边缘带着毛糙的锯齿。
“我走了。别找我。”
六个字。没有解释,没有道歉,甚至没有抬头称呼。苏念安翻过便签,背面空白。她又去看那个信封,信封是封好的,胶水口粘得严严实实。她捏了捏,里面是几张纸的厚度,不薄不厚。
她光着脚踩在地板上,从卧室走到厨房,从厨房走到卫生间。卫生间的架子上,剃须刀还在,牙膏也在。拖鞋少了一双,他常穿的那双深灰色的棉拖。玄关的鞋架上,他上班穿的旧皮鞋不见了,留下两团灰尘的印子。衣橱里,他那边空了一半,剩下的几件都是她给他买的,吊牌剪了但一次没穿过的高领毛衣,她攒了三个月工资买的羽绒服,整整齐齐叠着,一件没带走。
她拨他的手机。关机。再拨,还是关机。打了七次,每一次都是那个机械的女声:您拨打的用户已关机。她挂断电话,站在客厅中央,不知道该做什么。窗外的霜还没化,楼下早点摊的推车轱辘声碾过水泥地,咯吱咯吱的。她的拇指无意识地摩挲着那条项链的石头坠子,表面光滑,带着一点凉意。
八点零三分,她拨通了陆怀舟合租室友的电话。响了很久才接,那边声音含混,显然还没睡醒。
“陆怀舟在吗?”
“他昨晚没回来啊。前天晚上回来收拾了点东西,说找到地方搬了。我还以为他跟你说了。”
苏念安挂了电话。她站在玄关,看着鞋架上那两团灰尘印子,忽然抓起外套和钥匙,穿着拖鞋就冲出了门。楼道里的声控灯跟着她的脚步一层层亮起来,又一层层灭下去。她跑到街上拦了辆出租车。
“火车站。”
司机从后视镜里看了她一眼,没多问。车拐上主路的时候,苏念安才发现自己没穿袜子,脚趾在拖鞋里冻得发白。她攥着那条项链,指节发青。付款的时候掏了半天口袋,才发现钱包没带。司机看她一眼,摆了摆手:“算了算了,你赶紧去吧。”
她跑进候车大厅。早上八点多的火车站,人潮汹涌,扛着编织袋的民工、抱着孩子的妇女、穿校服的学生,攒动的人头把整个大厅塞得满满当当。苏念安在人群里挤来挤去,目光扫过每一个穿灰色或黑色外套的男人背影。她跑到每一个检票口,踮着脚往队伍里看。电子屏上滚动着车次信息,K字头的普快,D字头的动车,G字头的高铁,目的地有南有北。
她跑了三个候车室,拖鞋在光滑的水磨石地面上发出急促的啪嗒声。广播里女声一遍遍报着车次和站台。她在第二候车室的角落里看到一个背影,灰外套,肩膀很窄,头发有点长,低着头在看手机。她冲过去,手搭上那人的肩膀。
那人转过头,一张陌生的脸。三十来岁,眼角有颗痣。
“对不起,认错人了。”
她退后两步,靠在柱子上喘气。旁边卖零食的柜台正用喇叭循环喊着“瓜子花生矿泉水”,声音尖锐刺耳。苏念安低头看着自己手里的项链,链子缠在指头上,坠子晃了晃,那一点光熄了又亮。
她掏出手机,最后一次拨他的号码。依然是关机。
她靠在柱子上慢慢蹲下来,把脸埋进膝盖。周围的人群依旧涌动,没有人在意一个蹲在柱子旁边的女孩。广播还在响,脚步声还在响,她闭上眼睛,那六个字在眼皮后面晃来晃去:我走了,别找我。
上午十点,她在火车站旁边的公用电话亭给周莉打了电话。她不想回那个出租屋,又无处可去,口袋里的零钱只够打一个市内电话。
周莉接起来的时候声音很轻快:“念安?怎么用这个号打?”
“他走了。”
电话那头安静了两秒。
“谁?陆怀舟?”
“嗯。”
又安静了几秒。苏念安听着话筒里电流的嗡嗡声,指尖掐着电话线。
“我早说什么来着。”周莉的声音终于响起来,带着一种故作克制的笃定,“念安,去年我就跟你说了,他那个创业项目风险太大,你非不听。他欠了多少钱你知道吗?”
“周莉。”
“我不是说他不好,但你看——”
“周莉。”苏念安的声音从牙缝里挤出来,抖得厉害,却每个字都很清楚,“你再说一句,我们连朋友都没得做。”
电话那头噎住了。过了好一会儿,周莉才开口,语气软下来:“我不是那个意思,我是怕你——”
“我挂了。”
她把话筒扣回去,手还在抖。公用电话亭的玻璃上结了雾气,她用袖子擦了一把,看到外面下起了细雪。米粒大的雪粒斜着打过来,粘在毛衣上很快就化了,留下一个个深色的湿点。她站在电话亭里,看着街上的行人缩着脖子匆匆走过,没有人往里看一眼。
下午两点她回到出租屋。屋里和她走的时候一模一样,那封信还在枕头上,那条项链已经被她戴上了,链子贴着锁骨,石头坠子凉凉地硌着皮肤。她把信拿起来,翻到背面,又翻回来。封口处胶水粘得很牢。她找了把美工刀,刀尖抵着信封边缘,停住了。
她想起他写便签时那种用力到几乎刻进纸里的笔迹,想起他弯腰系鞋带时那件撑不起来的白衬衫,想起昨晚他抬头看她的那个眼神,沉沉地压着,像暴风雨来临前低垂的云。他把所有想说的话都封进了这个信封,可她不敢看。
她把信放回了枕头下面。拉上拉链,塞进背包最里层,和那个深蓝色的记账本放在一起。
那天晚上她没有开灯。窗外有人在炒菜,铁锅和铲子碰撞的声音叮叮当当的,油烟味混着雪后的冷气从窗缝里钻进来。她躺在床上,戴着那条项链,拇指摩挲着石头坠子光滑的表面。手机屏幕暗着,再也没有亮过。
后来那条项链的链子换过两次,坠子却一直是原来那颗。石头被她的体温捂得不再冰凉的时候,她偶尔会产生一种错觉,好像那个人只是出了趟远门,明天就会回来。但她知道,他把所有退路都掐断了,没给自己留回头的位置。
雪下了一整夜。第二天早上,窗台上的积雪映着淡青色的天光。苏念安翻了个身,枕边那个位置是空的。她伸手摸了摸,布料是凉的。她把脸埋进枕头里,枕头早就没有薄荷味了。
第四章 一个人的战场
二〇〇六年三月,苏念安在人才市场排了四十分钟的队,投出去七份简历,只有一家做五金出口的贸易公司给了回复。面试她的是个四十来岁的女人,姓陈,说话语速很快,翻着她的简历问:“英语怎么样?”
“六级过了,口语一般。”
“一般是什么程度?能跟老外打电话吗?”
苏念安想了想,如实说:“给我三天准备,可以。”
陈经理抬头看了她一眼,大概觉得这姑娘说话不虚,当天就让她来上班。跟单员,月薪一千八,试用期三个月。苏念安算了算房租和吃饭的钱,刚好够用,第二天就搬进了公司附近城中村的单间。房间不到十平米,一张床一张桌,卫生间是公用的,但窗户朝南,白天有太阳。
她给自己定了规矩。白天跟单,盯工厂的生产进度,整理报关单据,遇到不懂的就记在本子上,晚上回去查。那时候公司还没有用ERP系统,所有订单信息靠Excel表格手动录入,她每天对着屏幕敲到眼睛发酸,下班时指尖都是麻的。有次一批货发到宁波港,报关单上的重量填错了一个小数点,她半夜十一点半发现,骑着自行车赶到货代公司,赶在截单前改了过来。货代的人说:“你这小姑娘,拼什么命啊。”
她笑了笑没说话。骑车回去的路上,路灯把梧桐树的影子拉得很长,四月的夜风裹着梧桐絮,呛得她打了好几个喷嚏。她想起以前在学校,陆怀舟也是这样骑车带着她,她坐在后座,手插在他外套口袋里。那个念头刚冒出来就被她摁了回去。
她给自己加了一门课,供应链管理。周末去图书馆借书,在当当网上买二手教材。那些英文原版的供应链理论书,一页一页啃,专业词汇查一个记一个。最初根本看不懂,一个段落要读四五遍,做满标注的便利贴粘在书页上,像五颜六色的补丁。但三个月后,她已经能对着公司的订单流程说出哪里存在牛鞭效应,哪里信息滞后。
陈经理注意到了她。有次一个德国客户投诉交货延迟,电话打到公司来,陈经理正忙,让苏念安先接。她用不流利但清楚的英语跟对方解释了工厂排期和船期,又承诺了新的到货时间,对方居然接受了。挂了电话陈经理拍她肩膀:“看不出啊,小苏,口语进步挺快。”年底调薪,她的工资从两千二涨到了三千。
周莉是那年秋天找上来的。电话里声音很响,说自己在淮海路一家外资银行做客户经理,月薪八千,年底还有奖金。“你还在那家小外贸公司?一个月拿多少?”
苏念安没接话,只说挺好的。
“你别老一个人闷着,我认识几个条件不错的,一起吃个饭?”周莉的语气像在安排一桩善事。
第一次相亲安排在人民广场附近的一家西餐厅。男方是周莉同事的朋友,做IT的,本地人,有房有车,父母都是公务员。人倒是客气,聊了半小时,最后问苏念安:“你平时有什么爱好?”
“看书,学英语。”
男方点点头,又问:“你老家哪里的?”
苏念安说了个县城的名字。
之后周莉打电话抱怨:“人家说你太闷了,而且外地户口,家里条件也一般。你说你,当初要是听我的——”
“周莉,我最近很忙,相亲的事先算了。”
“你就是还想着那个人!”
苏念安沉默了几秒,电话里只剩下呼吸声。周莉自己觉得没趣,嘟囔了两句挂了。后来周莉又陆续介绍过两个,一个是做房地产的销售总监,一个是大学老师,苏念安都以工作忙推掉了。周莉在电话里叹气:“你不为自己想,也得为你将来想。女人过了三十,选择面越来越窄。”
苏念安嗯了一声,说“我知道”,然后继续看她的书。那本供应链管理教材翻到第三百页,边角都卷起来了。
她给陆怀舟发过邮件。最早是二〇〇五年冬天,他走后一个多月,她问他去了哪里,过得好不好,欠债的事可以一起想办法。邮件发送成功的提示弹出来,她盯着那个已发送的文件夹看了很久。第二天查收,没有回复。她又发了一封,问他是不是安全。之后是二〇〇六年,她换了工作,跟他说自己进了外贸公司。二〇〇七年写了很长的一封,说自己在学供应链,说上海的变化,说出租屋楼下的梧桐树开春又发了新芽。全部石沉大海。
她学会了不再等回复。每隔几个月写一封,像交作业一样按时,写完就关掉页面,该干什么干什么。收件箱里干干净净,那个邮箱地址她倒背如流,却在很多个夜晚打完字后又删掉,最终按发送键的手一次比一次稳。
二〇〇八年秋天,她在浏览一个外贸论坛时,看到有人讨论一个叫“Alibaba”的网站和它的国际站。帖子说有个做灯具的深圳卖家,通过这个平台把货卖到了西班牙,订单量是传统渠道的三倍。苏念安顺着帖子翻看了所有回复,又自己去注册了一个免费账号。她在上面搜索了几家做小商品的同行,发现很多工厂的产品信息更新得极慢,有的甚至只有一张模糊的产品图。
那天晚上她没睡。坐在那张吱呀作响的椅子上,把能查到的跨境电商平台全部研究了一遍,列了一张表,左边是平台名称和费用,右边是潜在客户群体的国家分布和购买习惯。她越写越兴奋,手指敲在键盘上越来越快。凌晨三点的时候,表格填满了整整一页。
她保存好文件,靠在椅背上。窗外传来第一班公交车启动的声响,环卫工人扫落叶的刷啦声由远及近。她想起大学时陆怀舟跟她说过的那些话,关于互联网会改变一切,关于他以后想做的事。那时她在食堂端着餐盘,听他讲这些,觉得遥远又新鲜。
他说的其实是对的。只是她明白得太晚了。
二〇〇九年十二月三十一号,苏念安把辞职信放在了陈经理桌上。陈经理看完信,沉默了一会儿,问:“找好下家了?”
“不是,想自己做。”
“做什么?”
“跨境供应链。帮国内的工厂把货直接卖到海外小批发商手里,去掉中间环节。”
陈经理看了她很久,最后说:“你现在工资五千五,年终奖还有两个月就发了。”
“我知道。”
“想好了?”
“想好了。”
陈经理没再劝,从抽屉里拿出一张名片推到桌面上:“要是缺什么资源,给我打电话。”
苏念安捏着那张名片走出办公室,走廊里堆着要发的货,纸箱摞了几层高,胶带的气味呛人。她绕过那些纸箱,下楼的脚步很稳。手机响了一下,周莉发来短信,说帮她约了个在基金公司做合伙人的男人,元旦一起吃饭。
她打字回复:“我辞职了,准备创业,最近没时间。”
短信发出去之后她直接关了机。外面下着小雨,她站在公交站台下,看着雨水顺着站牌往下滴。那条链子贴着锁骨温温热热的,她伸手隔着毛衣按了一下坠子的位置,像按住了某个开关,心里所有的杂音都安静了。
公交车来了,她投了硬币,找了个靠窗的位子坐下。车窗外的梧桐树被雨淋得发黑,树叶落得差不多了,光秃秃的枝丫在风里晃。她拿出笔记本,翻开新的一页,在第一行写下:供应链软件,小微企业版,三个月出原型。
公交摇摇晃晃地开着,她在车上把能想到的功能点写了大半页。到站的时候雨停了,天边露出一线淡金色的光。她站在站台上深吸了一口气,呼出的白气在冷空气里散开。
那个邮箱她已经有半年没有打开过了。但她没有注销。
第五章 十五万起步
二〇一〇年三月,苏念安在城东一个老厂区租了间办公室,四十平米,月租两千三,窗户朝北,常年见不到太阳。房东带她看房那天问做什么用,她说软件开发,房东上下打量了她一眼,大概觉得这姑娘不太正常。
合伙人有两个。老赵,三十四岁,原公司技术主管,话少,脸上总像别人欠他钱;小孙,二十七岁,做外贸跟单出身,人机灵,嘴甜,特别能跟客户喝酒。三个人凑在一起,苏念安出十万,老赵出三万,小孙出两万。十五万摆在一张折叠桌上,谁也没说话。老赵先开口:“钱不多,够烧六个月。六个月没客户,各回各家。”
苏念安把笔记本打开,翻到元旦那天在公交车上写的那半页纸,推过去给两人看。老赵扫了一眼,手指点在一行字上:“小微企业版,轻量化部署,客户自己就能装。”
“外贸公司我待了四年,知道痛点在哪。大公司用不起,小公司用不上,我们做中间层,帮他们把订单、库存、物流三个环节打通。不做定制,全标准化。义乌那边小商品批发商多如牛毛,随便抓一个都是客户。”
小孙拍了拍桌子:“我认识一个,姓王,做饰品批发的,去年被一个海外客户跑单,损失了十几万。我去联系。”
王老板的事情小孙跑了三趟,对方始终不松口。第四趟苏念安自己去的。王老板是个精瘦的中年人,办公室堆满了样品盒,墙上挂着一幅财神像,香炉里的灰积了厚厚一层。他给苏念安倒了杯水,问:“你们公司多少人?”
“三个。”
“三个人的公司给我做系统?”王老板笑了,笑得不太友善,“我仓库一个月的流水都比你公司值钱。”
苏念安没接这个话,从包里拿出笔记本电脑,翻开屏幕递过去。是她花了两周做出来的原型界面,功能简单到有点寒酸,但每一个按钮的逻辑都能点通。她一个一个给王老板演示:录订单、自动生成采购单、物流状态自动回传、海外客户能扫码看库存。
王老板看了十分钟,把水杯放下了。
“能不能试?”
“能。我驻场,住在你们仓库隔壁,什么时候出问题什么时候找我。”
“三个月。不满意你让我走人,一分钱不收。”
王老板盯着她看了几秒,伸出右手。那只手上有戴戒指留下的痕迹,指节粗糙。
苏念安在义乌待了整整三个月。仓库隔壁是一间十平米的铁皮房,夏天像蒸笼,她搬了把落地扇整宿开着,噪音大得睡不着。白天她在王老板办公室里写代码,晚上到仓库跟着工人一起理货,把实际流程一个一个对进去。她的手背被纸箱划了好几道口子,指甲缝里全是灰。老赵远程支持,每周通一次电话,有两次在电话里吵了起来,为的是一个数据库选型。老赵觉得她太冒险,她觉得老赵太保守。吵完之后还是各退一步,用了折中的方案。
第三个月末尾,第一版系统在王老板的仓库跑通了。王老板那天请她吃了顿饭,桌上喝了点酒,说其实当初答应让她试,一半是看她一个姑娘家跑四趟不容易,另一半是想等系统出问题了好压价。结果三个月没出过一次需要打电话找她的故障。
“合同签吧。”王老板把酒杯放下,“一年给你两万四,行不行?”
行。当然行。那是公司第一笔收入。
七月份回城的时候,苏念安瘦了八斤,皮肤晒得黑红。老赵去车站接她,看了她一眼,破天荒说了句:“辛苦了。”小孙在办公室门口等着,手里拿着一份报纸,上面有个行业版的豆腐块,提到跨境供应链是未来方向。三个人在办公室里吃了一顿外卖,花了六十八块钱,是那三个月里最贵的一顿饭。
周莉的电话是八月中旬打来的。那天苏念安刚从王老板介绍的第二家客户那里回来,谈的是库存管理模块的定制需求,对方愿意签一年合同,金额不大,但能让他们把第二版系统搭起来。手机在包里震了好几下,接起来周莉的声音带着习惯性的高八度:“听说你开公司了?还是做技术的?”
“供应链软件。”
“哎哟,念念,女生做什么技术公司嘛,又苦又累,图什么?我老公认识一个投资公司的副总,专门投互联网的,要不要我帮你牵个线?不过人家投的都是有规模的,你们三个人的小作坊……”
“不用了,谢谢。”
“你别嫌我说话难听,我是为你好。你一个女孩子家,做到三十几岁,到时候结婚生孩子怎么办?公司又不是儿子,能给你养老?”
苏念安把手机换到另一只耳朵上,目光落在面前摊开的合同上,第二家客户的章已经盖好了,红色的印泥还新着。她平静地说:“周莉,我还有事,改天聊。”
挂了电话,她在椅子上坐了一会儿,然后打开邮箱,给之前联系过的一个海外平台发了一封英文邮件,问他们的开放接口文档能不能提前拿到。她要让系统对接海外平台,这件事老赵和小孙都不太赞成,觉得太超前,小客户用不上。她没有争辩,只是每天下班后多花两个小时研究平台的公开资料,把接口文档一点一点啃下来。
年底算账的时候,公司营收二十三万,支出二十一万,去掉税和杂费,账面结余八千块。小孙在饭桌上喝多了,拍着桌子说八千块够干什么,他老婆怀孕了,明年孩子出生奶粉钱都不够。老赵闷头喝酒,不说话。过了三天,老赵提出来要退股。
“家里的意思。”老赵低着头,不看苏念安的眼睛,“我老婆说我三十多了,折腾不起。”
苏念安看着他,想起去年冬天在这间办公室里,老赵把钱一张一张数好放在桌上,说“六个月,各回各家”。她没有挽留,从自己积蓄里取了四万块钱,又把王老板预付的第二年服务费搭进去一万,凑够了老赵的本金,当着他的面转了过去。
“技术的事以后问我。”老赵走的时候说。
“好。”
小孙没走,但他老婆快生了,三天两头请假。整个冬天,苏念安一个人扛着所有客户的电话和邮件,白天跑客户,晚上写代码,凌晨两点前几乎没有睡过觉。最难的时候账上只剩三千块,她把自己的工资停了,先付服务器费用和办公室租金。有一回半夜系统出了个紧急故障,她一个人对着屏幕改到天亮,改完之后趴在桌上眯了半个小时,醒来时发现鼠标垫上有一小片口水印,自己笑了一下,拿纸巾擦干净继续干活。
那年春节她没有回家,给父母转了两千块钱,说是公司加班走不开。除夕夜她煮了一碗速冻饺子,坐在办公室窗边吃。窗外有人在放烟花,隔了一层玻璃听不太清楚声音,只看见各种颜色在夜空里炸开又熄灭。手机里周莉发了一条群发的祝福短信,她看了一眼就滑过去了。
吃完饺子,她打开那个半年没有登录过的邮箱,收件箱里躺着三封未读。前两封是广告,第三封没有发件人姓名,只有一个邮箱地址和一封没有主题的邮件。她盯着那个地址看了很久,那是陆怀舟离开前唯一用过的邮箱,域名早就过期了,根本不可能有人从那里发信。
她点开邮件。正文只有一行字:你还在用这个邮箱吗?
发送时间是二〇〇九年十二月三十一号,她辞职那天。
苏念安把鼠标移到了删除键上方,停了很久,然后点了关闭。她没有回复,也没有删除。她只是把电脑合上,拿起桌上那串链子,在手里攥了一会儿。银链贴着掌心,已经焐得温热了。
窗外又有烟花升起来,这次离得很近,声音清楚地传进来,噼里啪啦的,很热闹。苏念安站起来,把办公室的灯关了,只留了服务器上那盏绿色的指示灯,在黑暗里一闪一闪的。
她对自己说,明天还有三家客户要跑。
第六章 你还在等什么
二零一三年春天,公司搬进了市中心一栋写字楼的十二层。新办公室有整面落地窗,阳光从上午十点开始铺满整个办公区,照得人睁不开眼。苏念安让人装了百叶帘,可她自己的那间办公室她没装,她说晒着太阳干活舒服。
搬家的那天小孙抱着一箱服务器配件进来,差点被地上没拆封的纸箱绊倒。“苏姐,你这间比原来整个公司都大。”他把箱子放在地上,环顾了一圈,目光停在窗外,“能看见那条河。”
苏念安正在整理书柜,把几本翻旧了的供应链管理教材摆到最上层。她看了一眼窗外,确实能看见护城河的一角,水面上有游船慢慢经过。“小孙,客户那边的测试环境怎么样了?”
“联调通过了。杭城那家连锁超市的采购系统跟我们对接上了,他们信息部的人说这是他们今年最顺利的一个项目。”小孙靠在门框上,笑得有点憨,“苏姐,去年这时候咱们还在为下个月工资发愁呢。”
苏念安从椅子上跳下来,拍了拍手上的灰。去年这个时候,公司账上确实一度只剩不到两万块钱。第一轮融资迟迟没有敲定,她和两个合伙人连着三个月拿半薪,后来连半薪都停了。小孙结婚她包了两千块红包,那是账上最后一点备用金。可那个月之后事情就有了转机,义乌那个王老板介绍了新客户过来,一家做户外用品的外贸公司,用她们的系统管理了二十多个国家的物流线路,一年下来光物流成本就降了百分之十几。王老板逢人就说“苏念安那丫头靠谱”,行业里慢慢传开了。
到了二零一三年夏天,公司同时服务着三个城市的客户,团队从五个人扩到十七个。苏念安把主要精力放在了产品标准化上,过去半年她跑了十几家客户现场,把每一家的操作习惯都记在本子上,回来跟小孙一条一条梳理成功能模块。那本活页笔记本已经换过三次内芯,边角磨得起毛。
八月的一个晚上,苏念安在办公室优化一份投标方案,手机响了。屏幕上显示“周莉”,时间是十一点四十七分。
她接起来,那头很吵,有音乐声和别人的笑声,周莉的声音传过来,含含糊糊的:“念安,你在哪儿呢?”
“办公室。怎么了?”
“我离婚了。”周莉说完这四个字,电话那头突然安静下来,像是她走进了一个没人的地方,“今天办的手续。房子归他,车归他,我就要了那套小公寓。”
苏念安把笔放下。“你在哪儿?我过去接你。”
“不用,你别来。”周莉的声音里带着哭腔,又像是在笑,“我就想找个人说说话。念安,你知道吗,今天从民政局出来的时候,我居然松了一口气。你说可笑不可笑,结婚九年,我松了一口气。”
苏念安靠在椅背上,听着电话那头周莉断断续续地讲。周莉说她前夫在外面有人了,对方是个二十六岁的姑娘,周莉发现的时候已经好了快两年。她哭过闹过,找过双方父母,甚至去那姑娘的单位门口堵过人,最后发现自己像个笑话。“我妈说忍忍就过去了,男人嘛。我婆婆说离了婚的女人不值钱。念安,你说她们凭什么这么说?”
“她们说什么是她们的事。”苏念安说。
“当年你在周莉婚礼上说的那句话,我还记得。”周莉突然把话锋转过来,声音低了很多,“你说我不该拿钱去衡量一个人。那时候我觉得你天真。念安,我现在才知道你是对的。”
苏念安没有说话。窗外护城河上的灯光映在河面,碎成一片一片。她听见周莉在那头吸了吸鼻子。
“念安,你还在等那个人吗?”
这个问题来得直接,像一根针扎在了苏念安自己都不知道的地方。她握着手机的手指收紧了。办公室里只有服务器风扇低沉的嗡鸣声,百叶帘没拉,月光混着路灯的光铺进来,把桌子上一摞合同照得发白。
“我等的是我自己。”她终于说。
周莉那头沉默了几秒,然后长长地叹了一口气。“你比我强。念安,你比我强太多了。”
“睡吧。”苏念安说,“明天要是难受,来公司找我,我给你泡茶。”
挂了电话,苏念安把手机放在桌上,拿起那份没改完的投标方案,看了几行字,发现自己什么都没记住。她索性站起来走到窗边,看着楼下的车流。一辆公交车从桥下经过,车灯拖出长长的光痕。她想起零四年周莉婚礼那天,陆怀舟穿着借来的西装站在酒店门口,后背的衬衫被汗浸透了,他一直在拽袖口,因为袖子短了一截。她当时觉得他可爱又可怜,挽着他的胳膊跟他说“没事,以后我们自己买”。
“以后”这两个字,她说了很多年。
搬家之后苏念安整理办公桌,把旧办公室里带过来的东西一件一件归位。一个旧杯子,几本翻烂的笔记本,一盒名片,还有一些她自己也说不清为什么留着的东西。她在一个文件袋的底部摸到了那条项链。银链子很细,吊坠是一个不到指甲盖大的星星,边缘已经磨得有点发暗了。零五年春天她在夜市上看了好几次,陆怀舟偷偷回去买了下来,藏在她包里。后来他走了,这条链子一直在她钱包夹层里跟着她搬家,从城东搬到城西,从出租屋搬到公司,从旧办公室搬到新办公室。
苏念安把链子放在掌心看了很久。阳光从落地窗照进来,银链子表面泛出温润的光。她打开办公桌最下面那层抽屉,里面放着备用的办公用品,一盒没拆封的A4纸,几支签字笔,一包订书钉。她把链子放在抽屉最里面,推到角落,又把订书钉的盒子挡在前面,然后关上了抽屉。
抽屉关上时发出“咔嗒”一声,很轻。苏念安坐回椅子上,打开刚才那份投标方案,这次她看进去了。窗外,护城河上的游船经过,船顶的彩灯亮了,在水面上拖出一道长长的影子。
那晚她加班到两点,改完了方案,又顺手把下个季度的产品路线图草拟了初稿。保存文件的时候她瞥了一眼桌面上的时间,二零一三年八月十七日。距离她从外贸公司辞职已经过去三年多,距离她拿到第一个客户已经过去两年,距离陆怀舟一声不响地离开,已经过去八年。
她把电脑关机,整理好桌面,拿起包准备走。经过办公区的时候,小孙桌上摆着一张他儿子的百天照,小孩咧着嘴笑,露出没牙的牙龈。苏念安看了那张照片一眼,把走廊的灯一盏一盏关了。
电梯下行,镜面墙壁映出她自己的脸。三十二岁,眼角有了一点细纹,头发扎得利落,穿着印着公司logo的深蓝色衬衫。她看着镜子里的自己,忽然想起刚才周莉在电话里问的那个问题,还有她自己的回答。
她对着电梯门笑了一下。然后门开了,她走出去,夜风迎面吹来,带着护城河的水汽和夏天末尾的热度。
第七章 上市前夜
二零二四年三月初,回南天。
苏念安站在办公室的白板前,上面写满了上市时间表。券商、律所、审计三方的人刚走,会议室里还残留着咖啡和打印纸的味道。她把马克笔帽盖上,扔进笔筒,手机在桌面上震了一下。
技术总监赵恒发来的消息只有一行字:苏总,出事了,方便现在来机房吗。
苏念安到机房时,赵恒正站在服务器机柜前面,脸色很难看。屏幕上是一张截图,他们核心供应链系统里的一段客户数据被挂在一个境外论坛上,底下有人出价竞标。发帖时间是今天凌晨三点。
“怎么出去的?”
“对手破解了我们的数据接口加密。”赵恒指着另一块屏幕,“正常情况接口每秒只响应我们自己的客户端,但他们伪造了认证令牌。令牌验证码是基于旧版加密模块生成的,我们两年前升级过一次架构,但为了兼容早期客户的历史数据,底层那套验证逻辑一直没动。”
“谁懂这套旧架构?”
“当年写这套代码的人早就不在了,外包出去的,文档只剩半截。”赵恒顿了一下,“我翻了GitHub,有个人一直维护着和这套架构同源的开源项目,五年前还提交过我们底层模块的漏洞补丁。他当时应该是在别的公司做技术顾问,顺手把补丁发到了开源社区。”
“联系他。”
“联系了,他在论坛私信回了我一句话。”赵恒把手机递过来。
苏念安看到那条消息只有四个字:我来看看。
“他人呢?”
“说是在找工作,简历投过我们公司,HR筛掉了。”赵恒犹豫了一下,“他今年四十七岁,这几年创业做技术咨询,项目黄了,一直在打零工。HR那边看到年龄和履历就过了,没往下走。”
苏念安看着屏幕上的漏洞报告,又看了一眼那条“我来看看”的回复。她想起刚才会议室里券商说的话:上市材料里如果出现重大数据安全事故,审核这一关根本过不去。投资人那边更不用说,有客户资料在暗网上被叫卖,消息一旦传开,别说上市,现有客户能保住一半就不错了。
“简历调出来,我亲自审。”
“苏总,还有一个问题。”赵恒压低声音,“董事会那边已经知道了,张总建议直接找外面的安全公司做应急响应,顺便把整个技术团队换掉。”
苏念安抬起眼看他。赵恒是跟着她干了八年的老兵,从三线城市的技术支持一步步做到总监,他的技术水平她知道。
“换掉技术团队?”苏念安把手机还给他,“数据被偷的时候不换人,要补漏洞的时候换人,你觉得合理吗?”
赵恒没说话,低下头。
“先把论坛帖子处理掉,联系法务发函。另外把那个人的简历发我邮箱,现在。”她转身往办公室走,走了几步又停下来,“通知所有技术骨干四十分钟后开紧急会议。谁都不许往外打电话,先别惊动市场那边的人。”
回到办公室,苏念安打开邮箱,赵恒的邮件已经到了。附件是一份两页的简历,她点开。
第一页是基本信息。陆怀舟,男,一九七七年生,本科学历,某某大学计算机科学与技术专业,肄业。工作经历:二零零三年至二零零五年,某科技公司联合创始人;二零零五年至二零一零年,空白;二零一零年至二零一八年,某互联网公司资深架构师;二零一八年至二零二三年,个人技术咨询;二零二三年至今,待业。
苏念安的手指停在触控板上,没有往下滚动。
她盯着“肄业”两个字看了很久。他的学校,他退学的时间,他离开她的那一年。这些信息她在过去的十九年里从没有主动去查过,就像那封手写信一样,她把它锁在一个盒子里,盒子放在老家柜子的最上层,十几年没打开过。当年她从外贸公司的同事口中听到过一鳞半爪,说陆怀舟去了南方,进了互联网公司,混得不错,后来又没了消息。她从来没有追问过。
现在他的名字出现在公司内部系统里,照片上的人比她记忆中瘦了很多,头发花白了一片,眼角的纹路很深,但那个轮廓她一眼就认出来了。和她自己抽屉最深处那条银链子一样,从来没有真正忘掉过。
苏念安把简历往下拉。第二页是项目经历,列了好几个开源项目的贡献记录,包括那个同源底层架构的漏洞补丁,提交时间显示是二零一九年。她点开链接,论坛头像是一个默认的灰色方块,签名档只有一句话:复杂系统的问题往往在简单的地方。
会议室里,技术骨干陆续到齐。赵恒在白板上画出了系统架构,用红笔圈出被攻击的节点。
“我们能在四十八小时内完成临时加固,但要彻底修复底层认证逻辑,必须要有人把零五年那版代码重写一遍。外包团队给的时间表是两周,报价三百万,而且不保证和数据备份无缝衔接。”赵恒把粉笔放下,“唯一能缩短这个时间的办法,是找到原架构作者或者长期维护这套开源项目的核心贡献者。”
“原架构作者零七年就离职出国了,联系不上。”一个工程师说。
“那个开源项目呢?”苏念安问。
“有一个人一直在维护,从一零年开始持续提交代码,最近一次更新是去年十一月。”赵恒点开网页,“他的论坛ID叫‘归舟’,实名认证是陆怀舟。”
会议室安静了几秒。有人小声说了句“这人今年四十七了”。苏念安听到这句话,抬起眼看过去,那个说话的工程师低下头。
“年龄是问题吗?”苏念安的声音很平,“这套系统跑了快二十年,年轻工程师写得出来吗?”
没人接话。
“赵恒,联系他,约明天上午面试。我亲自面。”苏念安站起来,合上笔记本电脑,“今晚所有技术组成员分组排查受影响客户清单,天亮之前把报告放我桌上。散会。”
众人陆续离开,苏念安最后一个走出会议室。走廊尽头的落地窗外,城市灯火连成一片,远处的高架桥上车流不息。她站在窗前,手里攥着手机,屏幕上是那封简历的缩略图。
十九年前,他留了一封信和一条项链,天亮之前走了,没有告别。十九年后,他投了一份简历,岗位是技术顾问,而她坐在面试官的位置上。
苏念安把手机收进口袋。回到办公室,她从最下面那个抽屉里摸出钥匙,打开了最底层的文件柜。里面几乎没有别的,只有一个牛皮纸信封,边角已经发黄,封口处是一道没有撕开的胶条,上面写着三个字:苏念安收。
她看着信封上那个字迹,和简历上“陆怀舟”三个字完全一样。
窗外,回南天的雾气漫上来,把远处的霓虹灯晕成一团团模糊的光。苏念安把信封放回柜子,锁好,钥匙放回抽屉。她打开电脑,调出明天面试要问的技术问题清单,开始逐条审阅。
第一题是关于旧版加密模块的令牌生成逻辑。第二题是从分布式节点中还原被删除的认证记录。第三题,她想了很久,在文档里打了一行字,又删掉了。最后她把光标停在空白处,敲下:为什么维护那个开源项目这么多年。
她盯着这行字看了半分钟,然后保存文件,邮箱里给赵恒发了一句话:明天面试,正常走流程,不要透露我的身份。
第八章 面试间里的重逢
第二天上午九点,苏念安比约定时间早到了二十分钟。她穿了一件深灰色西装外套,头发挽得一丝不苟,坐在面试间主位上翻看技术部连夜整理的客户风险清单。赵恒推门进来,手里拿着三份简历,最上面那份贴着蓝色标签。
“系统显示他八点四十五就到了,在前台登记。”赵恒把简历放在桌上,“身份证信息核验过,年龄对得上。”
苏念安没抬头,视线停在风险清单末尾的数据上:“让他进来吧。”
赵恒转身出去。苏念安把风险清单合上放进文件夹,打开笔记本电脑,屏幕上早已准备好三个问题。她听见走廊里传来脚步声,皮鞋踩在地毯上闷闷的,不急不缓。门推开的时候,她正在调整面前的水杯位置,余光里进来一个穿藏青色西装的男人,肩线挺直,走路带着一种习惯性的低姿态——微微颔首,像是长期伏案工作留下的体态。
“苏总,陆怀舟到了。”赵恒侧身让出门口。
苏念安抬起头。
他比二十年前瘦了太多。脸颊凹陷下去,颧骨撑起松弛的皮肤,发际线退后得厉害,露出宽阔的额头,两鬓几乎全白了,只有眉骨和眼睛之间的轮廓还是老样子。那双眼看着她的时候很平静,像在看一个陌生的面试官。
“请坐。”苏念安伸出手,掌心向下,示意对面的椅子。
陆怀舟点头坐下,把简历和一份装订整齐的技术证书复印件放在桌面上推过来。苏念安接过简历,指尖触到纸张边缘时微微抖了一下,她顺势把简历拉近,低头去看内容,没有让任何人察觉。
简历上写得很简单。2005年到2009年,某软件公司底层开发工程师。2010年到2015年,自主创业,技术咨询方向。2016年到2022年,某科技公司架构师。2023年至今,自由职业,维护开源项目。每一段都有简短的职责说明和离职原因,最后一份写的是“公司清算”。
“陆先生,”苏念安开口,声音平稳,“你简历上2010年到2015年这段创业经历,具体做什么方向?”
“供应链数据加密与分布式存储。”陆怀舟的声音比记忆中低沉,语速不快不慢,每个字都落得很稳,“当时服务过三家中小型外贸企业,后来因为资金链断裂,项目终止。”
苏念安翻了一页简历,手指在“资金链断裂”四个字旁边停住。她没有追问,把简历翻回第一页,问出第一个技术问题:“旧版加密模块的令牌生成逻辑,如果密钥轮换周期设置为七的倍数,令牌碰撞概率会怎么变化?”
陆怀舟几乎没有停顿:“碰撞概率上升约百分之三十七。轮换周期和令牌时效挂钩,七的倍数会让有效期重叠,如果并发请求超过阈值的百分之八十,重复令牌会在第二十三毫秒内被系统误判为合法。修复方法是把周期改成质数,同时增加一个基于时间戳的哈希校验。”
苏念安的手指在桌面下攥紧了又松开。这个答案精确到毫秒级,和她昨晚审题时预判的一模一样。
“第二个问题,”她继续,“分布式节点中被删除的认证记录,只保留三个残留数据块的情况下,怎么还原完整链路?”
陆怀舟微微前倾,双手交叠放在桌面上:“找到最早写入的那个数据块,读取它的时间戳和前一节点的签名,反推生成规则。如果三个块里有任意两个来自同一批次,可以用差分算法补全第三个。前提是知道当时用的哈希种子,这个可以在开源社区的提交日志里逆向出来。”
赵恒在旁边轻轻吸了口气。苏念安没有看赵恒,她盯着陆怀舟额角一道浅疤,那是她从前没见过的新伤。第三个问题在喉咙里堵了一下,她低头看了一眼屏幕上的提示,那行“为什么维护那个开源项目这么多年”还孤零零地停在空白处。
她删掉了它,问出了另一个问题:“如果你入职,发现公司正在使用的核心系统和你维护了二十年的开源项目有底层冲突,你怎么处理?”
陆怀舟第一次停顿了。他垂下眼帘,看着自己交叠的手指,过了几秒才重新看向苏念安:“我会先确认冲突点是否来自我当年设计时留下的隐患。如果是,我会在四十八小时内给出兼容方案。如果不是,”他顿了顿,“我会尊重公司的技术决策。”
苏念安合上简历,放在桌面上,手掌压住封面。她看了他很久,久到赵恒在旁边不安地挪动了一下。陆怀舟没有回避她的目光,那双眼睛里有一种经受长期磨损之后的沉静,像被水冲刷了二十年的石头。
“你的简历上,”苏念安的声音轻了一些,“有一段时间是空白的。2005年夏天到2009年初,你在哪里?”
陆怀舟的手指微微动了一下。他慢慢坐直身体,第一次认真打量对面的面试官。视线从苏念安的眼睛移到她的眉心,又移到她左耳垂上一颗很小的痣,然后定住了。他整个人像被抽走了一根骨头,肩膀无声地塌了下去。
“念安。”他叫出这两个字的时候,声音轻得几乎听不见。
赵恒愣住了,转头看苏念安。
苏念安没有动。她放在简历上的手慢慢收回来,平放在膝盖上,脊背挺得笔直。阳光从百叶窗缝隙里斜切进来,在她脸上投下一道明暗分界线。
“我在问你的履历空白期。”她说,语气和刚才没有任何差别。
陆怀舟张了张嘴,喉结上下滚动。过了几秒,他重新开口,声音发涩:“2005年到2008年,我在南方几个城市做外包开发,还债。2008年底债还清了,开始整理那个开源项目。2009年初项目有了第一个稳定版本,之后一直维护到现在。”
“为什么离开上一家公司?”
“公司清算,投资人撤资。”他停了一下,“我四十七岁,没有再创业的资本了。”
苏念安把简历重新拿起来,翻到最后一页,那里贴着一张两寸照片,照片里的他比现在年轻一些,穿着灰色衬衫,眼神疲惫。她把简历合上,放在自己左手边,和其他两份分开。
“明天来上班。”她说,“技术顾问,试用期三个月。待遇按你简历上的期望,具体HR会跟你谈。”
陆怀舟没有立刻站起来。他看着苏念安,嘴唇动了几次,最后只说出三个字:“对不起。”
苏念安已经在收拾桌上的文件夹。她拿起水杯喝了一口,站起来对赵恒说:“带陆先生去办入职手续,让HR把保密协议一起签了。”她走到门口,手握住门把的时候停了一下,没有回头。
“你工位在技术部靠窗那排,明天早上九点前到。”
她拉开门走了出去,走廊尽头的窗户开着通风,四月的风灌进来带着潮湿的草木气。她走过技术部办公区,几个员工站起来打招呼,她点了点头,脚步没有停。走到自己办公室门口时她才松开攥着门把的那只手,掌心里一道红印。
关上门,苏念安站在办公桌前,摸出手机给赵恒发了条信息:他的入职流程正常走,背景调查做仔细,特别是一零年到一五年那家公司的商业纠纷记录。
发完信息,她把手机扣在桌面上,拉开最下面那个抽屉,钥匙插进锁孔,转了一圈。文件柜里那个牛皮纸信封还躺在原处,封口胶条完好,边角又黄了一些。她蹲下来看了它很久,伸手碰了碰信封表面,没有拿起来。
外面走廊传来赵恒和陆怀舟的说话声,模模糊糊听不真切。苏念安站起来锁好柜子,走到窗前。楼下停车场进出的车排着队,远处的写字楼玻璃幕墙反射着灰白色的天光。她看着那道光发了会儿呆,然后回到桌前打开笔记本,新建了一个文档,在第一行打上:核心系统修复方案,负责人:陆怀舟。
第九章 旧系统的裂缝
技术部的灯连续亮了三个通宵。
苏念安每天凌晨两点从办公室出来,经过技术部那排工位,都能看见陆怀舟的屏幕亮着,旁边堆着三个空咖啡罐和一盒没拆封的泡面。第一晚她没停步,第二晚她让行政给技术部订了夜宵,第三晚她站在茶水间玻璃后面看了三分钟,陆怀舟对着满屏代码一动不动,手指悬在键盘上方,像在脑子里推演什么。
第四天早上七点四十,苏念安到公司时,陆怀舟站在她办公室门口,手里抱着一台笔记本电脑,眼睛红得像熬化了。
“修好了?”她刷开门禁。
“底层漏洞补上了。”他跟着她进去,把电脑放在茶几上翻开,“但过程有问题。你来看。”
苏念安没坐,弯下腰看屏幕。陆怀舟调出一张拓扑图,上面标着几处红色节点。
“对手的破解路径不是从头开始写的。”他指向其中一个节点,“他们利用了一个开源框架的底层缺陷。这个框架在零九年的稳定版里有一个接口溢出问题,我当年没修完就停更了。”
苏念安直起身,看着他:“你停更的那个项目?”
“嗯。”陆怀舟点开代码日志,“零五年夏天我写到一半,债主上门,电脑卖了,代码全丢了。后来零八年重新整理,把框架架构重写了一部分,但那个溢出接口——”他停了一下,“我当时觉得没人会注意到那么底层的东西,留了个修补方案写在注释里,但没提交。”
“对手注意到了。”
“对手破解的入口,用的就是我那个没修完的思路。”陆怀舟的声音很平,听不出情绪,“他们把那个缺陷当作后门,绕过了我们的防火墙。”
苏念安走到办公桌后坐下。她面前摆着昨晚律师发来的邮件,竞争对手已经在试探性接触他们的两个大客户,话里话外在暗示系统存在安全隐患。
“修复方案呢?”
“今早三点部署了补丁。”陆怀舟把电脑转过来给她看,“但只堵住了这一个入口。对手有能力找到零五年那个框架缺陷,说明他们翻过我早期在论坛上发的技术帖。那些帖子里还有三个类似的隐患点,都是我当年没写完的部分。”
“你需要多长时间全部处理完?”
“系统补全要五到七天,取决于测试反馈。”他顿了一下,“但我建议同时做一件事。零五年那个项目我手里还有原始设计文档,纸质版,放在老家。如果能拿回来对照,能省至少三天。”
苏念安看着他。老家在邻省,坐高铁单程三个小时。
“让行政给你订票。”她说,“今天去,明天回。”
陆怀舟点了点头,合上电脑。他站起来的时候晃了一下,扶住茶几边沿才稳住。苏念安注意到他右手虎口有一道新鲜的烫伤痕迹,像是急着拿什么东西被热源蹭到的。
“你几天没睡了?”
“昨晚睡了两个小时。”他把电脑夹在腋下,“车上可以补。”
他走到门口的时候苏念安叫住他。
“陆怀舟。”
他停下来,没有转身。
“零五年你写那个项目的时候,到底欠了多少钱?”
这是重逢以来她第一次直接问当年的事。之前面试的时候她忍住了,签入职的时候忍住了,这三个通宵她每天经过他的工位都忍住了。但现在她需要知道那个数字,需要知道到底是什么东西逼得一个人卖掉电脑、丢掉代码、连夜消失。
陆怀舟转过身来。晨光从她背后的落地窗透进来,照得他脸色发白。他张了张嘴,又抿住,最后说出来的是:“二十六万。”
“二十六万。”苏念安重复了一遍,“你为了二十六万离开。”
“那是零五年。”他说,“你刚工作一年,工资一千八。我欠了二十六万,利滚利,债主找到我租的房子。我当时觉得——”他喉结动了一下,“我一辈子都还不完,不能把你拽进来。”
“所以你就走了。留封信,留条项链。”
“信里写了原因。”
“我没看。”
这四个字掉下来,两个人都沉默了。走廊里有员工经过,脚步声由远及近又由近及远。茶水间的咖啡机发出研磨的闷响。
陆怀舟站在门框里,一只手扶着门框边缘。苏念安看见他手指收紧,指节发白。
“你没看。”他重复她的话,声音很轻,“二十年都没看?”
“没看。”苏念安从椅子上站起来,走到他面前。她比他矮半个头,抬眼就能看见他鬓角的白发和额头上深深的纹路。“我留着那封信,但我不需要靠它才能活。我靠自己活到现在。”
她偏过头,目光落在他虎口那道烫伤上。
“现在你拖累不了我了。你连自己都照顾不好。”
陆怀舟没接话。他从口袋里摸出一张叠好的纸递过去,苏念安接过来展开,是手写的系统修复时间表和一份文档归还清单,字迹比二十年前潦草很多,但每一行都工整地标了日期和进度。
“这是给技术部的排期。”他说,“我回来之后会写一份完整报告,包括零五年那个项目的全部资料备份。当初的代码虽然丢了,但设计思路我要重新整理出来,这次不能留尾巴。”
苏念安把纸折好。她从桌上拿起一支笔,在时间表最下面写了一行字递还给他。
“明天下午五点前回来。技术部下周要出安全审计报告,不能拖。”
陆怀舟接过去看了一眼,那行字旁边多了一个小小的勾,是苏念安的习惯,她审过的文件都会在角落打一个极小的勾,陆怀舟在面试那天就发现了。他把纸收进口袋,转身走了。
苏念安回到办公桌前,打开那个新建的文档,在修复方案负责人一栏里把“陆怀舟”三个字删掉,重新打上:技术部专项组,陆怀舟。
然后她拿起手机给赵恒发消息:订一张今天下午的高铁票,邻省C市,往返。另外让法务把竞争对手最近接触我们客户的记录全部整理出来,我要时间线。
发完之后她靠在椅背上闭了一会儿眼。桌上那个牛皮纸信封的轮廓从记忆深处浮上来——它就在柜子里第三层,旁边放着公司第一版商业计划书和她父亲去世那年留下的手表。那封信像一块石头沉在水底,她知道它在,但二十年里从没伸手去捞。
下午两点,技术部群里弹出一条消息,陆怀舟发了一份文档链接,标题是《零五年原始设计文档扫描件及修复对照表》。苏念安点开,第一页扫描件上贴着一张便利贴,字迹模糊但能辨认:念安,这一页答应你的事,我迟了二十年。
她关掉文档,把手机翻了个面。屏幕上倒映着她自己的脸,四十三岁,眼角有纹,嘴唇抿得很紧。
苏念安站起来走到窗前。楼下陆怀舟正走出写字楼大门,背着一个旧双肩包,肩上斜挎着电脑包,步子很快但不稳。他走到路边等红灯的时候抬手揉了一下眼睛,然后把手放下来,五指张开又握紧,像在活动僵硬的指节。
红灯变绿,他汇入人流,很快被淹没在梧桐树投下的光斑里。
苏念安拿起座机拨了技术部总监的分机:“让陆怀舟回来之后直接来我办公室做汇报。另外,把他这周的考勤按实际工时算,加班费走特批流程。”
挂了电话,她拉开最下面那个抽屉,拿出钥匙打开柜子。牛皮纸信封还在,边角被潮气洇出一小块深色。她把它拿出来放在桌面上,手指在封口胶条上停了一秒。
最终她没有拆。她把信封翻过来,在背面空白处用圆珠笔写了一行小字:2005—2024,历时十九年。
然后把它放回柜子,锁好,把钥匙拔出来放进抽屉最里面那格。
窗外,梧桐树新叶被风吹得翻出银灰色的背面,像一片亮闪闪的碎纸屑。苏念安拿起水杯喝了一口,水是凉的,她没加热。
第十章 周莉的试探
周莉的电话是周四下午打来的。
苏念安当时正在看技术部提交的修复进度报告,手机在桌上震了两下,屏幕上跳出一个很久没联系的名字。她盯着那个名字看了三秒才接起来。
“念安,是我,周莉。忙不忙?”
“还行,你说。”
“那个……我听说你公司最近来了个技术大牛,把系统漏洞给堵上了,挺厉害的。”周莉的语气轻飘飘的,像在聊一件无关紧要的八卦,“我们班那个刘敏不是在你公司楼下上班嘛,她说上周看见一个男的从你办公楼出来,背着旧书包,看着像陆怀舟。我就想问问,是不是他?”
苏念安把手里的报告翻过一页,声音没什么起伏:“是他。技术顾问,刚入职。”
电话那头静了两秒。
“哦……”周莉拉长了声调,“那你们——”
“只是同事。”
周莉又静了一会儿,然后说:“那改天一起吃个饭吧,好久没见了。我请客,就咱俩。”
苏念安看了一眼日程表,周六下午有个空档。“行,你定地方。”
周莉选了城西一家新开的融合菜餐厅,离苏念安公司很远,离她自己家倒很近。苏念安到的时候周莉已经坐在靠窗的位子上,面前摆着一壶花果茶,穿一件米白色羊绒衫,脖子上系了条丝巾,妆化得很仔细。
“念安,这边。”周莉招手,站起来迎了半步,又坐回去。
苏念安落座,把外套搭在椅背上。周莉给她倒茶,动作殷勤,眼神却一直往她脸上瞟。
“你瘦了,”周莉说,“上市忙的吧?我在新闻上看到了,深交所,真了不起。”
“还行,团队给力。”
“你就别谦虚了,咱们班现在混得最好的就是你了。”周莉笑了一下,拿起菜单递过来,“先点菜,边吃边聊。”
两人点了几个菜之后,周莉终于把话题绕到了她真正想问的地方。她夹了一筷子凉菜放进苏念安碗里,语气装得很随意:“那个陆怀舟,二十年前突然消失那个,你们这次重逢……是不是挺感慨的?”
苏念安放下筷子,看着周莉。“莉莉,你约我出来就是想问这个?”
周莉的笑容僵了一下,随即又撑起来:“我就是关心你嘛。当年你为他跟家里闹成那样,后来他一声不响走了,你单身这么多年……我总得问问。”
“我单身是因为没遇到合适的人,不是因为等他。”苏念安的声音很平静,“陆怀舟现在是我公司的技术顾问,他解决了我们一个很关键的技术问题。除此之外,没有别的。”
周莉点点头,拿起茶杯喝了一口,眼睛看着窗外。窗外是条小马路,梧桐树刚抽出新叶,树下停了一排电动车。
“其实……”周莉的声音低了下去,茶杯在手里转了一圈,“有件事我一直没跟你说。”
苏念安没接话,等着。
“零四年我结婚那天,你在外面招呼客人,陆怀舟迟到了,记得吧?”
苏念安记得。那天陆怀舟从兼职的电脑城赶过来,西装是借的,袖口短了一截,领带颜色也不对。他站在酒店门口手足无措的样子,她到现在都记得。
“他到了之后,在化妆间门口碰到我。”周莉把茶杯放下,指尖有点发白,“我跟他说了几句话。”
苏念安看着她,目光冷静。
“我说,‘你拿什么娶她?你连一件像样的西装都买不起。你配不上她。’”
餐厅里有人在过生日,服务员端着蛋糕从旁边经过,生日歌放得很大声。苏念安没有动,脸上看不出什么表情变化。
周莉的眼眶突然红了。
“我当时觉得我是为你好,真的,念安。我觉得你条件那么好,跟了他会吃苦。我那时候不懂事,我——”
“你跟他说的这句话,他从来没跟我提过。”苏念安开口了,声音不高。
“他怎么可能跟你说?他那个人自尊心多强你不知道吗?”周莉抽了一张纸巾按在眼角,“后来他走了,我其实特别害怕。我怕是因为我。”
苏念安靠到椅背上,目光越过周莉的肩头看向窗外。梧桐树的叶子被风吹得翻来覆去,光斑在人行道上跳。
“他走是因为欠了债,不想连累我。”苏念安说,“跟你那句话不一定有关系。但你那句话,确实不该说。”
周莉的眼泪终于掉下来,她没擦,任由泪珠挂在脸上。“念安,我知道我不该说。这些年我过得不好,真的很不好。离婚之后我一直在想,我凭什么当年对你的生活指手画脚?我自己过得一塌糊涂,却觉得有资格评判你。”
她吸了吸鼻子,声音断断续续:“你创业的时候我还在想,她肯定撑不了多久。后来你拿到融资,我又想,可能只是运气好。再后来你公司越做越大,我才发现,你每一步都是自己实打实走出来的。我嫉妒你,念安,我嫉妒你的一切。”
苏念安递了一张纸巾过去。周莉接过来攥在手里,没擦脸。
“我这些年交过几个男朋友,每一个都在跟我算计钱。我离婚的时候前夫在外面欠了一屁股债。我妈去年住院,我连护工费都拿得费劲。”周莉的声音碎了,“我那天在同学群里看到有人说你公司来了个技术专家,我就想,是不是陆怀舟回来了。我就想问问你,你们是不是……”
“没有。”苏念安说。
周莉抬起眼看她,眼睛红肿。
“我跟他之间的事,是二十年前的事了。”苏念安端起茶杯喝了一口,茶水微苦,“莉莉,你今天跟我说这些,我谢谢你坦诚。你当年那句话确实伤到了他,但真正让他走的人是他自己,你没那么大本事。”
周莉愣了一下,苦笑出来。
“我早就不恨你了。”苏念安放下茶杯,“但我也不会再信你了。你明白我的意思吗?”
周莉点点头,眼泪又涌出来。她用纸巾胡乱擦了一把脸,妆容花了一小块,露出下面有些松弛的皮肤。
“我明白。”周莉的声音很轻,“我今天说这些,也不是要你原谅我。我就是觉得……该说。说了我心里好受一点。”
苏念安没有再说话。菜陆续上来了,两人沉默地吃着,偶尔周莉会指着一道菜说“这个不错你尝尝”,苏念安就夹一筷子,点点头。
吃到一半,苏念安的手机震了一下,是陆怀舟发来的消息:核心漏洞的补丁测试通过了,我写了一份技术文档,明天上午发你邮箱。另外,对手的攻击路径我已经摸清了七成,周一当面汇报。
苏念安读完把手机扣在桌上。周莉的目光扫了一眼她的屏幕,没问。
“公司的事?”周莉问。
“嗯。”
“那你先忙,咱们改天再聚。”周莉站起来拿包。
苏念安叫来服务员买了单。周莉站在旁边有些局促,手插在羊绒衫口袋里。
两人走到餐厅门口,周莉突然说:“念安,你比二十年前好了很多。”
苏念安看着她。
“但不是因为钱。”周莉笑了一下,那个笑很轻,带着点自嘲,“是因为你眼里有底气了。以前你跟他在一起的时候,眼里只有他。现在你眼里有你自己。”
苏念安没接这句话。她抬手拦了辆出租车,拉开后门示意周莉上车。
“路上小心。”苏念安说。
周莉坐进去,摇下车窗看了她一眼,嘴唇动了动,最终只说了句“谢谢你今天来”。
车门关上,出租车汇入车流。苏念安站在餐厅门口,春末的风从马路对面吹过来,带着梧桐絮的涩味。
她拿出手机翻到和陆怀舟的对话框,打了一行字:周莉刚才跟我说了一件事。你从电脑城赶去她婚礼那天,她在化妆间门口跟你说了什么?
发完她把手机收进口袋,沿着人行道慢慢往停车场走。走了十几步,手机震了。
她拿出来看,屏幕上只有一行字。
“她说得对。那时候我配不上你。所以后来的路,我才要自己走完。”
苏念安站在梧桐树的阴影里,低头看着这行字。手机屏幕的光映在她脸上,风把她的头发吹起来又放下。
她打了三个字发过去:知道了。
然后锁屏,继续往停车场走。高跟鞋敲在人行道的青砖上,节奏很稳。
第十一章 手写信
周一上午九点,苏念安刚进办公室,技术总监老赵就堵在门口,脸色发白。
“苏总,出事了。”老赵把笔记本电脑转过来,“对方凌晨三点发动了第二轮攻击,这次直接篡改了我们的物流轨迹数据库。三家大客户的实时货物追踪全部显示错误,客服电话已经被打爆了。”
苏念安扫了一眼屏幕上密密麻麻的报错日志,放下包,声音很稳:“影响范围?”
“三家客户占我们年营收的百分之十八。更麻烦的是,后天就是上市材料递交的截止日,如果系统不稳定,券商那边要重新评估风险。”
苏念安拨通券商负责人的电话,简短说明情况,对方沉默几秒后说:“苏总,我给你四十八小时。如果系统恢复不了,这轮上市只能往后推。”
挂断电话,苏念安走进会议室。技术团队七个人已经到齐,陆怀舟坐在最角落的位置,面前的屏幕上代码在飞速滚动。
“说方案。”苏念安拉开椅子坐下。
老赵先开口:“最稳妥的做法是全面下线系统,用备份数据回滚到三天前。但这样会丢失这三天的所有订单数据,三家客户很可能直接解约。”
“不能回滚。”苏念安摇头,“那等于自杀。”
会议室安静了几秒。陆怀舟抬起头,声音不大但很清楚:“不用回滚。我昨晚跟进了对方的攻击路径,他们用的是时间戳注入,篡改的是前端展示层的数据,底层数据库没有被污染。”
他站起来走到白板前,画了几个框:“只要在数据查询接口加一层时间戳校验,把被篡改的展示数据过滤掉,真实数据就能恢复。问题是——”
他顿了一下:“这套校验逻辑需要入侵检测系统的核心权限,包括底层代码库的完整读写权。按公司规定,这个权限只有苏总你本人能授权。”
所有人的目光转向苏念安。
她看着白板上陆怀舟画的架构图,线条清晰,逻辑严密。她认得出来,这是他二十年前的思维方式,只是更老练了。
“需要多久?”她问。
“连续工作的话,三十六个小时能完成核心模块的修复和测试。”
“权限我给你。”苏念安站起来,“但我要全程在场。”
散会后其他人陆续离开,会议室只剩他们两个。陆怀舟在收拾白板笔,背对着她说:“念安,这个权限一旦开了,我能看到公司所有核心代码。你信我吗?”
苏念安正在收拾桌上的文件,手停了一下。
“我信你的技术。”她说。
陆怀舟没再追问,点了点头,抱着电脑去了机房。
下午两点,苏念安端了两杯咖啡走进机房。陆怀舟已经进入状态,屏幕上同时开着六个终端窗口,键盘敲击声密集得像雨点。
她把咖啡放在他手边,拉了把椅子坐在旁边,打开自己的笔记本处理邮件。两个人隔着半米距离,各做各的事,偶尔陆怀舟会停下来在草稿纸上画几笔,她余光扫过去,全是看不懂的符号。
到了晚上八点,陆怀舟第一次开口说工作以外的话:“你胃不好,先去吃饭。”
苏念安抬头,发现窗外的天早就黑了。
“你不去?”
“我带了面包。”他指了指桌上的塑料袋,“你先去,顺便帮我带瓶水。”
苏念安没再推,起身去了楼下的便利店。她买了两个饭团和一瓶水,想了想又拿了一盒胃药。回到机房时,陆怀舟正对着屏幕皱眉。
“怎么了?”
“对方很熟悉我的代码习惯。”陆怀舟指着屏幕上的一段攻击代码,“这个时间戳注入的写法,跟我十年前开源的那个项目漏洞一模一样。他们是从我的旧代码里找到了突破口。”
苏念安把饭团递过去,陆怀舟接的时候手指碰到了她的指尖,两人都顿了一下。
“先吃。”苏念安收回手,坐在椅子上拆自己的饭团。
陆怀舟咬了两口饭团,突然说:“当年我走的时候,给你留了一封信。”
苏念安正在嚼饭团,动作停了半拍。
“我知道。”她说。
“你看了吗?”
苏念安没有立刻回答。她把最后一口饭团咽下去,用纸巾擦了擦手,然后拉开自己办公桌最下面的抽屉,从里面拿出一个铁盒。
铁盒不大,漆面已经有些斑驳,是二十年前那种装饼干的旧盒子。她打开盒盖,里面只有一样东西——一个泛黄的信封,封口没有拆开过。
陆怀舟看着那个信封,喉结动了一下。
“你没看?”
“没有。”苏念安把信封放在桌上,指尖按在封口处,“你走的那天早上我醒过来,看到这封信和那条项链。我追出去,巷子里已经没人了。我拿着信站了很久,最后决定不拆。”
“为什么?”
“因为拆了,就代表我接受了你的离开。”苏念安的声音很平,“我不接受。”
陆怀舟低下头,手指捏着饭团的包装纸,捏得发皱。
苏念安把信封拿起来,撕开封口。动作很干脆,没有犹豫。
信封里只有一张折了两折的信纸,纸已经发黄发脆。她展开,上面只有一行字,蓝黑墨水的钢笔字迹,力透纸背——
“等我回来,我会配得上你。”
七个字,加一个句号。
苏念安盯着那行字看了很久。机房里的服务器发出低沉的嗡鸣声,空调出风口的冷风扫过她的后颈。
然后她把信纸重新折好,放回信封,放回铁盒,盖上盒盖,把铁盒放回抽屉。
整个过程安静、利落,像在归档一份旧文件。
“陆怀舟。”她开口。
他抬起头,眼睛里有红血丝,不知道是因为熬夜还是别的什么。
“你不用配得上谁。”苏念安看着他的眼睛,“你只需要对得起你自己。”
陆怀舟张了张嘴,没发出声音。
“你二十年前走,是因为你觉得你不够好。你觉得欠了债、没本事,留下来是拖累我。”苏念安的声音没有起伏,只是在说一个她想了二十年终于说出口的事实,“但你想过没有,你走的那天,我需要的不是你去赚多少钱,我需要的是你告诉我,我们一起想办法。”
“我那时候——”
“我知道。”苏念安打断他,“你那时候觉得说了就是认输。”
陆怀舟沉默了。
苏念安站起来,把咖啡杯收进垃圾桶:“信我看了。这件事到今天为止,翻篇了。你现在的任务是把系统修好,后天上市材料要交。做得到吗?”
陆怀舟深吸了一口气,把最后一口面包塞进嘴里,转回屏幕前,手指重新放在键盘上。
“做得到。”
“那就做。”
苏念安拎着自己的电脑包往门口走。走到门边她停了一下,没有回头。
“胃药在桌上,你记得吃。”
推开门走进走廊,苏念安靠在墙上闭了闭眼。走廊尽头的窗户没有关严,夜风灌进来,带着城市夜晚特有的车流声。
她从口袋里摸出手机,翻到和陆怀舟的对话框,最后一条消息还是那句“知道了”。
她锁屏,把手机放回口袋,沿着走廊走向自己的办公室。
身后机房里,键盘声再次响起来,密集而坚定,像一台沉默运转了二十年的机器终于找到了正确的频率。
第十二章 反击
会议室的白板上贴满了打印出来的日志截图,红笔圈出的时间戳密密麻麻。陆怀舟站在白板前,手里捏着一支记号笔,袖子卷到手肘,领口松开了两颗扣子。
技术团队六个人围坐在长桌边,盯着一块屏幕上的数据流。凌晨三点十七分,窗外只有零星几盏写字楼的灯还亮着。
“看这里。”陆怀舟用笔尖点了点白板上一行红色标记,“对手每次破解都会在系统日志里留下一个极短的空窗期,最长不超过四十七秒。这不是系统漏洞,是对方在用自动化脚本试探我们的反爬阈值。”
首席架构师杨明推了推眼镜:“也就是说,他们不是攻破了我们的防火墙?”
“他们是通过一个合法的API端口进来的。”陆怀舟转身在白板上画了一条弧线,“我查了这个端口的调用记录,频率在上市消息公布后突然翻了三倍。有人把我们的接口文档卖给了竞争对手。”
会议室里安静了两秒。
苏念安坐在长桌另一端,面前摊着法务部刚送来的文件。她没有抬头:“能锁定是谁?”
“已经在查了。”陆怀舟说,“但更关键的是这个接口本身。二十年前我参与过一个开源项目,叫LightGate,当时设计了一套分布式网关协议。后来项目废弃了,代码托管在已经关闭的国外论坛上。我们的系统底层用的恰恰是这套协议的变体。”
杨明愣了一下:“你的意思是,对方手里有LightGate的原始设计文档?”
“不止。”陆怀舟把记号笔放下,两手撑在桌沿,“他们能把破解做得这么精准,说明他们手上有比我们更完整的协议设计图。这个图,当年只有几个人见过。”
苏念安终于抬起头:“谁?”
“我,项目发起人,还有两个人。”陆怀舟的目光平静,但握着桌沿的手指关节发白,“其中一个三年前把版本卖给了好几家数据公司。这个人我找了他两年,他从没回过我消息。”
杨明往前探身:“那怎么反向追踪?”
陆怀舟转过身,在白板上画了一个倒推的树状图。他的线条干净利落,每一笔都像写代码一样精确。“他们的入口是伪装成正常调用的数据包,但伪装得不够干净,残留了特定的二进制签名。这个签名是我二十年前在LightGate里写的一个调试标记。当时是为了方便排查,后来没删。”
“调试标记?”坐在角落的应届毕业生小林忍不住开口,“那岂不是……”
“对方不知道这个标记的用途。”陆怀舟说,“他们可能以为这是普通的时间戳。只要我写一个反向探针,模拟他们的调用路径,就能顺着这个标记摸回去。整个过程不用碰客户数据,不违反任何隐私条款。”
苏念安看着他,手指在桌面上轻轻叩了两下。“需要多久?”
“探针我昨天夜里写好了。”陆怀舟从包里拿出一个U盘,放在桌上,“我需要的是法务授权,还有行业协会的技术事故报备。如果我们主动把证据链提交上去,竞争对手先手告我们侵权的可能性就没了。”
苏念安拿起U盘,在手里转了一圈。她看了看杨明,杨明点头。又看了看法务负责人,对方推了推眼镜说:“报备流程我今天上午就能走完。”
“那就干。”苏念安把U盘插回陆怀舟的电脑,“天亮之前我要看到入口地址。”
接下来的四个小时,会议室变成了战场。
陆怀舟带着杨明和小林架设反向探针环境,键盘声此起彼伏。苏念安坐在角落里开视频会,和法务、公关、券商三方协调,把上市招股书里关于技术风险的描述临时重写。她的语速比平时快了将近一倍,但每个字都踩在点上。
清晨六点十二分,屏幕上弹出一个地址。
杨明猛地站起来,椅子向后滑了半米:“抓到了。IP归属地在境外,但服务器托管商是国内一家云服务商。通过代理链查回去,实际控制人……”他顿了一下,转头看向陆怀舟,“是启明数据。”
会议室里安静得能听见电脑散热风扇的声音。
启明数据,公司最大的竞争对手,半个月前刚向港交所递交了招股书。
陆怀舟没有停手。他调出过去三个月的调用日志,把每一个异常数据包的时间、路径、签名全部截图,打包成一份四十七页的技术分析报告。杨明在旁边看得头皮发麻,这些日志他们每天都会看,但从来没有人能把散落的异常串成完整的证据链。
“报告我写完了。”陆怀舟把文件发给苏念安,“法律版本需要法务部再过一遍。协会报备需要我本人去做技术陈述。”
苏念安点开文件,快速翻了前几页。她抬起头,目光在陆怀舟脸上停了两秒。
“你去。”
上午十点,行业协会技术委员会召开紧急听证。陆怀舟站在会议室中央,用四十分钟把证据链从头到尾讲了一遍。他没提自己和LightGate的关系,只说是“对系统底层协议的审计中发现”。委员会当场决定立案,并向启明数据发出技术问询函。
同一天下午,公司发布系统安全升级公告,同时把完整证据链同步给了券商和审计机构。晚上七点,苏念安收到券商电话:上市进程不受影响,但需要在招股书里增补技术风险披露章节。
她挂了电话,靠在办公椅里闭了一会儿眼。窗外天已经黑透了,办公区大半的灯都关了,只有技术部那边的工位还亮着。
苏念安站起来,走过去。
陆怀舟趴在一台测试机上,屏幕上是安全升级后的回归测试报告,全部绿灯。他睡着了,呼吸很轻,右手里还捏着一支笔。旁边放着一瓶矿泉水,瓶盖没拧上,已经喝了大半。胃药的盒子立在鼠标边上,拆开了,少了两片。
苏念安没有叫醒他。她转身回到自己办公室,从柜子里拿了一条毯子,轻轻盖在他身上。动作很轻,连她自己都没意识到自己放轻了呼吸。
三天后,启明数据主动撤回了港交所的上市申请。行业协会的公开通报里,启明数据承认“在数据接口对接过程中存在不当行为”,被处以行业禁入六个月的处罚。
公司系统完成全面安全升级,底层协议被替换成陆怀舟新写的版本。上市招股书重新提交,券商反馈“技术风险披露充分,不影响上市进程”。
周五下午,苏念安让行政订了附近一家餐厅的包间。
庆功宴规模很小,只有技术团队和几个核心高管,加起来不到二十个人。陆怀舟坐在长桌靠里的位置,还是穿着朴素——灰色衬衫,洗得有点发白,但干净整洁。
苏念安站在长桌一端,手里端着一杯无酒精的气泡水。
“今天这顿饭,为两件事。”她声音不大,但整个包间都安静下来,“第一,感谢技术团队七天之内三次升级,把公司最大的合规风险清掉了。奖金系数这个月翻倍。”
几个人笑着鼓掌。
“第二件事。”苏念安停顿了一下,目光扫过长桌,落在陆怀舟身上,“从下周一开始,陆怀舟正式成为公司技术合伙人。具体股权比例和职责范围,HR那边下周会出正式文件。”
掌声更响了一些。杨明带头起哄,小林直接吹了口哨。
陆怀舟站起来。他先是愣了一下,然后拿起面前的水杯。他环顾了一圈在座的人,目光最后停在苏念安脸上。
“二十年前,我欠了一个人一个交代。”他的声音不高,但每个字都很稳,“那时候我什么都没有,连一句‘你等我’都不敢说全。今天我把系统漏洞补上了,也把该做的事做了。这算是我还的第一笔。”
包间里没有人说话。
陆怀舟举起水杯:“第二笔,给公司,给在座各位。技术合伙人这个位子,我接了。系统安全我负责到底。”
他喝了一口水,坐下来。旁边的杨明拍了拍他的肩膀。
苏念安在长桌另一端,也举起了手里的气泡水,遥遥地对他抬了一下。
她没有笑,但下颌线比前些天柔和了许多。那一瞬间很短暂,短暂到在场没有第二个人注意到——但陆怀舟看见了。
他也看见苏念安放下杯子后,手指轻轻碰了一下胸口的位置。衬衫外什么也没有,但她碰的那个位置,二十年前他离开那晚,留给她的铁盒里那封信,曾经贴在她心口放了整整一夜。
庆功宴散场的时候已经快十一点。苏念安最后一个走出包间,在餐厅门口站了一会儿。
手机屏幕亮了一下。陆怀舟发来的消息,只有一句话:“系统升级的完整文档我明天上午放你桌上。”
她回了一个字:“好。”
夜风比前几天凉了。苏念安把外套拉链拉到顶,沿着人行道往停车场走。高跟鞋敲在地砖上,节奏平稳。
走了十几步,她忽然停下来。
回头看了一眼餐厅方向。
陆怀舟还站在餐厅门口的台阶上,手里拎着一个帆布包,正低头看手机屏幕。暖黄色的灯光从玻璃门里透出来,把他半边侧脸照得柔和,另外半边隐在夜色里。
二十年。
苏念安收回目光,继续往前走。高跟鞋的声音重新响起来,匀速,坚定,像一个人走了很久的路,已经很清楚自己的方向在哪里。
车钥匙解锁,车灯在地面上亮起来。
她没有再看后视镜。
第十三章 敲钟
二十年后,苏念安还是会想起那个清晨。
深交所的敲钟大厅比想象中安静。没有锣鼓喧天,没有彩带飞舞,只有一块巨大的电子屏和一面悬挂的铜钟。工作人员在调试设备,低频的电流声在空旷的大厅里持续嗡嗡作响。
苏念安站在等候区,穿一身深灰色西装,头发挽得很紧。杨明在旁边来回踱步,嘴里念叨着什么,像是在默背发言稿。小林正对着手机补妆,嘴里还抱怨化妆师下手太重。
“苏总,紧张吗?”杨明凑过来。
苏念安看了他一眼:“你转来转去的样子,比我紧张。”
“废话,我第一次上这种台子。”杨明拉了拉西装下摆,“你说咱们当年在居民楼里写代码的时候,想过有这一天吗?”
苏念安没回答。她看见了站在大厅角落里的陆怀舟。
他今天穿了一件干净的黑色夹克,站在人群靠后的位置,双手插在口袋里。周围的人大多西装革履,他显得格格不入,却没有任何局促。他的目光一直在扫视全场,更像是在确认场地里有没有技术隐患,而不是在见证什么历史性时刻。
苏念安想起上个月系统修复后,陆怀舟几乎住在了公司。他没有邀功,没有找她谈过任何私事,每天只是发一条简短的工作日报,抄送给技术组全员。他把她给的权限用到了极致,也把分寸守到了极致。
“苏总。”工作人员过来提醒,“还有五分钟。”
苏念安收回视线。手机屏幕亮了一下,是周莉发来的消息,一行字:“念安,恭喜你,我在电视上看直播。”
苏念安打了两个字:“谢谢。”发送之后没有再看。
倒计时开始了。
苏念安走上台,杨明和小林分列两侧。她的手摸到了钟锤上,铜面冰凉,掌心却出汗了。
“三、二、一——”
钟声响起来。第一下很沉,撞在胸腔上震得人发麻。第二下、第三下,声音叠在一起,变成一股绵长的嗡鸣。电子屏上的数字跳了一下,定格在开盘价上。
台下有人在鼓掌,有人在拍照。杨明激动地拍了她后背一下,小林已经哭了。
苏念安站在原地,握着钟锤的手还没有松开。她想起2006年走进那家外贸公司时,人事部让她填表,她坐在走廊塑料椅上,脚下放着一个旧行李箱。想起2010年拿出十五万积蓄那天,去银行转账,柜员反复确认了三遍金额。想起2018年A轮融资到账的深夜,她和杨明在公司楼下吃了一碗牛肉面,加了两份肉,庆祝得像是暴发户。
那些画面闪得很快,快到她没有时间沉浸在任何一段里。
钟声停了。
苏念安抬起头,目光越过人群,又一次落在陆怀舟身上。他也在看她,没有鼓掌,没有笑,只是微微点了一下头。那个动作极轻极快,可能是表示“一切正常”,也可能是别的什么。但他很快移开了视线,低头重新看手机上的系统监控数据。
仪式结束后是媒体专访环节。
苏念安被请进一间小型会议室。对面坐着一位财经记者,录音笔的红灯已经亮起来。
前几个问题都很常规,营收结构、技术壁垒、海外市场布局。苏念安回答得简洁明了,语速平稳。
记者翻了一页笔记,换了个轻松些的语气:“苏总,我看了您的简历,从跟单员到上市公司董事长,整整十八年。很多读者会好奇,您觉得成功的秘诀是什么?”
苏念安端起桌上的矿泉水喝了一口。这个问题她回答过很多次,标准答案通常是“坚持”“团队”“时代机遇”。但今天她不想说这些。
“把别人的嘲笑当成闹钟。”她说。
记者愣了一下,笔尖停在纸上。
“闹钟?”记者追问。
“闹钟响的时候,你会烦,会想把它按掉。”苏念安看着对面录音笔上跳动的时间数字,“但你不能一直按掉它。你得起来,做该做的事。做得多了,闹钟就不响了。”
记者若有所思地点了点头,在笔记本上重重画了一笔。苏念安没有展开解释这句话,她不需要。
专访结束后,苏念安沿着走廊往回走。经过休息室的时候,门虚掩着,里面只有陆怀舟一个人,坐在角落的沙发上,手里拿着一个东西。
苏念安推门进去。
陆怀舟抬起头,把手里的东西放在了茶几上。是一张很小的纸片,边缘发黄,对折过很多次的痕迹很深。
“我签入职文件的时候,HR给我一份档案袋,里面有这个。”陆怀舟的声音很平,“应该是当年整理我工位的时候,一起收进去的。”
苏念安走过去,拿起那张纸片。展开一看,是一张收据。品类栏写着“银项链”,金额栏写着“¥320”。日期是2005年1月17日。购货人签名那一栏,字迹潦草但还能辨认——陆怀舟。
她记得那条项链。细细的银链子,吊坠是一颗很小的锆石。陆怀舟离开那天早上,她把项链和那封手写信一起放进铁盒里,后来信件她始终没有打开,项链一直收着。
“你那时候哪来的钱?”苏念安问。
“跟朋友借的。”陆怀舟说,“那个月我刚把工资寄回家,手里只剩两百。买项链差了钱,找同租的老乡借了一百二。”
苏念安看着那张收据。三百二十块钱,在2005年是一个刚毕业的年轻人半个月的工资。他借了一百二,负债去买一条锆石项链,只因为她路过商场橱窗时多看了一眼。
“后来还人家钱了吗?”她问。
陆怀舟点了点头:“还了。第二个月发的工资全搭进去了。”
苏念安没有再说话。她把收据折好,折成很小的一块,塞进西装内侧的口袋,贴着心脏的位置。那个位置今天本来别着一枚公司上市的纪念徽章,走路时会轻轻硌着胸口。现在和收据重叠在一起,硌得更明显了。
“你先休息一会儿。”她站起来,声音恢复了平时的干练,“下午还有一场机构交流会,技术方面你如果方便,一起参加。”
陆怀舟说好。
苏念安走到门口,手搭在门把上,没有马上推开。她背对着他,停了大概三秒钟。
“陆怀舟。”
“嗯。”
“今天站在台上敲钟的时候,我在想一件事。”
“什么?”
“我在想,如果那年你问我一句‘要不要跟我一起走’,我可能会犹豫。”她转过半张脸,侧影的轮廓清晰而冷静,“但你没有问。所以我只能自己走。”
她推开门走了出去。走廊里的灯光很亮,迎面走来两个工作人员,抱着文件匆匆经过。苏念安侧身让了一下,脚步没有乱。
走出几步,手机震了一下。陆怀舟的消息,只有三个字:“我知道。”
苏念安盯着那三个字看了两秒,把手机放回口袋。收据的折痕硌着她胸口,像一个极轻的提醒。
下午的机构交流会上,苏念安坐在主位,陆怀舟被安排在技术顾问席。有投资人问到了近期系统安全事件的处理细节,苏念安简单说了升级方案,重点落在流程优化上。陆怀舟补充了两句技术层面的解释,专业、克制,没有多余的话。两人之间隔着三个座位,配合却像同一条流水线上的两个齿轮。
交流会结束后,杨明凑过来小声说:“你俩今天配合得可以啊,他说话的时候你一直在点头。”
苏念安拿起桌上的文件,头也没抬:“技术方案本身没问题,不需要我挑刺。”
杨明举手投降:“行,当我没说。”
傍晚六点,苏念安独自走出大楼。深秋的天黑得早,路灯已经亮了,梧桐叶落了一地,被风卷着贴在地面上。
手机又响了。这次是周莉打来的电话。
“念安,白天发消息你没回我。”周莉的声音比平时低了一些,“我就想问一句——上市了,你高兴吗?”
“当然高兴。”
“那就好。”周莉顿了一下,“我看了直播,看到陆怀舟站在下面。你们……”
苏念安打断她:“周莉,我今天很累。改天再说。”
“好,好,你休息。”
通话结束。苏念安把手机拿在手里,站了一会儿。风把梧桐叶吹到她脚边,她低头看了一眼,往停车场的方向走。
走了几步,她停下来,从西装内侧口袋里掏出那张收据,展开看了一眼。银项链,三百二,购货人陆怀舟。她又折好,放回原处。
手机屏幕再次亮起来,陆怀舟的消息:“苏总,明天的技术复盘会改到几点方便?”
苏念安打字:“上午十点,我办公室。”
“收到。”
她收起手机,拉开车门坐进驾驶座。发动引擎之前,她从后视镜里看了一眼远处的大楼。公司楼层的灯还亮着大半,陆怀舟大概还没有走。
苏念安把座椅靠背调直了些,双手搭在方向盘上,呼出一口白气。
车窗外的夜色很浓,路灯一盏接一盏连向远处,像一条不会断的线。她踩下油门,车缓缓汇入车流。
第十四章 同学会
同学会定在市中心一家老牌饭店,是周莉挑的地方。苏念安到的时候,包间里已经坐了七八个人,桌上摆着两瓶红酒,几个熟悉的面孔正围着菜单讨论。
“念安来了!”
有人喊了一声,众人的目光齐刷刷投过来。苏念安今天穿得简单,一件深灰色羊绒衫,脖子上没有戴任何饰物,比起上市那天敲钟台上的正式装扮,此刻的她松弛许多。
“大老板终于到了,我们都等半天了。”班长赵鹏起身拉开身边的椅子,“坐这儿坐这儿。”
苏念安笑着坐下,把带来的两盒点心放在转盘上:“路上买的,大家先垫垫。”
周莉坐在对面。她今天化了精致的妆,穿一件酒红色连衣裙,但眼角的细纹遮不住,笑起来的时候尤其明显。离婚之后她瘦了不少,脸颊凹下去,颧骨显得高了。她冲苏念安举了举茶杯,苏念安点头回应。
酒过三巡,话题从房价聊到孩子教育,又从当年谁挂过科聊到谁当了处长。苏念安大多时候在听,偶尔被问到才说几句。席间没有人主动提公司上市的事,但她知道每个人都看到了新闻。
直到赵鹏喝得脸上泛红,筷子一放,嗓门大了起来:“哎,说真的,当年念安跟陆怀舟在一起的时候,谁看好过?我记得周莉你那时候最反对。”
包间里安静了一瞬。周莉拿茶杯的手顿了一下,杯沿歪了歪,茶水晃出来几滴落在桌布上。
“那时候大家都年轻嘛。”有人打圆场。
赵鹏没察觉气氛变化,继续说:“谁能想到念安现在这么厉害。当年她要是听了周莉的话,跟那个做外贸的相亲对象结婚,现在没准也是个阔太太,但肯定做不出一个上市公司来。所以说,人还是得信自己。”
“你喝多了。”赵鹏旁边的女同学拽了拽他的袖子。
周莉放下茶杯,用餐巾纸擦了擦手指。她抬起头,目光越过圆桌上的碗碟,落在苏念安脸上。
“念安,我一直欠你一句正式的道歉。”
包间里彻底静下来。有人低头看手机,有人假装夹菜,但所有人的注意力都在她们两个身上。
“当年我说陆怀舟配不上你,说跟着他只会吃苦,”周莉的声音比平时低,语气却很稳,“我那时候觉得钱最重要,有房有车才算有安全感。我用我自己的标准替你衡量,还觉得是为你好。”
她停了一下,深吸一口气。
“后来我离婚了。一个人过了这几年,才明白当年你跟我说的那句话——‘人比钱重要’。你是对的。我不该用钱去衡量感情,更不该在那么多人面前让你难堪。”
周莉端起面前的酒杯,站起来。杯子里是红酒,她举到齐眉的高度。
“这杯是我赔你的。你不原谅我也没关系,但我得说。”
苏念安看着周莉。包间顶灯的光打在周莉脸上,她化了妆的脸透出一种少见的诚恳。二十年前婚礼化妆间里那句话,苏念安后来是知道的。不是陆怀舟说的,是她有一次喝多了,自己说漏了嘴。那时候两个人已经离了婚,周莉哭得一塌糊涂,说“我当年跟你老公说了那种话,我活该”。
这些苏念安从没跟别人讲过。今天也不必讲。
她拿起面前的杯子,站起来,跟周莉碰了一下。杯壁发出清脆的一声响。
“都过去了。”
苏念安只说了这四个字。没有多余的话,没有煽情的原谅,也没有翻旧账。她抿了一口酒,坐回去,拿起筷子夹了一块凉拌黄瓜。
赵鹏愣了两秒,赶紧举杯:“来来来,大家一起喝一个!”
包间重新热闹起来。周莉也坐下了,低头用筷子拨着碗里的菜叶,没有再说什么。苏念安注意到她眼角有点红,但妆没花。
后半场聊到当年学校的食堂、图书馆门口那棵银杏树、还有毕业时集体在操场上拍的照片。苏念安参与得比前半场多了一些,讲了两件大学时候的糗事,引得全桌大笑。
九点半散场。众人三三两两走出饭店,深秋的夜风裹着桂花的余味。苏念安站在门口跟几个同学道别,周莉走过来,手里拎着包,脚步有些犹豫。
“念安,我送你到路口吧。”
“不用,有人接我。”
周莉愣了一下,随即像是明白了什么,点了点头。她往前走了两步,又回过头来。
“当年婚礼上说的话,我跟他当面也说过,”周莉的声音很轻,被风吹得有些散,“我后来一直后悔。你替我跟他说一句对不起。”
苏念安没接这句话。她只是微微点头,目光平静地看着周莉。
“路上小心。”
周莉走了。苏念安站在台阶上,目送她的背影消失在街角。二十年前周莉结婚那天,苏念安也站在饭店门口,一个人等迟到的陆怀舟。那天周莉穿着婚纱从化妆间冲出来,满脸不高兴地说“你那个男朋友还来不来”。时间过得快,两个人都变了,但有些东西没变。
“苏总。”
陆怀舟的声音从侧面传来。他站在人行道旁的梧桐树下,穿了一件深蓝色夹克,拉链拉到一半,比面试那天精神了许多。手里提着一个纸袋,看样子是书。
“你怎么在这儿?”苏念安走下台阶。
“周莉下午给我打了电话,说今晚同学会。我没进去,在附近走了走。”他抬了抬手里的纸袋,“顺便去旁边书店逛了逛。”
苏念安看了一眼纸袋上的标志,是财经书店的袋子。两个人并肩往停车场的方向走,梧桐叶在脚下发出细碎的声响。路灯把两个人的影子拉得很长,一前一后,偶尔交叠。
“周莉让我跟你说对不起。”苏念安说。
陆怀舟走了几步才回应:“她当年是说了些话,但走的人是我自己。这个不赖她。”
苏念安没再说话,两个人沉默地走了一段。经过一家便利店,陆怀舟进去买了两瓶水,递给她一瓶。苏念安接过来,拧开喝了一口。
“接下来有什么打算?”她问,“公司这边的技术顾问合同签了一年,一年之后呢?”
陆怀舟把水瓶拿在手里捏了捏,塑料瓶发出轻微的响声。
“我想回学校把书读完,”他说,“当年退学的时候走的急,学籍后来也没处理。我查过了,可以申请恢复学籍,把剩下的学分补上,拿个本科文凭。”
苏念安停住脚步,转头看他。
“你认真的?”
“认真的。白天上班,晚上上课。辛苦是辛苦点,但比当年在工地上搬砖轻松。”他笑了一下,眼角的皱纹挤在一起,“当年走的时候,我连毕业证都没拿到。总得补上。”
苏念安看着他。二十年前陆怀舟退学那天,她在宿舍楼下等了一整夜。第二天他发来一条短信,只有五个字——“我不读了,对不起。”她再打过去,已经关机。那是第一次,也是最后一次,她不告而别前的预兆。
如今这个人站在面前,瘦了,老了,头发花白了,但眼睛里的光没变。
“这次别不告而别了。”苏念安说。
说完她自己先笑了。陆怀舟愣了一下,也笑起来,笑着笑着眼眶就红了。他偏过头去,抬手在脸上抹了一把。
“不会了。”他说。
两个人继续往前走。前面是一个十字路口,左转是苏念安停车的方向,右转是地铁站。红绿灯在夜色里明明灭灭,映得地面上的水洼忽红忽绿。
“你明天上午来我办公室,复盘会之前我有两份资料要给你。”苏念安在路口站定。
“好。”
“还有,”她从西装口袋里掏出那张折得发软的收据,看了两秒,递给他,“这个你拿回去。”
陆怀舟接过去展开,看清上面的字,手停住了。那张二十年前买项链的收据,印字已经模糊,但数额和日期还在。他张了张嘴,什么也没说出来。
苏念安已经转身往左走了。走出几步,她回头看了他一眼。
“明天见,陆老师。”
她的声音里带着一点玩笑的意味。陆怀舟把收据折好,郑重地放进夹克内侧口袋。他冲她点了点头,那动作像是在做某种承诺。
绿灯亮了。陆怀舟往右走,苏念安往左走。身后的饭店门口,最后几个同学也散了,路灯把每个人的影子拉得很长,各自指向不同的方向。深秋的风吹过来,带着远处江面的潮湿气息。苏念安拉开车门之前,抬头看了一眼夜空,云层散开,露出几颗星子。
她坐进驾驶座,发动引擎。手机屏幕亮了一下,是陆怀舟发来的消息,只有三个字:“路上慢。”
苏念安打了两个字回过去,把手机扔在副驾驶座上。车缓缓驶出停车场,汇入夜晚的车流。后视镜里,陆怀舟还站在路口,身影越来越小,最后融进了梧桐树影里。
第十五章 合适的距离
陆怀舟入职第三周,苏念安在技术部的白板上看见了他的排班表。
周一到周五白天正常上班,傍晚六点下班后,他会在工位上多留半小时,把当天的工作日志写完,然后背包离开。保洁阿姨说,好几次看见他在一楼大厅换衣服——西装外套换成一件洗得发白的夹克,皮鞋换成运动鞋。
“陆顾问晚上是去跑步吗?”前台小姑娘问苏念安。
苏念安说不知道。
后来她让助理调了一份考勤记录。陆怀舟每天晚上七点到十点,有规律地刷门禁卡进入公司大楼,直接去培训室。培训室那层是空的,只有桌椅和一台投影仪。苏念安有一回路过,透过磨砂玻璃看见里面亮着灯。她推开门缝看了一眼,陆怀舟坐在最后一排,桌上摊着一本《计算机系统结构》,正在往笔记本上抄写重点,字迹很小,一行一行挤得密实。
他听见门响,抬起头,两人隔着整间教室对视了一眼。苏念安什么都没说,把门轻轻带上了。
第二天她把助理叫来:“培训室那层的空调晚上开着,别关。”
“那层没人用啊。”
“现在有了。”
这事她没有告诉陆怀舟。
技术部的同事对陆怀舟的评价出奇一致:话少,手快,不抢功。遇到系统报错,他习惯先看底层日志,一层一层往上查,找到根源才动手改。实习生写的代码有漏洞,他不骂人,搬张椅子坐在旁边,一屏一屏地讲逻辑,讲完了让对方自己改,他在旁边等着。
“陆老师脾气真好。”实习生说。
但苏念安知道他不是脾气好,是习惯了独自扛。二十年前他在出租屋里改代码,没日没夜地改,改到最后欠了一屁股债。那时候他从不跟她说具体数字,只说“快了,快好了”。后来她才知道,那些“快了”背后是七张信用卡和两个借贷平台。
一个周五傍晚,苏念安从会议室出来,经过技术部,看见陆怀舟的工位上放着一只塑料袋,袋口露出半截面包和一瓶矿泉水。他不在座位上,大概去茶水间了。苏念安站了两秒,转身走了。
回到办公室,她给行政发了条消息:技术部加班餐标准提一下,晚上八点以后有值班的,订热餐。
“可是最近技术部不加班啊。”
“以后会加的。”
她没说这是为谁定的。
十月中旬,苏念安去上海出差,参加一个供应链数字化论坛。飞机是晚上七点起飞,她提前两个小时到了机场,在候机厅找了个靠窗的位置坐下,打开电脑改一份合同。
手机响了一声。
是陆怀舟发来的消息:“念安,我配得上你了,但这不重要了。谢谢你给我机会重新开始。”
苏念安的手指停在键盘上。
候机厅里人来人往,广播在播报延误信息,一个小孩在哭,旁边的旅客在打电话。她盯着屏幕上的字,看了很久。那两行字很平静,像在说一件跟自己无关的事情。
她想起二十年前他在出租屋里通宵写代码的样子,想起他在周莉婚礼上站在角落里一言不发的样子,想起他走的那天早上,枕头上放着一个信封和一条项链,项链下面压着一张收据。
信封她至今没有打开。
她一直以为自己在等一个解释。可到了今天她才发现,她等的其实是这句话——一句迟到了二十年的确认。
她点了回复:“好好读书,陆技术顾问。”
发完她把手机翻了个面扣在膝盖上,抬起头看落地窗外的停机坪。暮色很沉,远处的跑道灯连成一条橘黄色的线。她想起上周在公司走廊里碰见陆怀舟,他刚从夜校下课回来,手里拎着个布袋子,里面装了两本书。他看见她,脚步顿了一下,叫了一声“苏总”。
很自然。就像她叫他“陆顾问”一样自然。他们之间已经不需要再靠过去的称呼来确认什么了。
登机广播响了。苏念安合上电脑,起身排队。手机又亮了一下,是陆怀舟的回信,只有两个字:“收到。”
她嘴角动了一下,把手机装进口袋。
上海论坛开了两天。第二天下午议程提前结束,苏念安改签了航班,提前回深圳。飞机落地已经接近深夜,她打开手机,技术群里有十几条未读消息,最上面一条是运维主管发的:系统例行巡检发现两处异常访问,已经拦截,陆顾问排查后确认是外部扫描,已更新防火墙规则。
下面跟着陆怀舟的回复,时间显示是凌晨一点二十三分:“防火墙规则已升级,明天上午再做一次全量安全扫描。请各位不用回复,休息。”
苏念安坐在出租车的后座,把这条消息看了两遍。凌晨一点多,他还在公司。她想了想,什么都没发。
第二天上午到公司,苏念安直接去了技术部。陆怀舟的工位上摆着三个显示器,其中一个屏幕上是密密麻麻的日志数据。他正在打电话,语速不快,一条一条跟对方确认参数。苏念安站在他身后等了一会儿,他挂了电话转过椅子,看见她,叫了声苏总。
“昨天怎么回事?”
“有人用脚本批量扫描我们的API接口,应该是竞争对手在试探。没到入侵的程度,但能看出来他们摸到了边缘。”
“能找到来源吗?”
“需要时间。”陆怀舟顿了顿,“我打算从访问链路反向追踪,跟上次破解事件是同一批特征。”
“需要多久?”
“给我三天。”
苏念安点了下头,转身准备走。走了两步又停下来,从手里拎着的纸袋里掏出一盒东西放在他桌上。是上海带回来的蝴蝶酥。
“路过买的,给技术部当茶点。你留一盒。”
陆怀舟看了那盒蝴蝶酥一眼,没有推辞,说好。
三天后,陆怀舟锁定了扫描来源的跳板服务器,把证据打包交给了行业协会和安全监管平台。这是他上一次追踪破解事件时用过的办法,效率更高。行业协会很快发了通报,那家竞争对手被要求限期整改,苏念安公司的上市进程恢复正常。
接下来的日子过得快。招股书定稿,路演排期,交易所审核通过。苏念安每天早出晚归,有时候一天飞两个城市,在飞机上吃饭,在车上打电话。陆怀舟那边也在忙,上市前的系统安全需要反复验证,他带着团队做压力测试,连着两个周末没休息。
他们很少碰面,偶尔在电梯里遇见,点点头,说几句工作上的事。其他没有了。
周莉打过一个电话来,说同学群里都在传苏念安公司要上市了,问她能不能帮忙留几手原始股。苏念安说不方便,公司有规定。周莉在电话那头沉默了几秒,说那算了,然后就挂了。
后来周莉又发过一条微信,说之前约她吃饭的事,如果忙就算了,等上市以后再说。苏念安回了一个“好”字。
她没有再追问周莉当年跟陆怀舟说过什么。有些答案已经不重要了。
上市前一天晚上,苏念安一个人在办公室待到很晚。招股书的终稿放在桌上,硬壳封面,烫金标题。她翻开扉页,上面印着一行小字,是她亲手写进去的——
献给所有不被看好的人。
她看着这行字,忽然想起2004年周莉婚礼那天,她穿着一条打折买的裙子,陆怀舟穿着不合身的西装站在她旁边。周莉端着酒杯走过来,上下打量了一眼陆怀舟,笑着说:“念安,你条件这么好,怎么找了这么个——”
后面的话没说完,被另一个同学拉走了。但那一瞬间陆怀舟的表情,苏念安记了二十年。他低下头,嘴角动了动,什么也没说,只是把她的手握得更紧了一些。
那一年她二十四岁,觉得只要两个人在一起,什么都不怕。后来她才明白,有些东西光靠不怕是不够的。
现在呢?她五十岁了……不,马上四十三岁了,公司要上市了,她身边站着创业初期的合伙人,台下坐着一群跟着她干了很多年的同事。
陆怀舟也在。
苏念安合上招股书,站起来走到窗前。楼下是深南大道,车灯连成两条光带,一直延伸到视野尽头。明天这个时候,她会站在敲钟台上,敲响那面铜锣。有人会鼓掌,有人会拍照,有人会发朋友圈。
而陆怀舟会站在台下。
她曾经以为最好的结局是两个人重新在一起。现在她明白了,最好的结局是各自站在合适的位置上,彼此看得见,也够得着。
手机震了一下,是陆怀舟发来的:“明天的安全预案我看过了,没问题。早点休息。”
苏念安回了三个字:“你也是。”
她把手机放在桌上,一眼瞥见抽屉最里面那个旧信封。那封二十年前没有打开的信,还躺在那里,信封边角有点起毛了。
她没有拿出来。
有些信不打开,反而更好。因为里面写了什么都不重要了——重要的是写信的人现在坐在同一栋楼里,用自己学到的东西帮她守住公司最后的防线。这比任何解释都有分量。
苏念安关上抽屉,拿起包,关灯出门。
走廊尽头的电梯发出叮的一声,门打开,陆怀舟从里面走出来,手里拿着一个文件袋。两人在走廊里碰上,都愣了一下。
“忘拿东西了。”陆怀舟举了举文件袋。
“我也是。”苏念安说。
其实她什么都没忘。但她没说。两个人一前一后走进电梯,谁也没按楼层。电梯门关上,数字往下跳。苏念安看着电梯镜面里两个人的倒影——她穿着深灰色西装,头发盘得一丝不苟;他穿着那件总是很平整的深蓝色衬衫,鬓角的白发在顶灯下像落了一层霜。
“陆怀舟。”她忽然开口。
“嗯?”
“夜校的课,好好上。”
他偏过头看了她一眼。镜面里两个人的目光短暂地碰在一起。
“会的。”他说。
电梯到了一楼,门打开。苏念安先走出去,高跟鞋在地砖上敲出清脆的声响。陆怀舟跟在后面,保持着半步的距离。
外面下着小雨,空气湿漉漉的。苏念安撑开伞,回头看了他一眼。
“你往哪边走?”
“地铁站。”
“顺路吗?”
陆怀舟想了想:“不顺。”
苏念安笑了一下:“那就不顺吧。”
她转身走进雨里。走出几步,听见身后传来陆怀舟的声音:“苏总,明天见。”
她没有回头,只是举起握着伞柄的手挥了挥。
雨不大,街灯映在水面上,一条一条地晃。苏念安走到停车场,坐进车里,发动引擎之前把手机掏出来。屏幕上有一条新消息提醒,是陆怀舟发来的位置共享,持续两分钟,然后消失了。
他大概想让她看看他确实往地铁站走了。
苏念安把手机扔在副驾驶座上,系好安全带,车子缓缓驶出停车场,汇入夜晚的车流。雨刷有节奏地摆动着,把挡风玻璃上的水珠一层层刮开。前方是深南大道的灯火,一直延伸到看不见的地方。
车里很安静,只有引擎的低鸣和雨点敲打车顶的声音。
苏念安开了音乐,第一首就是老歌。她跟着哼了两句,声音很轻,跑了调,自己也没在意。后视镜里,公司的写字楼越来越远,最后隐没在雨幕里。
明天会是好天气。
(全文完)
文章虚拟演绎,请勿当真。
热门跟贴