同事年会领28万我分文没有,冷笑关机躺平4天,再开机总监上门
楔子
林澈盯着手机银行到账短信,余额纹丝未动。台上王鹏正抱着二十八万奖金牌咧嘴笑,陈总监拍着他肩膀:“这个用户增长模型,全靠王鹏主导。”林澈指尖发凉,转头看向苏瑶,她攥着酒杯欲言又止。他没说话,起身走向宴会厅角落,推开了消防通道的门。走廊冷白的灯照下来,他摸出手机,长按电源键。屏幕暗下去那一刻,身后传来主持人激扬的声音:“年会圆满结束——”
第一章 年会的冷光
宴会厅的水晶灯把每个人的脸都镀上一层暖金色,觥筹交错间笑声起伏。林澈坐在二十七桌靠边的位置,面前是一盘没怎么动的清蒸鲈鱼,筷子搁在骨碟边上,半天没拿起来。
台上的LED屏正循环播放年度回顾视频,剪辑节奏飞快,配乐激昂。王鹏领完奖从侧台走下来,怀里抱着那块写着“突出贡献奖·奖金贰拾捌万元整”的泡沫板,被陈总监半揽着肩膀,一路走一路跟沿途的同事点头示意。经过林澈这一桌时,王鹏的目光飞快地掠过他,像被什么烫了一下似的弹开,随即又堆起笑去应付别人的恭维。
“王鹏这小子运气真好。”旁边产品部的刘哥夹了一筷子龙虾,边嚼边说,“那个模型我听说挺复杂的,他居然能搞出来。”
林澈没接话。他低头看了一眼手机屏幕,银行App推送的余额变动提醒还停留在三天前——是一笔两千三百块的报销款。他点进明细,往下翻了两页,没有。再翻,还是没有。
“别看了。”苏瑶的声音从左手边传过来,压得很低。
她今天穿了一件墨绿色的丝绒裙,头发盘起来,耳垂上一对细小的珍珠耳钉。此刻她侧着身,假装在翻桌上的菜单卡,嘴唇几乎没动:“名单我提前看过,当时……”
“当时怎么了?”林澈问。
苏瑶没往下说,只是把菜单卡翻了个面。林澈看见她手指捏着卡片的边角,捏得发白。
台上的讲话还在继续。周总端着酒杯上台,西装扣子绷在微微发福的肚子上,声音通过麦克风传遍全场:“今年我们的用户留存率提升了十二个百分点,这个成绩在行业里都是拿得出手的。陈总监带领的团队功不可没,特别是王鹏,主动请缨啃硬骨头,年轻人有冲劲!”
掌声响起来。周总顿了顿,举起酒杯:“我提议,大家一起敬我们的一线功臣!”
三百多号人齐刷刷站起来,玻璃杯碰在一起,叮叮当当响成一片。林澈也跟着站起来,端着杯子,但没有举。他环顾四周,每一张脸上都挂着笑容,每一双眼睛都朝着主桌的方向。没有人看他。那个模型里的每一行代码,每一个特征工程,每一次凌晨三点反复调参的夜晚,此刻都跟他没有任何关系。
他坐回去,拿起外套。
“你去哪?”苏瑶转过头,声音里有一丝急促。
“洗手间。”
苏瑶张了张嘴,像是想说“你等等”或者“我跟你一起”之类的话,但最终只是看着他,眼底有一种林澈很熟悉的东西。那种欲言又止、进退两难的神情,半年前他们分开时,她脸上也是这个样子。
林澈穿过一张张圆桌。服务生正推着餐车分发果盘,他侧身让过。音响里放着《明天会更好》的背景音乐,一个跑调的男声在跟唱,周围几个人哄笑。没有人注意到他。他在这个公司待了三年,独立交付了七个数据产品,做了十几个临时项目,加了数不清的班,此刻他穿过自己公司的年会现场,像一个走错门的陌生人。
走廊尽头是卫生间。他没有拐进去,而是直接推开走廊拐角那扇贴着“消防通道”标牌的厚铁门。铁门在身后砰地合上,将宴会厅的喧闹彻底隔绝。
楼梯间的声控灯没有亮。黑暗中一股冷风从下面的楼层灌上来,带着地下车库特有的尾气油味。林澈靠在冰冷的混凝土墙壁上,从裤兜里摸出手机。
屏幕上最上面一条是王鹏三分钟前发的朋友圈,九宫格照片,中间的泡沫板奖金牌拍得锃亮,配文是“感恩公司,继续努力”。下面三十多个赞,陈总监的头像排在第一个。
他往下翻。公司大群里,HR赵敏发了一条“年会精彩瞬间”的相册链接。再往下,是周总在管理群里发的一段语音转文字:“今年奖金分配体现差异化激励,大家不要只看数字,要看公司对贡献的认可……”
林澈笑了一声。声音在空旷的楼梯间里被放大,又很快被黑暗吞掉。
他长按电源键。屏幕跳出来滑动关机提示,他的拇指停了一瞬。这三年,他的手机二十四小时开机,周末也好,凌晨也好,系统报警他第一时间响应,客户数据波动他第一个排查。模型上线前夜,他在公司通宵,盯着监控面板上那条平稳上升的曲线,像看着自己的孩子在长大。陈总监第二天拍着他的肩膀说:“小林,辛苦了,汇报的事我来。”
汇报那天,陈总监的PPT上,第一页就把林澈的名字删掉了。他后来问过,陈总监说“你性格内向,上台紧张,我替你说也是一样的,功劳还能跑了不成”。
功劳没有跑。只是换了一个主人。
拇指往下滑,关机画面跳出来,屏幕暗下去。林澈把手机揣进口袋,在黑暗里站了一会儿,然后推开铁门,沿着走廊走回宴会厅门口。
同事们已经在散场了,三三两两地在穿外套、拿伴手礼。大厅里的音乐换成了舒缓的钢琴曲,主持人在台上说着“明年再见”的结束语。林澈走到二十七桌,他的椅子上搭着一条深灰色的围巾,是苏瑶的,她人已经走了。桌上他的外套还搭在椅背上。他拿起来,慢慢穿上。
“林澈,刚找你半天,你跑哪去了?”同事小李从旁边冒出来,手里拎着两盒公司发的年货,“差点把你那份都忘了。”
林澈接过纸盒,说了声谢谢。
“你今天好像不太high啊。”小李笑着拍拍他,“明年争取你也上台领个大的。”
林澈没说话,只是点了点头。他拎着那盒年货和一袋伴手礼,走出宴会厅大门。电梯间里挤满了等电梯的人,他转身推开旁边那扇小楼梯间的门,一层一层往下走。十四楼到一楼,两百多级台阶,他走得很慢。
走出大楼的时候,苏州河边的夜风卷着湿冷钻进领口。他回头看了一眼身后那栋写字楼,十四层的灯光还亮着几个格子,那是年会散场后的收尾和行政人员。再过半小时,那些灯也会一盏盏灭掉,就像过去三年里,他在这栋楼里留下的一切。
街边便利店亮着惨白的灯。林澈走进去,买了一罐冰啤酒。收银的小姑娘扫完码抬头看了他一眼,大概觉得一个西装革履的男人大半夜买一罐最便宜的啤酒有点奇怪。他没在意,拉开易拉罐,站在便利店门口的台阶上喝了一口。
泡沫涌上来,又苦又凉。
后面的玻璃门里,收银台的收音机在放一首老歌。林澈喝掉了半罐,把剩下的半罐放在垃圾桶顶上,掏出手机,手指放在电源键上悬了几秒,最终还是没有开机。他把手机揣回口袋,沿着苏州河往出租屋的方向走。
路灯把他的影子拉长又缩短,缩短又拉长。他想起来三个月前那个加完班的凌晨,他站在公司楼下等车,陈总监发来一条微信语音。那条语音他一直没删,此刻他隔着裤子碰了碰手机,脑子里清楚地记得那十七个字:“小林,模型源文件发我一下,周总要看,我整合一下。”
整合一下。林澈扯了下嘴角。
回到出租屋已经过了十二点。他没开灯,摸黑把年货往餐桌上一丢,脱了外套,倒在床上。枕边的抽屉里,手机安静地躺着,屏幕漆黑。客厅窗外的高架上偶尔有车驶过,轮胎摩擦路面的声音由远及近再由近及远。
他闭上眼睛。四天,他想。先睡四天再说。
第二章 关机之后
便利店的自动门在身后合拢,把街上的风声也一并关在外面。林澈站在关东煮的柜子旁边,手里那罐啤酒已经不那么冰了。收银的小姑娘换了班,新来的是个戴眼镜的男生,正低头给货架补矿泉水,没注意他。
林澈走到窗边的高脚凳坐下。玻璃上蒙着一层雾气,外面苏州河对岸的写字楼群只剩下零星几盏灯还亮着,像一把撒出去的图钉,大部分钉帽已经熄灭。他把啤酒罐贴在额头上,凉意沿着太阳穴渗进去,脑子里那根绷了一整晚的弦才松开了一点。
三个月前那个凌晨,他也是在这个便利店买的咖啡。那天他连续工作了十九个小时,模型最后一段特征工程的代码跑通的时候,天已经黑了又亮。他记得很清楚,调试窗口跳出一行绿色的“验证集AUC 0.87”,他盯着那个数字看了整整半分钟,然后拿起手机给陈总监发了条消息:“模型跑通了,效果比预期好。”
陈总监回得很快:“发我看看。”
他把完整的代码和报告打包发了过去。那个压缩包里有他三个多月积累的所有特征变量、七版迭代记录、还有一份二十页的技术说明文档。为了写那份文档,他翻遍了公司近两年的用户行为日志,把每一次留存率波动的原因都手动标注了出来。
发完文件他才发现窗外已经泛白,保洁阿姨推着拖把从走廊那头过来,看到他愣了一下,问他要不要帮忙叫车。他说不用,趴在工位上眯了一个多小时,然后去洗手间用冷水洗了把脸,继续上班。
那之后的一周,陈总监找他开了三次会,每次都在问模型的细节。但到了向周总汇报的那天,陈总监让他“先别说话,听我讲完你再补充”。汇报到一半,周总接了个电话出去了,陈总监趁机把PPT翻到了最后一页,那页写着“项目负责人:陈XX”。
林澈当时坐在会议桌最远的那把椅子上,中间隔着七八个人。他想开口,但周总已经回来了,陈总监正说到“我们团队用了先进的机器学习方法”,语气自信,手势舒展,像那些东西本来就是从他手里长出来的。
“喂,你还要吗?”收银的男生探过头来问,指着关东煮的锅。林澈摇摇头。男生又缩回去继续补货。
林澈低头看了一眼手里的啤酒罐,捏扁了,铝皮发出清脆的一声响。他把空罐子扔进垃圾桶,推门走出去。凌晨的街道几乎没人,远处有一辆出租车停在路口等红灯,车顶的灯箱亮着橙色的字。河面上倒映着对岸大楼的轮廓,水波一晃,那些轮廓就碎成一片光斑。
回到出租屋,他在玄关站了几秒,摸黑把手机掏出来。屏幕还是黑的。他按了一下电源键,没亮——早就没电了。他拉开电视柜下面的抽屉,把手机放进去,推上。动作很轻,抽屉合拢的时候几乎没有声音。
然后他脱掉衬衫西裤,换上那套洗得发白的家居服,倒在床上。枕头有一股淡淡的洗衣液味道,被套是上个月苏瑶陪他去买的,浅灰色格纹,当时她还说“你那个蓝色的实在太旧了”。
他翻了个身面朝墙壁。隔壁传来隐约的电视声,好像在放深夜购物节目,主持人用夸张的语气介绍一款不粘锅。林澈听着听着就睡着了,连梦都没做。
再醒过来的时候,阳光从窗帘缝里挤进来,在地板上投下一条光带。他摸过床头柜上的闹钟看时间——十点四十。睡了将近十个小时。他坐起来,头发乱翘,嗓子干得发紧,去厨房接了杯水灌下去,然后习惯性地往电视柜那边看了一眼。
抽屉关着。他没走过去打开。
阳台上的杂物堆了快两个月。几个空花盆、两袋营养土、一个折叠起来一直没扔的快递纸箱,还有一根晾衣绳断了以后换下来的旧钢丝。林澈站在阳台门口看了会儿,觉得自己应该找点事做。
他花了一个小时把杂物分类。纸箱拆开放平,用绳子捆好放在门后;空花盆摞在一起,用抹布擦掉上面的泥垢;营养土倒进一个闲置的塑料桶里,用塑料袋扎紧口子。旧钢丝扔进垃圾袋,绳头那一截锈得厉害,他拧了半天才拧开。
干完这些,他出了一身汗。冲了个澡出来,在书架上抽了一本书。那本书是去年双十一买的,讲的是复杂系统理论,他在扉页上写了购书日期,但一直没翻过。书签还夹在第三页和第四页之间,是当时随手塞的一张超市小票。
他靠在床头翻开书。前三章讲的是非线性动力系统的基本概念,公式不多,例子倒不少,从蚁群觅食讲到交通拥堵。林澈看得很慢,有时候一段要读两遍。阳光从窗帘缝里慢慢移过去,光带从地板爬到床脚,又爬到他的膝盖上。
下午两点多,他合上书去厨房煮了碗面。冰箱里剩了半把青菜和一个鸡蛋,他把它们都放进锅里。面煮好端到餐桌上,对面是那张空椅子。以前苏瑶坐在这里的时候总爱把脚搭在对面的椅子上,他说过她好几次,她笑嘻嘻地不听。
吃完面他洗碗,水声哗哗的。厨房窗户外面是一棵老梧桐,叶子掉得差不多了,剩下几根枯枝伸向灰蓝色的天空。远处有人在遛狗,一只黄色的拉布拉多跑得很欢,后面跟着个穿冲锋衣的中年男人,手里握着牵引绳慢悠悠地走。
林澈把碗倒扣在沥水架上,回到书桌前打开电脑。桌面上最后一个文件是那个模型的可视化报告,PDF格式,第一页有他的署名——“数据分析师:林澈”。那是他发给陈总监的版本,后来公司内部系统上的最终版,署名那一栏被替换成了陈总监的名字。他盯着那个PDF看了一会儿,然后右键点击,拖进了回收站。
清空回收站的时候系统弹了个确认窗口。他点了“是”。
抽屉里的手机一整天都没响。或者说,它压根就没开。林澈知道按正常逻辑,应该会有未接来电、微信消息、甚至邮件。但他不想按那个逻辑了。至少今天不想。
天色暗下来的时候,他去阳台收了衣服。那件西装外套挂在晾衣架上,年会只穿了一次,袖口还留着折痕。他取下来叠好,放回衣柜最深处。旁边的衣架上挂着一件灰色的卫衣,是他平时周末穿的。他把它拿出来,套在身上。
卫衣很软,领口微微变形,但比西装舒服得多。
晚上他看了部老电影,讲一个程序员辞职去开书店的故事。剧情一般,但男主角在书店里整理书架的那个长镜头让林澈看得很专注。镜头缓缓扫过一排排书脊,最后停在一本翻开的书上,那页只有一句话,被人用铅笔划了线。
电影结束的时候已经过了十一点。林澈关掉电视,去洗漱。牙刷到一半,他停下来,嘴里含着泡沫,透过卫生间的门看向客厅的电视柜。抽屉安安静静地嵌在柜子里,拉手是金属的,映出一点微弱的光。
他漱了口,把牙刷放回杯子里。
临睡前他站在窗前看了会儿外面。高架上的车流已经稀疏了,远处有一栋楼的灯几乎全灭,只剩下顶层半层还亮着,大概有人在加班。他想起自己在那栋楼里加过的那些班,想起陈总监拍他肩膀说“辛苦了”时嘴角那个弧度。
他拉上窗帘,躺回床上。
被子有点潮,该晒了。他想,明天如果天晴,就把被子抱到阳台上去。还有那盏台灯,灯泡闪了好几天了,得换个新的。冰箱里的牛奶快过期了,得赶紧喝掉。
他想了很多这种小事,一件接一件,密密匝匝地铺满了整个脑子。手机的事被他挤到了最远的角落,像那个关着的抽屉一样,暂时不需要去碰。
窗外的风声渐渐小了。林澈闭上眼睛,呼吸变得均匀。不知道过了多久,楼下传来一声模糊的汽车鸣笛,他翻了个身,把被子裹紧了些。明天,他想着,还有很多明天可以用。
第三章 公司的暗涌
林澈关机第二天,公司九点半的晨会照常开。
苏瑶走进会议室时,里面已经坐满了人。周总端着咖啡坐在主位,脸比平时长了三分。陈总监站在白板前,手里捏着激光笔,正对着屏幕上一张折线图比划。那张图苏瑶认得,是林澈的模型跑出来的用户留存曲线,但此刻坐标系旁边标注的名字换成了“项目组集体成果”。
“数据显示,”陈总监点了点屏幕,“我们本季度留存率提升百分之十二,主要得益于运营策略的调整和精准推送机制的优化。”
周总抬了抬下巴:“客户那边的数据对接,今天能完成吗?”
“没问题,王鹏已经在跟进了。”陈总监朝角落使了个眼色。
王鹏立刻直起身,把电脑屏幕转过来对着周总:“我已经把接口文档整理好了,今天下午就能给对方发测试环境。”
周总嗯了一声,算是认可。
但十点刚过,苏瑶从自己工位上就听见了周总办公室那边传来动静。玻璃墙隔音不好,周总的声音压得很低,但那种从牙缝里往外挤的腔调她听得出来——上回季度复盘会,他冲陈总监拍桌子就是这个声调。
她端着杯子绕到茶水间,正好撞见赵敏在接水。两个人对视一眼,赵敏轻声说:“客户那边炸了。”
“什么情况?”
“对方技术负责人要求解释模型底层逻辑,特别是那个什么……特征权重分配机制。陈总监过去讲了二十分钟,没讲明白。”赵敏左右看了一眼,把声音压得更低,“人家直接说了,如果无法解释清楚算法逻辑,就认为交付物存在知识产权问题,要暂停合作,还要追回前期付款。”
苏瑶手里的杯子停在半空。
赵敏接着倒水,语气平淡但每个字都带着情报量:“周总现在把陈总监叫进去了,王鹏也在。”
王鹏确实在。他站在周总办公桌前,后背僵硬得像一块木板,额头上铺了一层细密的汗。周总坐在椅子里,两只手交叉压在桌面上,目光先是落在陈总监身上,然后转到他这里。
“王鹏,你负责跟客户对接,你来说说,那个模型到底是怎么回事。”
“这个……”王鹏舔了下嘴唇,“模型的整体架构是我和……”
“你和什么?陈总监说是你主导开发的,现在客户要原理说明,你拿不出来?”
陈总监在旁边打圆场:“周总,技术细节比较复杂,王鹏主要负责运营侧对接,算法层面可能……”
“可能什么?”周总抬起眼皮,“年会前你们汇报的时候可不是这么说的。那个奖——”
办公室门突然被敲了两下。赵敏推门进来,手里拿着一个文件夹。
“周总,客户那边的邮件,抄送给了法务。”她把打印件放在桌上,“对方要求今天下午两点前给出书面解释,否则明天发正式解约函。”
周总扫了一眼邮件正文,手指在桌面上无意识地敲了两下,然后拿起内线电话拨了个号码。无人接听。他再拨,还是无人接听。
“林澈呢?”周总问。
会议室里安静了两秒。
陈总监清了清嗓子:“年会那天他好像……情绪不太好,这两天没来上班。”
“没来上班?请假了吗?”
“没有走流程。”
周总的脸色沉了一层。他拿起手机翻到通讯录,找到林澈的号码拨了出去。听筒里传来的只有机械女声:“您拨打的电话已关机。”
他又拨了一遍,还是关机。
“谁有他别的联系方式?住址也行。”周总的目光从陈总监扫到赵敏,最后停在苏瑶身上。苏瑶站在门口,手里还端着杯子。她知道所有人的视线都集中过来,但她没说话。
王鹏这时候忽然插了一句:“周总,其实那个模型的逻辑我大概知道一些,要不我再跟客户沟通一次,试着解释——”
“你解释?”周总抬眼看他,语气里的不耐烦已经藏不住了,“刚才客户技术负责人问你的三个问题,你一个都没答上来。人家现在不信我们的人了。”
王鹏的脸一下子涨红,嘴巴张了张,什么也没说出来。
陈总监接过话头:“周总,要不我先联系林澈看看。他手上应该有完整的开发文档和论证过程。”
周总没回应他,而是转向赵敏:“年会那个奖,评审记录还在吗?”
“在的。”
“翻出来,我看一下。”
赵敏转身出去。她回到自己工位,从文件柜里抽出一个蓝色文件夹,里面是年会各奖项的评审表。她翻到“突出贡献奖”那一页,先看到的是打印的候选名单。林澈的名字排在第一位,后面附着得票数和推荐理由。但有人用黑色签字笔在“林澈”两个字上划了一条横线,旁边手写了“王鹏”两个字。笔迹她认得,是陈总监的。
赵敏盯着那条横线看了几秒,拿出手机拍了张照片存进加密相册,然后把文件夹合上,快步走向周总办公室。
苏瑶回到自己工位后,看着手机屏幕上林澈的微信对话框。最后一条消息还是年会那天下午她发的“晚上见”,没有回复。她犹豫了一下,打了一行字:“公司出了点状况,客户在找模型的人。陈总监解释不了。你看到消息方便回一下吗?”
发出去。屏幕安静地亮着,对话气泡左边只有一个灰色的圆圈,没有钩。她没有再发第二条,把手机扣在桌面上,继续处理手头的日报表。但打字的时候她打错了好几个数字。
陈总监从周总办公室出来后直接回了自己工位。他在椅子上坐了一会儿,拿起手机翻到林澈的微信,打了一行字又删掉,反复三次。最后他把手机扔在桌上,抓了抓头发。旁边工位的同事看了他一眼,没敢问。
桌面上那份被客户打回来的问题清单还摊着。第一条是“特征选择和权重分配的决策依据是什么”,第二条是“因果推断模块的假设条件在业务场景中如何验证”,第三条是“模型在冷启动阶段的表现及处理策略”。
他一个都答不上来。当初拿走林澈的文档之后,他只看了摘要和结论页,中间那四十多页的技术论证,他跳过去了。
下午一点半,苏瑶去茶水间时路过王鹏的工位。王鹏正对着手机打电话,声音压得很低:“我没说我不还,但你不能现在就让我……我能凑多少算多少行不行?”
他看见苏瑶经过,啪地挂断电话,把手机屏幕翻扣在桌上。脸上那层汗还没干透。苏瑶没停留,走进茶水间,给自己泡了杯速溶咖啡。咖啡机的注水声里,她听到外面工区传来周总的声音,好像又在跟什么人打电话,语气一次比一次重。
她攥着纸杯回到座位上,拿起手机又看了一眼微信。给林澈那条消息依然是未读状态。但她注意到对话框上方多了一行灰色小字——“对方已关机”。
窗外二环上的车流声涌进来,混着办公室打印机重新运转的嗡鸣。一切和平时没什么两样,除了所有人心照不宣地绕开了角落里那张空着的工位。桌面收拾得很干净,鼠标垫上没有任何杂物,显示器黑着屏,旁边放着一支没带走的签字笔。
笔帽盖得好好的,笔身端正地躺着,好像随时会有人回来拿起它写字。
第四章 第四天的敲门声
第四天傍晚,林澈把手机扔在床头柜上,屏幕朝下,没开机。厨房里水烧开了,他拆了一包挂面丢进去,又磕了个鸡蛋。锅里的水汽升上来,模糊了窗玻璃,外面天色暗得早,楼下路灯已经亮了。他用筷子搅了搅面条,蒸汽扑在脸上,有股面粉的淡味。
这四天他没怎么出门。第一天晚上在便利店坐到凌晨三点,第二天睡到中午,第三天把攒了两个月的技术博客整理了一遍,第四天下午实在没事干,把屋里拖了一遍地。拖完地他想起冰箱里还有半棵白菜,拿出来切了,扔进面锅里。
面刚盛进碗里,门外传来脚步声。他这间出租屋走廊很窄,脚步声格外清楚——两个人在他门口站定了。
敲门声响了两下,不急,但很重。
林澈放下筷子。他第一反应是物业,但物业从来不会傍晚来。他走到门口,从猫眼往外看了一眼。
楼道感应灯亮着,陈总监站在前面,穿着深灰色大衣,手里提着两个红色礼品袋。周总站在他身后半步,黑色羽绒服拉链拉到领口,表情看不太清,但比年会那天在台上时不一样——眼皮往下压着,嘴角那条线绷得很紧。
林澈把门开了一条缝。
“林澈。”陈总监先开口,笑直接堆到脸上,“在家呢,我们过来看看你。”
“看我?”林澈没把门缝开大。
“周总也来了。”陈总监侧了侧身,让出后面的周总。周总点了下头,视线越过林澈往屋里扫了一眼,闻见面条的味道,眉头几不可察地动了一下。
林澈靠在门框上,一只手撑着门板:“什么事?”
“进去说?”陈总监试着往前迈了半步。
“就在这儿说吧。”
陈总监愣了一下,回头看周总。周总把礼品袋从陈总监手里接过来,直接搁在门口鞋柜上。动作很自然,好像那柜子是他家玄关。
“林澈,”周总开口,声线比平时在会议室里降了八度,“公司这两天遇到点情况,跟你做的那个模型有关。客户那边需要一个解释,现在只有你能说清楚。”
“我离职了。”
“没批。”周总说,“流程还在走,赵敏那边我打过招呼了。”
林澈没接话。走廊尽头有邻居开门出来倒垃圾,塑料袋哗啦响了一声,又缩回去了。
陈总监接过话头,语速很快,带着那种赶在别人拒绝之前把话倒完的节奏:“你那个模型里面特征选择的逻辑,还有因果推断那部分——客户问得很细,写了十二条问题清单。我先帮你应付了两条,但后面那些涉及具体算法参数,只有你清楚。你看这样行不行,明天上午你到公司来一趟,我们开个视频会,把客户那边过了就行。”
“明天上午我没空。”
周总往前迈了一步,皮鞋跟磕在地砖上,声音清脆。他直接从大衣内袋里掏出一张纸,折了两折,递到林澈面前。
“林澈,我不绕弯子。”他说,“年会上那个奖,奖金二十八万,财务那边已经排了付款计划,明天就能到你账上。另外,我个人拍板,再补五万。算是这次的事公司给你的一个态度。”
林澈低头看了那张纸一眼,是一份奖金补发确认单。抬头打着公司logo,金额处填了二十八万,备注栏里手写了一行小字:另加安抚金五万元整。
他看完,没接。
“补多少?”他问。
“二十八万照发,再加五万。”周总重复了一遍,语气很平,“加起来三十三万。你明天到公司,财务那边签字领款。”
林澈盯着那张确认单,脑子里飞速算了一下:二十八万是王鹏领走的那个数额,五万是周总临时加码的封口费。钱从哪里出?财务做账走什么科目?要不要交税?他那颗习惯用逻辑运行的大脑几乎本能地开始拆解每一个数字背后可能的去向和风险。
然后他意识到一件事。
周总说的是“安抚金”,不是“奖金补发”。安抚两个字意味着这件事在周总这里是定性为一次事故,而不是一个错误。事故需要补救,错误需要追责。他到此刻为止听到的所有话里,没有任何一个字提到陈总监拿了别人的文档当自己的成果,也没有一个字提到王鹏为什么会在年会上台领那个奖。
他们在解决麻烦,不是在解决问题。
“我要想清楚。”林澈说。
周总的眼神变了。那种只有零点几秒的变化,他大概在公司里很少听到有人对他说这句话。陈总监在旁边急着补了一句:“林澈,这个条件真的已经是——”
“我知道。”林澈打断他,“我想清楚再说。你们先回吧。”
周总把那张纸收回大衣口袋,动作很慢,像是在给林澈最后一次后悔的机会。但林澈没有动。门框上他的手指因为站久了有些发麻,他换了只手撑着。
“行。”周总终于说,“明天中午之前给我答复。”
他转身往电梯走,大衣下摆带起一阵冷风。陈总监紧跟了两步,又停下来转回身,压低声音:“林澈,年会那个事……有些东西不是我一个人能定的。你心里不痛快我明白,但客户那边真的拖不起。你先回来把眼下这关过了,后面的事咱们慢慢说。”
林澈看着他。走廊灯在两个人之间投下一道斜长的影子。
“后面什么事?”他问。
陈总监张了张嘴,没说出话来。周总在电梯口按了上行键,没有回头,但侧脸的线条绷得更紧了。电梯门开了,周总走进去,陈总监犹豫了一下跟了上去。金属门合上,走廊安静下来。
林澈关上门,反锁。他回到厨房,锅里的面条已经坨了,粘成一团。他把碗端到桌上,坐下,拿起筷子又放下。
门口鞋柜上那两个红色礼品袋还搁着。他过去看了一眼,一袋是茶叶,一袋是水果。他把袋子放到门外的公共垃圾桶旁边,回来继续吃那碗已经凉了的面。
面条没滋没味,鸡蛋煮老了,白菜帮子还有点生。他一口气吃完,把碗洗了,擦干手。然后他从床头柜上拿起关机四天的手机,看着黑色屏幕上映出的自己的脸。
他没有立刻开机。
外面又有脚步声经过,是楼上去倒垃圾的邻居。林澈听着那声音远去,把手机放在了桌上,拿起一本放在床头好几年的旧书,翻到夹着书签的那一页。
第三十三页。他看了几行,又合上了。
窗外的夜色彻底落下来,对面楼亮着几扇窗,有人在阳台收衣服,有人站在窗边打电话。林澈靠在椅背上,掌心贴着手机背面,金属壳已经被他捂热了。
他想清楚了一些事,但还没想清楚全部。
第五章 苏瑶的电话
屏幕亮起来的那一刻,手机像发了疯似的震动。
林澈看着通知栏不断滚动的未接来电和未读信息,手指停在屏幕上方没动。震动持续了将近半分钟才停歇,他数了数——未接来电四十七个,其中苏瑶打了十二个,赵敏打了九个,陈总监打了八个,剩下的是几个陌生号码和周总办公室的座机。微信更是一片红点,他懒得点开,只扫了一眼预览栏里挤在一起的文字,大多前几个字是“林澈你在哪”“客户那边”“看到回电”。
他刚把屏幕按灭,电话又进来了。屏幕上跳着苏瑶的名字,还有一张半年前的旧照片头像,她在照片里侧着脸笑,背景是公司楼下那家咖啡店,杯子上的奶泡拉花还没散。
林澈接了。
“你终于开机了。”苏瑶的声音有点哑,像是刚哭过又像是没睡好,“你知不知道——”
“知道什么。”林澈靠着椅背,目光落在对面楼那扇亮着灯的窗户上。有人在里面走来走去,手里拿着什么东西,像是在找钥匙。
“客户发解约函了。”苏瑶说得很急,句子连在一起,“今天下午四点多发的,法务那边转过来的,周总在会议室拍了桌子,陈总监脸都白了。那个模型——客户那边的技术负责人说,陈总监去给他们做培训的时候,有三个核心算法的逻辑讲错了,对方当场就问他参数是怎么调出来的,他答不上来。客户觉得我们交付的东西有问题,怀疑数据都是编的。”
林澈没说话。电话那头传来苏瑶那边背景里的声音,像是有谁在敲桌子,又像是在收拾东西。
“你在听吗?”她问。
“在听。”
“周总现在到处找你。陈总监说你手机关机,周总把杯子摔了。”苏瑶顿了一下,呼吸声清晰地传过来,“林澈,我知道你在想什么。我也知道你现在肯定不想管这个烂摊子。但……我刚才想了一下,如果我是你,我也不会开机。”
“那你为什么还打?”
电话那头沉默了几秒。
“因为我欠你一句实话。”苏瑶的声音低了下去,带着她紧张时会有的那种极轻微的颤,“年会之前,奖金名单我看过。王鹏那栏是陈总监提上去的,但最后拍板是周总。那天下午我在赵敏办公室,她给我看了核定表,我……我看到上面没有你的名字,但奖金池的总额刚好够发那个二十八万。赵敏说这是上面的决定,让我别多嘴。”
林澈的拇指无意识地蹭着手机边框。窗外的风把对面楼那户人家的窗帘吹起来一角,灯光晃了一下又暗下去。
“所以你知道。”他说,语气很平,像在复述一组数据。
“我知道。”苏瑶说,“我应该当时就告诉你,或者至少站起来说一句话。但我没有。我怕。怕丢了这份工作,怕周总觉得我跟陈总监作对,怕——”她停住了。
“怕站在我这边。”
“是。”苏瑶的声音终于带了哭腔,“对不起。这三个字太轻了,但我不知道怎么——”
“你不用道歉。”林澈说。
电话那头只剩下呼吸声。
“你不用道歉,”他又重复了一遍,声音里没有多少情绪起伏,“因为如果你当时站出来,结果不会有任何改变。反而你现在的处境会更麻烦。这是事实,跟情绪无关。”
苏瑶吸了一下鼻子,过了好一会儿才开口:“你变了。”
“没有。我只是想通了一些事。”
“那……你要不要回来?”苏瑶问得很小心,每个字都像是在试探脚下的冰面,“周总说条件可以再谈,客户那边如果真的解约,整个部门今年的绩效都要受影响。王鹏今天在工位上坐了一天,没人跟他说话。”
林澈闭上眼睛。黑暗中浮现出年会上那些灯光的残影,王鹏捧着那个写着“突出贡献奖”的奖杯,陈总监在旁边笑容满面地拍他的肩膀,台下的人在鼓掌,还有人在小声议论“他凭什么”。他当时坐在宴会厅靠消防通道的那一桌,面前摆着一杯没喝完的橙汁,冰块早就化了,杯壁上凝着水珠,一颗一颗往下滑。
“你觉得我应该回吗。”他睁开眼,问得很认真。
苏瑶沉默了很久。林澈听见她那边有椅子挪动的声音,然后是她把门关上的闷响,大概是从开放办公区进了会议室或者楼梯间。
“我不知道。”她终于说,声音比刚才清晰了一些,“从公司的角度,你回去能解决问题。从你的角度……”
“从我的角度呢。”
“你值得更好的。”
苏瑶说这句话的时候没有哭腔,声音很直,像是想了很久之后才从嘴里推出来的。说完之后她好像怕林澈追问似的,很快补了一句:“很晚了,你早点休息。公司的事……不管你怎么决定,我都——”
“谢谢。”林澈说。
“什么?”
“谢谢你打这个电话。”他拿起桌上的杯子喝了口水,水是凉的,从喉咙一路凉下去,“还有,你没有欠我什么。真的。”
电话挂断之后,房间里安静得能听见冰箱压缩机嗡嗡运转的声音。林澈把手机翻过来放在桌上,屏幕朝下。他起身去厨房把凉了的水重新烧上,等水开的间隙里,他站在窗边往下看。巷子口那家便利店还亮着灯,门口摆着两把塑料椅子,白炽灯管在夜里显得特别刺眼。
水开了,他泡了杯茶,然后把笔记本电脑从包里拿出来——这台电脑他从年会上带回来之后就再没打开过。开机的时候风扇响了一阵才安静下来,桌面还是那个深灰色的背景,几个文件夹整齐地排在左下角。他点开一个加密文件夹,输入密码,里面是一份简历和几份技术文档。
三个月前那个模型做出来的时候,他随手把架构和核心思路写成了一篇技术博客,发在一个行业社区里。当时只是觉得这个思路比较独特,想留个记录。后来有几个人在底下评论过,其中一个是某家公司技术负责人的认证账号,留言说“这个方法很有启发性,有空交流”。
林澈点开那篇博客,拉到最下面。那个账号的头像是一个简单的灰色几何图形,ID是一串没有规律的字母。他点进私信列表,果然有一条三个月前这位账号发来的消息,只有一句话:“如果考虑换环境,可以联系我。”下面留了邮箱。
他当时没回。
林澈把这条私信重新读了一遍,又看了看发布时间。三个月前,那时候模型刚上线,留存率的数据还没出来,陈总监天天在部门群里发各种进度截图,每一张截图上面的名字都是他自己。林澈从文件夹里翻出那份简历,重新打开修改了一遍,把用户增长模型单独列成项目经历,在“承担角色”那一栏写上“独立完成算法设计与数据建模”,并把那篇博客的链接附在了末尾。
做完这些,他把简历存成PDF,又打开邮箱新建了一封邮件。收件人填了那个猎头的地址,主题写了“关于用户增长模型——林澈”。正文他想了很久,最后只写了两行:“您好。之前您在技术社区给我留过言。这个模型是我做的,目前正在看新的机会。简历见附件。”
鼠标悬在发送键上停了几秒。他又想起苏瑶说的那句“你值得更好的”,想起周总把那张写着条件的纸收回口袋时的不甘心,想起陈总监在走廊里说“后面的事咱们慢慢说”时眼神里的躲闪,想起王鹏捧着奖杯时微微发抖的双手。
林澈按下发送键。邮件飞出去的那个动画一闪而过,收件箱随即弹出一封新邮件提醒——是那个猎头秒回的自动回复,上面写着“收到,明日与您联系”。
他把电脑合上,拿起茶杯走到阳台。夜风带着初冬的凉意灌进领口,远处高架桥上的车灯连成一条缓缓流动的光带。手机在屋里又震动了一下,他没去看。
茶喝了一半,有点涩。林澈把剩下的倒进旁边的花盆里,那棵半死不活的绿萝叶子颤了颤。他想起来这盆绿萝还是苏瑶以前买的,分手的时候她说“花盆留给你,你屋里太素了”。
他把空杯子拿回厨房,经过鞋柜时看了一眼——那两个红色礼品袋已经不在了,只在柜面上留下两个淡淡的方形印子。
林澈用抹布把灰擦掉,关灯,躺到床上。黑暗里他睁着眼,手机又在枕头旁边亮了一下,屏幕的光在天花板上投出一小片晃动的亮斑。他没翻身,就那么看着那片光自己暗下去。
明天中午之前给答复。周总说的是中午。
可现在已经过了零点。
第六章 竞对的邀约
咖啡馆开在一条不太起眼的巷子里,门口只挂了一盏暖黄色的壁灯,光线刚好照亮一块手写的木牌菜单。
林澈比约定时间早到了十分钟。他挑了靠里面的一张桌子,背对着墙,能看见门口进来的人。这个习惯是三年数据分析工作留下来的——先观察,再判断。
孙总比他想象中年轻,穿一件深灰色的圆领毛衣,外面套着薄款羽绒服,没有拎公文包,只在腋下夹了一个牛皮纸文件袋。进门后他扫了一圈,径直朝林澈走过来,伸出手。
“林澈?我是孙正明。”
“孙总好。”
两人握了手。孙正明拉开椅子坐下,翻开菜单看了两眼,自己去吧台点了一杯美式。回来的时候把文件袋往桌上一放,开门见山。
“我就不绕弯子了。你那篇博客我看了三遍,里面关于用户分层权重衰减那段的思路,跟你们公司后来上线的模型一模一样。陈总监在行业群里分享过PPT,数据结果对得上,但算法逻辑那一页明显跳过了关键步骤。我当时就觉得奇怪,后来在技术社区搜到了你的原始推导。”
林澈没接话,只是端着自己的水杯喝了一口。
孙正明笑了笑,从文件袋里抽出一张纸,正面朝上推过来。那是一份打印出来的录用意向书,抬头是“数据总监”,下面列了几行数字。林澈扫了一眼,年薪八十万,股权部分写的是“期权池授予,具体比例面谈”。
“你前东家那边的情况,圈子里多少有些风声。”孙正明右手握着杯子,食指在杯壁上轻轻敲了两下,“客户那边在闹解约,他们内部解释不清模型,这事瞒不住。我不怕得罪谁,这个行业最终靠技术说话。你过来,团队归你搭,预算你定,直接向我汇报。”
林澈把那张纸转了个方向,顺着看了一遍,然后放回桌上。
“你们不怕得罪我前东家?”
孙正明笑出了声,声音不大,但能听出是真觉得这问题有意思。“他们先不仁,还指望别人讲义气?”他把杯子往前推了推,身子微微前倾,“林澈,我看过你博客里所有的推导笔记。一个真正做技术的人,藏不住。你在那边三年,升不上去,奖拿不到,连名字都被抹掉,这个状态换个环境就能改。我不许诺你别的,就一条——你的东西,署你的名。”
咖啡的香气在两人之间绕了一圈。林澈低头看着杯子里剩下的半杯水,水面映着顶灯的光,晃了一下。
“给我三天时间。”
“行。”孙正明站起来,把文件袋重新夹到腋下,“三天后你联系我,不管来不来,我这杯咖啡请了。”他走到门口又回头,补了一句,“对了,你的博客别删,我让团队的人先看看,以后开会方便对接。”
他推门出去,门上的铃铛响了一声。
林澈独自坐了一会儿,把那杯没动过的水喝完,起身离开。巷子里路灯稀疏,风从两栋楼之间的缝隙灌进来,他缩了缩领口,掏出手机准备叫车。屏幕刚亮,一个电话就切了进来。
来电显示是“赵敏”。
他接起来,那边先是一阵沉默,然后赵敏的声音压得很低,像是怕被人听见。
“林澈,你现在方便说话吗?”
“方便,你说。”
“年会的评审原始记录,我留着。”赵敏顿了一下,像是在组织措辞,“当时周总临时改了名单,原定名单上你的名字在第一位,他让重新打一份,把王鹏换上去。我留了改之前的版本,邮件和打印记录都有。”
林澈站在巷子口,一辆车从面前开过去,车灯扫过墙面又消失。
“为什么留着?”
“当时觉得不对。”赵敏的声音很平,“你那个模型上线之后留存涨了多少,我们运营看得最清楚。陈总监汇报的时候我就在旁边,他连数据周期都说不明白,全靠PPT上的图在撑。我留着这些东西,想着万一哪天有人问起来,总得有个对证。”
林澈没有马上回应。他想起年会上赵敏宣读名单时的表情,站在话筒前,声音平稳,脸上带着职业化的微笑,没有任何异常。可她把那份原始记录存了下来。
“你需要的话,我现在就可以发给你。电子版和扫描件都有。”
“先不用发。”林澈说,“你留在自己手里,别让其他人看到。”
赵敏应了一声,又补了一句:“公司现在很乱。今天下午客户那边发了正式解约函的草稿,周总在会议室摔了本子。陈总监推说是数据源出了问题,但没人信。”她停了一下,“你那边有新的打算吗?”
“三天后告诉你。”
“好。”赵敏没有再追问,“保持联系。”
电话挂断后,林澈没有立刻叫车。他把手机揣回兜里,沿着巷子往前走。巷口是一家关了门的五金店,卷帘门拉到底,只留下一盏昏黄的路灯照着台阶。他坐在台阶上,把刚才赵敏说的话重新捋了一遍。
评审原始记录,改之前的名单,邮件和打印记录。这些东西如果拿出来,足以证明那个奖从一开始就不该给王鹏。但证据归证据,公司已经把他排除在外,一张纸改变不了他离职的事实。真正有意思的是赵敏的态度——她主动提起这件事,说明她也看明白了,继续留在那里没有出路。
手机又震了一下,是苏瑶发来的消息。
“今天赵敏在办公室里跟陈总监吵了一架,好像是为了什么记录的事。你还好吗?”
林澈盯着屏幕看了几秒,打了四个字:“我没事,谢谢。”
发完之后他把手机调成静音。台阶上的风吹得后颈有些发凉,他站起来拍了拍裤子,走到路边拦了一辆出租车。
坐进后座,司机问去哪儿。他报了自己小区的名字,然后靠在椅背上,看着车窗外的街道向后掠去。路灯一盏接一盏地闪过,像倒带一样。
脑子里有两个画面交替出现:一个是孙正明推过来的那张录用意向书,上面写着“数据总监”;另一个是赵敏电话里那句“我留了改之前的版本”。
车在一个红灯前停下来。林澈透过车窗看着对面楼顶的广告牌,上面是一行白色的大字,具体内容他看不清,但那片光映在玻璃上很亮。
他忽然想起一件事——那份评审原始记录,如果真的在赵敏手里,那就不只是用来跟周总谈判的筹码。模型是他做的,署名本该是他的。如果公司最后不得不承认这一点,那意味着他离开之前,得先拿回自己的东西。
出租车重新启动,拐进小区外面的那条路。林澈掏出手机,翻到孙正明的号码,没有拨出去,只是存进了通讯录。
三天。三天之后,有些事该做个了断了。
第七章 陈总监的第二次登门
第二天上午十点,林澈正在阳台上晾衣服,手机响了。来电显示是陈总监的号码。
他盯着屏幕看了三秒,接起来。
“林澈,在家吗?我过来找你聊聊,方便吗?”陈总监的语气比平时低了一个调,那种惯常的圆滑收得干干净净,剩下的是刻意的诚恳。
“有什么事电话里说吧。”
“电话里说不清楚。我已经到你小区门口了,你给门卫说一声。”
林澈没立刻回答。他想起上次陈总监用这种语气跟他说话,是三个月前要模型源文件的时候。那时候陈总监说“你办事我放心”,然后把文件拷走,此后再没在公开场合提过林澈的名字。
“你等一下。”林澈挂了电话,给门卫发了条消息。
十分钟后,陈总监坐在了他出租屋的沙发上。茶几上放着两杯白开水,陈总监没碰杯子,双手交扣放在膝盖上,像个来谈业务的客户。
“林澈,昨天周总回去之后,一晚上没睡好。”陈总监开口,“客户那边已经给了最后期限,周五之前必须给出一份能跑通的技术说明和优化方案。现在全公司没人能顶上。”
“王鹏不是突出贡献奖得主吗?”林澈端着水杯,语气很平。
陈总监干笑了一声,没接这个茬。他沉默了几秒,忽然换了一副表情,肩膀松下来,整个人看起来疲惫了许多。
“我承认,那个奖的事,我有私心。”他说得很慢,像是每个字都在秤上过了才肯放出来,“汇报的时候只写了我自己的名字,后来奖金名单出来,我也没帮你说话。这点我不推。”
林澈没有接话,只是看着他。
“但林澈,公司现在确实到了坎上。周总说了,只要你肯回去,领域直接汇报给他,跳过我去。奖金翻倍,五十六万,一次性补发。之前那二十八万也补给你。署名的事,下个季度的技术成果发布会,你来主讲。”
陈总监说完,从包里掏出一份打印好的文件,放在茶几上推过来。上面是打印好的补偿方案,盖了公司公章。
林澈扫了一眼那张纸,没拿起来。
“王鹏那二十八万呢?”他问。
陈总监的表情顿住了。他端起水杯喝了一口,喉结动了一下。
“那个……王鹏的情况不一样。奖金已经发出去了,财务那边走完流程了,追回来比较麻烦。”
“麻烦在哪儿?”
“这个……制度上确实存在操作空间,但需要周总特批,还要走合规审查,拖的时间会比较久。”
林澈靠回沙发背上,看着陈总监的眼睛。他没说话,就那么看着。客厅里安静得能听到冰箱压缩机的嗡嗡声。
陈总监终于扛不住这种沉默。他往前倾了倾身子,压低声音说:“林澈,我跟你说句实话。王鹏那钱,周总的意思是先不动。客户的事解决了,后面奖金再走其他渠道补给你,数目上不会让你吃亏。”
“其他渠道。”林澈重复了一遍这四个字。
“对,公司在这方面有灵活处理的……”
“陈总。”林澈打断他,“你刚才说你有私心。我就问一件事——当初汇报会上,你拷走我源文件的时候,你想过这个模型是谁做的吗?”
陈总监的手指攥紧了杯子。
“模型我可以远程教你们的人,把逻辑和参数配置写清楚,你们照着跑就行。”林澈站起来,走到窗边,背对着陈总监,“但我不回去。”
身后是长久的沉默。林澈能感觉到陈总监的目光钉在自己背上。
“你不再考虑考虑?”陈总监的声音发紧,“五十六万不是小数目。”
“是不少。”林澈转过身,“但你回去告诉周总,钱的事,跟他之前处理这件事的态度没关系了。我不回去,是因为我看清楚了,留在那儿做多少东西都一样,最后署名的人不会是我。”
陈总监站起来,脸色很难看。他拿起茶几上那份补偿方案,折了两折塞回包里,动作有些用力,纸张折出了明显的褶皱。
“林澈,你把事做绝了。”他说了一句,走到门口换鞋。
“是你把事做绝的。”林澈站在客厅中间,声音不高,“那份评审记录,赵敏手里有改之前的版本。你回去问问周总,他知不知道。”
陈总监的手停在门把上。他回过头,眼神里有一瞬间的慌乱,但很快压了下去。
“什么评审记录?”
“你清楚。”
陈总监盯着他看了两秒,拉开门走了出去。楼梯间里传来快速下楼的脚步声,越来越远。
林澈关上门,回到沙发上坐下。茶几上陈总监那杯水还满着,杯壁凝了一层细密的水珠。他拿起杯子,把水倒进了厨房水槽。
手机屏幕亮了一下,是苏瑶发来的消息:“陈总刚才回公司了,脸色特别难看,在周总办公室摔了门。”
林澈拿起手机,打了几个字:“他来找过我了。”
苏瑶很快回复:“你答应回去了?”
“没有。”
那边显示正在输入,持续了很久,最后跳出来一行字:“我觉得你做得对。”
林澈看着这五个字,没有回复。他把手机放在茶几上,走到阳台。楼下的花坛旁,陈总监正站在车门前打电话,一只手叉着腰,另一个手举着手机,隔着十几层楼也能看出他动作里的焦躁。
电话打了很久。陈总监拉开车门坐进去,车子发动,倒出车位,驶出了小区大门。
林澈回到客厅,打开笔记本电脑。屏幕上跳出几十封未读邮件,最上面一封的发件人是孙正明,时间是昨晚十一点,主题只有两个字:“等你。”
他没有点开邮件,而是新建了一个空白文档,开始敲字。手指在键盘上快速移动,屏幕上出现一行行技术架构的描述和参数定义。这是模型的核心逻辑,用最精简的方式写出来,保证任何有基础的人都能看懂。
写到一半,他停下来,盯着屏幕想了想,在文档最上方加了一行标题——
《用户增长分析模型技术说明(对外版)》。
保存,关电脑。林澈站起来活动了一下肩膀,走到阳台上深深吸了口气。秋天的空气干燥清凉,远处的写字楼群在午后的阳光里泛着冷白色的光。
手机再次响起。这一次是个陌生号码。
他盯着那串数字,没有立刻接。响到第六声的时候,他按下了接听键。
“喂,林澈吗?我是王鹏。”
电话那头的声音有些含糊,像是喝过酒,又像是一整夜没睡。
“有事?”
“我想跟你见一面。就今晚,你定地方。”
林澈握着手机,看着楼下那条陈总监刚才驶过的路。
“行。”他说了一个字。
第八章 王鹏的慌张
王鹏选的地方是城中村边上一家露天烧烤摊,塑料桌椅摆在人行道上,头顶拉着几串彩色灯泡,烟雾混着孜然味飘在半空。林澈到的时候,王鹏已经坐在最角落的位子上,面前摆着六瓶啤酒,开了两瓶,一瓶快见底了。
“来了,坐。”王鹏抬头看了他一眼,眼睛布满血丝,身上的卫衣皱巴巴的,跟年会上那套定制的深蓝西装判若两人。
林澈拉开椅子坐下,没碰酒。老板过来问加什么,他点了两串馒头片。
王鹏给自己又倒了一杯,端起来灌了一大口,放下杯子的时候发出“咚”的一声,啤酒沫溅到桌面上。“我知道你看不起我。”他开口就是这句,舌头有点大,声音压得很低,像怕被隔壁桌听见。
“我没看不起你。”
“你有。”王鹏摆摆手,“全部门都有。我业绩什么样我自己清楚,KPI排倒数第三,写的周报陈总监看都不看。但你那个模型,汇报的时候我在场,陈总监从头到尾没提你一个字,周总问是谁做的,陈总监说‘我们团队集体攻关’。”
林澈拿起一串馒头片,慢慢嚼着,没接话。
王鹏又灌了一口酒。“年会前三天,周总把我叫到办公室。他说今年数据线要树个标杆,问我愿不愿意‘配合一下’。我当时没听懂,他就直说了,说那个突出贡献奖的名单他来定,我拿钱,对外别提具体做了什么,就说是‘统筹协调团队资源’。我当时——”
他停下来,伸手去够酒瓶,手抖了一下,瓶子晃了晃被林澈伸手扶住。王鹏看了他一眼,收回手,声音更低了:“我当时想的是,这钱不拿白不拿。我一个月工资才一万出头,二十八万够我两年不吃不喝。周总说‘给你就拿着’,我就拿了。”
林澈放下馒头片,把手上的油渍用纸巾擦干净。“你找我,就为了说这个?”
“我退你钱。”王鹏从兜里摸出手机,屏幕解锁的时候手滑了两下,点开银行APP,“我卡里还有二十一万多,剩下的我分期给你,三个月之内凑齐。你别追究了,行不行?周总今天开会拍了桌子,说如果客户解约,第一个拿我开刀。我女朋友还不知道这事,她以为我今年发了年终奖还打算跟我去看房子——”
“王鹏。”林澈叫了一声他的名字。
王鹏的手指停在手机屏幕上,抬起头。
“你拿的这二十八万,是我三个月的时间。”林澈的声音很平,没有起伏,“我每天凌晨两点睡,早上七点到公司,数据清洗跑了十七遍,光参数调试就做了四轮。你告诉我,多少钱可以把三个月买回来?”
烧烤摊的老板端着一盘烤韭菜从旁边走过,铁盘冒着热气。王鹏的手垂下去,手机屏幕暗了。
“我不是在跟你要钱。”林澈说,“那笔钱你拿了就拿了,我不追究你。因为追究你没用,你也只是被人推出来的棋子。”
王鹏张了张嘴,没发出声音。他的眼睛慢慢红了,不知道是酒劲还是别的什么,低下头,额头几乎抵到桌沿。“那你要我怎么做?”
“你不用怎么做。回去把陈总监和周总怎么交代你的事,原原本本写下来,发给我。不用签字不用盖章,就写你记得的。”
“你要这个干什么?”
“用。”林澈站起来,从兜里掏出二十块钱压在啤酒瓶下面,“馒头片我请了。你别再喝了,叫个代驾回去。”
他转身走了两步,王鹏在后面喊了一声:“林澈!”
他停住,没回头。
“对不住。”
林澈没接这句话,迈步走进了巷子里的阴影。
回出租屋的路上,手机震了一下。他以为是王鹏发来的转账,点开一看,是赵敏的邮件。主题很简单:“你要的东西。”没有正文,只有一张图片附件。
他站在路灯下打开图片。是一份评审记录扫描件,日期是年会前两周,抬头写着“突出贡献奖候选人评审”。名单上有三个人,第一行是他的名字,后面跟着“用户增长分析模型独立开发及落地”,备注栏里有一行手写字:“该模型使季度留存率提升12%,建议优先。”
在这行字的右侧,有人用红笔划了一道粗线,把“林澈”两个字划掉了,旁边写着“调整”两个字。再往后翻一页,是修改后的版本,第一行变成了王鹏,备注栏里的文字被替换成“统筹团队完成用户增长模型优化,协调跨部门资源”。
最下方签字栏里,周总的签名压在日期上,笔迹有力,签在“调整”二字正下方。陈总监的签名稍小一些,紧挨着周总后面。
赵敏在图片下方加了一行文字:“评审记录原件的扫描件,我留了备份。周总要求原件销毁,但HR留档不能随便删,这份是存档时的复印件。”
林澈把图片保存到手机里,截图备份了一份到网盘。他站在路灯底下,把那张图放大看了第二遍。周总签字的那一栏,红色签字笔的笔迹从纸张背面透过来,洇进纤维里,擦不掉。
他锁了屏,继续往家走。走到小区门口的时候,手机又响了,是苏瑶的电话。
“你见到王鹏了?”苏瑶的声音有点急,“他刚才发了条朋友圈,说‘做错事总得认’,配了张烧烤摊的照片,周总看到了,在群里问谁在外面喝酒。”
“见到了。”
“他说什么了?”
“他承认奖不该拿,想退钱给我。”
苏瑶沉默了几秒。“那你收了吗?”
“没有。”
“为什么?”
林澈推开单元门,楼道里的声控灯亮了。“他拿钱是周总让拿的,退给我算怎么回事。这事从头到尾跟他关系不大,他就是被塞了钱的那个。”
苏瑶在电话那头轻轻叹了口气。“陈总监今天走的时候,在电梯里跟我说了一句话。”
“什么?”
“他说‘林澈这次是真不打算回来了’。他说话的时候手在抖。”
林澈走到家门口,摸出钥匙。“苏瑶,我问你个事。”
“你说。”
“当时名单改的时候,你是不是看到了。”
电话那头安静了很长时间,长到林澈以为她挂了。楼道里的声控灯灭了,他站在黑暗里等。
“看到了。”苏瑶的声音很低,“公示前一天下午,我在赵敏的电脑上瞥了一眼。当时我以为周总另有安排,而且……而且那时候我们刚分手不久,我不知道怎么跟你开口。”
“知道了。”林澈拧开门锁,推门进屋,“就这样。”
“林澈——”
“我先挂了。”他按断通话,把手机扔在鞋柜上。
屋子里黑着灯。他在玄关站了一会儿,走过去打开电脑,新建一个文件夹,把赵敏的邮件和王鹏准备写的材料放进去,想了想,又把文件夹的名字从“证据”改成了“说明”。
做完这件事,他坐到沙发上,闭上眼。陈总监走的时候手在抖,王鹏低着头说“对不住”,周总的红笔划掉了他的名字,又签上自己的名字。这些画面叠在一起,像模型里乱序的数据表,需要重新排序。
排序的规则他已经想好了。
明天周总要见他。
第九章 最后的谈判
周总的办公室在十七层,落地窗正对着城市东边的写字楼群。林澈到的时候,秘书已经等在电梯口,没让他刷卡,直接引进去。
门推开,周总坐在沙发上,面前的茶盘刚烧开,水汽从壶嘴里细细地冒出来。他抬头看了林澈一眼,脸上挂着一个林澈从没见过的笑容。
“坐。”
林澈在对面坐下,没动茶几上的杯子。
周总亲自给他倒了一杯。“这几天休息得怎么样?”
“还行。”
“那就好。”周总把杯子朝他那边推了推,“公司这几天乱了套,你应该也听说了。客户那边咬住不放,说模型跑不动,数据对不上。陈总监过去解释了两回,人家直接把他轰出来了。”
林澈没有接话。
周总端起自己那杯抿了一口,放下,身体微微前倾。“林澈,咱们打开天窗说亮话。这个模型,从头到尾是你做的。年会上那个安排,是公司层面的考虑,不完全是陈总监的意思。”
“我知道。”林澈说。
“你知道就好。”周总点点头,像是松了口气,“所以我今天找你,不绕弯子。你开条件。奖金、职位、股份,只要在合理范围内,我都可以拍板。”
林澈看着茶几上那杯茶,茶叶在杯底蜷着,没有舒展开。他从随身的公文包里取出一个文件夹,放在茶几上,手指压着封口。
“我不需要条件。”他把文件夹翻开,里面是几张打印纸,第一页是一份评审记录,上面有赵敏的签字,还有一封邮件截图的打印件,发件时间是年会前三天,内容涉及到奖金名单的初审通过。第二页是王鹏写的材料,字迹潦草,但每一行都能看清。
周总的目光落在那几张纸上,笑容一点点收了起来。
“我只要你们承认那个模型是谁做的。”林澈说,“公开承认。”
办公室里安静下来。空调出风口的声音变得格外清晰。周总盯着那份评审记录,上面赵敏的签字他很熟悉,那是他签字前必须过的一道流程。他沉默了很久,手搁在膝盖上,指尖轻轻敲了两下。
“公司可以发补充公告。”他终于开口,“把模型的归属说明一下。这个我可以安排,明天就能发。”
林澈摇头。
周总皱起眉。“这还不够?”
“公告要写清楚陈总监在项目中的实际角色。他没有参与算法设计,没有写一行核心代码,汇报的时候把我的名字去掉了。”林澈的语气很平,像是在陈述一份数据报告,“另外,王鹏拿的二十八万,要退。”
周总靠回沙发里,端起茶杯喝了一口,杯口碰到嘴唇时停了一下。“你不要太过分。”他说,声音沉下来,“陈总监跟了我四年,技术团队是他一点点搭起来的。你要我为了一个模型把他辞了?”
“我没说要辞他。”
“那你什么意思?”
“我说的是公告要写实际角色。”林澈把文件夹合上,手指按在封面上,“至于公司怎么处理他,是你们的事。但王鹏那笔钱,不该他拿。”
周总放下杯子,杯底磕在茶盘边缘,发出一声脆响。“林澈,你有没有想过,圈子就这么大。你今天把事做绝了,以后……”
“以后怎么?”林澈抬起头,看着周总的眼睛,“以后我做的模型再被人拿走,再被划掉名字,然后等人来跟我谈条件?”
周总的脸色沉下来,嘴角绷成一条线。他拿起那份评审记录,翻到第二页,看了一遍王鹏写的材料,又翻回第一页。纸张在他手里发出轻微的响声。
“如果我不答应呢?”他问。
“那就没得谈。”林澈站起来,把文件夹收回包里,拉上拉链。动作很利落,没有停顿。他转身走向门口,手放在门把上。
“林澈。”周总在背后叫了一声。
他停下来,没回头。
“那笔钱……王鹏那边,我让他退一半。”周总的声音从背后传来,带着一种压着的妥协,“公告我让赵敏写,内容你过目。陈总监那边,我批评他,你要的面子我给你,行不行?”
林澈握着门把手,金属的凉意透过掌心传上来。他想起赵敏那封邮件里“奖金最终解释权归公司所有”的条款,想起陈总监汇报时屏幕上只打了一个名字,想起王鹏在台上举着奖牌笑得一脸麻木。
“周总,”他侧过身,只露出半张脸,“我不是来要面子的。”
他拉开门,走出去。
走廊里很静,地毯把脚步声吸得干干净净。他沿着过道往电梯方向走,拐过茶水间的时候,看见苏瑶靠在墙边,手里捧着一个纸杯,杯口的热气已经散得差不多了。
她站直了身子。“谈完了?”
“谈完了。”
“决定了?”
林澈点头。
苏瑶看着他,嘴唇动了动,像是想问什么,最后只是把纸杯扔进旁边的垃圾桶。“我送你下去。”
两人并肩走向电梯。走廊两侧的工位空荡荡的,这个时间大部分人都在开会。经过技术部开放区的时候,林澈瞥了一眼自己坐了三年的位置,显示器歪着,桌上多了一个陌生的水杯,杯身上印着某家客户的logo。
苏瑶按了下行键,电梯门打开,两个人走进去。密闭的空间里,她身上的茉莉味洗发水味道很明显,和半年前一样。
“你打算什么时候走?”她问。
“手续办完就走。”
“那边定了?”
“还没签,谈得差不多了。”
苏瑶看着不断跳动的楼层数字,声音很轻。“当时名单改的时候,我真的应该告诉你。”
“嗯。”
“对不起。”
电梯到了底层,门缓缓滑开。大堂里人来人往,前台的电话铃响个不停。林澈往前走了两步,又停下来,转过身。
“苏瑶。”
“嗯?”
“你不用辞职。”他说,“该走的人不是你。”
苏瑶愣了一下,随即笑了一下,那个笑容里有一些释然,也有一些别的什么。她点点头,没再说话。
林澈转身走出大门,外面的阳光照在脸上,秋天的风带着干爽的凉意。他掏出手机,翻到早上存的一个号码,拨出去。
响了两声,对面接起来。
“孙总,我是林澈。你上次说的那个位置,我想去看看。”
电话那头传来一个爽快的声音,说了几句什么,林澈应了两声,约好了时间。他挂断电话,站在公司大楼前的台阶上,抬头看了一眼十七层那扇落地窗,玻璃反射着灰白色的天光,看不清里面的任何东西。
他把手机装进口袋,走下台阶,汇入人行道上的人流里。步子比来时快了很多。
第十章 离职那天
离职手续约在下午两点。
林澈到公司的时候,大部分同事还在午休。他刷了门禁卡,闸机发出轻微的滴声,前台的小姑娘抬头看了他一眼,认出是他,又低下头继续刷短视频。走廊里空荡荡的,工位上零星坐着几个人,有人抬头看见他,视线跟了几步,又缩回去,假装看屏幕。消息大概已经传开了。
赵敏的办公室在人力资源部最里面,门半开着。林澈敲了两下门框,赵敏抬头,冲他点了下头,示意他进来坐。
“东西都收拾好了?”赵敏从文件夹里抽出一张表格,放到他面前。
“没什么好收拾的。”
“电脑和工牌带了吗?”
林澈把工牌从脖子上取下来,连同一台贴着编号标签的笔记本电脑一起放在桌上。赵敏看了一眼,在表格上勾了两笔。
“流程走完大概需要四十分钟。你先把这个签了。”她递过来一支笔,指着表格最下方一行,“离职申请书,日期填今天。”
林澈坐下来,逐行扫了一遍表格内容,确认没有竞业限制之外的附加条款,才签上自己的名字。赵敏接过表格,在电脑上敲了一阵键盘,又打印了几张纸递给他签字确认。整个过程安静、程序化,像一台运转正常的机器在处理一个标准件。
“社保和公积金下个月十五号之前会做减员,工资结算到下周五。”赵敏头也不抬地翻着文件,“年假还剩三天,折算成工资一起发。”
“好。”
赵敏顿了一下,扫了一眼门外,压低了声音。“公司明天会发内部公告。”
林澈抬眼看她。
“关于用户增长分析模型的归属问题,会承认你是主要贡献者。”赵敏说这话的时候,表情没有太大变化,但语速比刚才慢了一些,“周总在昨天的管理层会议上拍了板。具体措辞我还没看到,但大方向定了。”
林澈没说话。
“这算是我能做的了。”赵敏合上文件夹,语气里有一丝不易察觉的疲惫,“年会那会儿的奖金分配表,我其实……”
“我知道。”林澈打断她,“你也是照上面的意思办。”
赵敏沉默了几秒,点点头,站起来伸出手。“那就祝你顺利。离职证明我去给你拿,你在这等一下。”
她推门出去。林澈一个人坐在椅子上,看着办公室墙上贴的员工行为准则海报,右下角印着公司的口号,“让数据创造价值”,字体加粗。他盯着那行字看了一会儿,没什么特别的感受,脑子里在想孙总昨天发来的那封邮件——新公司的技术架构文档,问他要不要提前看一下。
大概七八分钟后赵敏回来了,手里拿着一张对折的A4纸,递给他。“离职证明,你收好。”
林澈接过来,展开看了一眼。上面盖着公司的鲜章,措辞标准,没有任何多余的话。他把纸折好,放进外套内侧口袋里。
“个人物品别忘了。”赵敏最后提醒了一句。
“没有个人物品。”
他站起来,跟赵敏握了一下手,走出人力资源部的门。走廊里比来时多了几个人,技术部的小刘端着水杯迎面走过来,看到林澈,步子明显慢了一拍,张了张嘴,最后只说了一句:“澈哥,走了啊。”
“嗯。”
“那……回头聊。”
林澈点头,没停步。他沿着走廊往电梯方向走,经过开放办公区的时候,余光里能感觉到好几道视线追着他。有人凑在一起低声说着什么,他没有去看,也没有去听。三年的时间,最后走这一段路只用了不到一分钟。
电梯来了。门打开,里面站着陈总监。
两个人对视了一瞬。陈总监手里拿着一叠打印材料,另一只手插在裤兜里,脸色比前几天憔悴了不少,眼袋明显,衬衫领口有一圈不太明显的汗渍。
林澈走进电梯,按了一楼。门缓缓合上。
沉默了两层楼,陈总监先开了口。他盯着电梯门上的楼层指示,声音不高。“你真狠。”
林澈侧过头看他。
“那个评审记录——半年前的项目会议记录,你居然留了截图。”陈总监转过头来,嘴角扯了一下,不是笑,“做事留一手,我小看你了。”
“你抢我东西的时候,没觉得狠。”林澈说。
电梯里安静了。楼层数字往下跳,到了五层的时候,陈总监又开口,这次语气变了,像是想解释什么。“当时周总那边需要一个典型,你又不主动汇报……”
“所以就把我的名字换成王鹏的。”
“不完全是——王鹏自己也有争取。”
“嗯。”林澈点头,“你们都有理由。”
陈总监张了张嘴,最终没再说什么。一楼到了,门打开,林澈先走出去,身后没有脚步声跟上来。他走出闸机口,穿过大堂,推开了玻璃大门。
外面的空气比楼里清爽。门口的花坛边上蹲着一个抽烟的男同事,看到林澈出来,愣了一下,掐了烟站起来,含糊地叫了声“澈哥”,林澈冲他点了下头,继续往前走。
走出十几步,身后传来高跟鞋急促的嗒嗒声。
“林澈!”
他停下来,转过身。苏瑶从旋转门里追出来,手里拎着一个纸袋,头发被风吹得有些乱。跑到他面前,喘了两口气,把纸袋递过来。
“你桌上的东西,我帮你收了一下。一个U盘,还有那个笔记本——你以前记录用的那个。”
林澈接过来,打开看了一眼。里面是那支用了三年的旧钢笔,和不记得什么时候落在公司的一本技术笔记。U盘应该是他备份用的那个,银灰色的壳子,已经有些磨损了。
“谢谢。”
苏瑶看着他,喘匀了气。“你明天真的不来公司了?”
“不来了。”
“那边——竞对那边,定下来了?”
“下周入职。”
苏瑶点点头,垂下眼,看着自己的鞋尖。两个人站在人行道上,旁边是来来往往的行人,有人绕过他们,匆匆走过。秋风吹得路边的银杏叶打着旋往下掉。
“我送你到地铁站。”苏瑶说。
林澈没拒绝。两个人沿着人行道慢慢走。走了一段,苏瑶开口,声音比平时低一些。“你走之后,部门里可能会有些调整。陈总监那边——”
“不用跟我说这些了。”林澈打断她。
苏瑶看了他一眼,把后半句话咽了回去,过了几秒才说:“以后还是朋友吧?”
“嗯。”林澈点头,“你保重。”
地铁站的入口就在前面,蓝色的标识牌在夕阳下有些反光。林澈在进站口停下来,苏瑶也停了。她站在原地,手垂在身侧,风吹起她额头前的碎发,她没有去理。
“那……再见。”
“再见。”
林澈刷码进站,扶梯缓缓往下送。他没有回头。下到站厅层的时候,手机震了一下,是苏瑶发来的一条消息,只有三个字。
“对不起。”
他看着屏幕,想了几秒,打了两个字回过去。
“收到。”
然后他退出对话框,打开孙总的那封邮件,点开附件,开始看那家新公司的技术架构图。
地铁来了,他走进去,找了一个角落的位置坐下来。手机屏幕的光映在他脸上,车厢里报站的女声清晰而机械。列车启动,加速,隧道里的灯一闪一闪地掠过车窗。林澈靠在椅背上,看着文档里那些熟悉的术语和陌生的架构,手指在屏幕上缓慢地滑动着。
手机又震了一下。
是赵敏的短信:公告已经定稿了,明天早上八点全员邮件发送,抄送全公司。你那边方便的话,可以关注一下。
他回了一个字:好。
然后他锁了屏,抬头看了一眼车窗上映出的自己的脸。隧道灯光忽明忽暗,那张脸跟着闪了两下,最终融进车厢里大片大片的白光里。他闭上眼睛,想起孙总在咖啡馆说的那句话——“我需要的不是一颗螺丝钉,是一个能把模型讲清楚的人。”
地铁继续往城市的另一头开去,车厢里安安静静的,只有轮轨摩擦的声响,均匀地回荡在长长的隧道里。
第十一章 新工位的第一天
**第11章《新工位的第一天》**
电梯在十七层停下,门打开,前台背景墙上是一行深灰色的字:“数衡科技”。孙总已经在电梯口等着了,穿了一件深蓝色衬衫,袖子挽到小臂,比上次在咖啡馆见面时随意许多。
“欢迎。”孙总伸出手,和林澈握了一下,力道很实,“走,先带你转转。”
办公区是开放式布局,工位之间没有隔断,几块落地窗把上午的光线整片整片地引进来。孙总走得快,边走边介绍:“这边是算法组,那边是产品,运维在最里面。你手下暂时三个人,下周还会到两个。”
林澈点头,目光扫过工位上那些陌生的面孔。有人抬头看他,有人继续敲键盘。
走到靠窗的一排工位前,孙总停下来,拍了拍手。附近几个脑袋抬起来。
“给大家介绍一下,这位是林澈,我们新的数据总监。”孙总的声音不高,但很清晰,“之前网上那篇用户增长分析模型的博客,你们有些人应该看过。那个模型就是他做的。”
一个戴圆框眼镜的男生愣了一下,脱口而出:“那篇博客我看过三遍,留存率优化那部分写得太漂亮了,我一直以为作者是个团队。”
“是一个人。”孙总笑了笑,看了林澈一眼,“现在他是我们的人了。”
圆框眼镜男生站起来,绕过工位走到林澈面前,伸出手:“我叫方远,算法组的。你那篇博客里关于用户分层的那段,我照着复现过,效果比我预期的好很多。”
林澈和他握了手。方远的手心有点汗,握得用力。“谢谢,”林澈说,“复现的时候如果遇到问题,可以找我聊。”
孙总在旁边看着,没插话,等他们松开手才说:“方远是你组里的,另外两个在会议室开会,待会儿介绍你认识。”
林澈领了电脑和工牌。工牌上印着他的名字和“数据总监”四个字,照片是入职流程里现场拍的,光打得有点白,看起来比他本人年轻几岁。他把工牌挂上脖子,坐到自己的位置上。
工位靠窗,窗外是隔壁写字楼的玻璃幕墙,映着对面一片住宅区矮矮的楼顶,远处有一条河,灰色的水面上浮着几艘运沙船。桌上的电脑是崭新的,键盘膜还没撕,旁边放着一本空白笔记本和一支笔。
他撕掉键盘膜,开机。电脑登录的间隙,方远从隔壁工位探过头来:“林总,你之前那个模型是在上一家公司做的?”
“嗯。”林澈应了一声,没有展开。
方远似乎察觉到什么,没再追问,缩回去继续敲代码。
下午两点,孙总把林澈叫进办公室,扔给他一份文档。“这是推荐算法目前的架构,流量不小,但效果一直卡在瓶颈上。转化率上不去,用户时长也在掉。我给你两个月,你先看看能优化到什么程度。”
林澈翻开文档,快速扫了几页。架构不算复杂,但几个关键模块的逻辑有明显冗余,特征工程部分做得粗糙,冷启动策略几乎是摆设。他合上文档:“两周内给你一个初步方案。”
孙总挑了下眉:“这么快?”
“架构本身不复杂,问题在实现层面。”林澈说,“我先复现一遍现在的效果,找出瓶颈在哪。”
“行。”孙总靠在椅背上,手指点了点桌面,“对了,有什么需要直接跟我说。团队里如果有人不配合,也跟我说。”
林澈回到工位,把文档里的架构图在纸上重新画了一遍。画到第三张的时候,他把推荐模型和之前做的用户增长模型做了交叉比对,发现两者在特征提取层可以共用一套底层逻辑,只是目标函数不同。这意味着他不需要从零开始,可以把原来的核心代码抽出来,改造之后直接嵌入新的推荐链路。
思路清晰之后,他开始动手。电脑上打开了两个窗口,左边是原来的模型代码,右边是新公司的推荐架构。他把特征工程部分单独拆出来,逐行检查。代码跑起来的节奏他很熟悉,变量命名、函数结构、注释风格,都是他一个一个字符敲出来的。方远从旁边走过,看了一眼屏幕,脚步顿了一下,没说话,走到饮水机前接了杯水又回来。
“林总,”方远坐回自己工位,隔着半块挡板说,“你写代码的风格挺特别的,命名跟注释都特别规整,像教科书。”
“习惯了。”林澈继续敲键盘,“方便别人接手。”
“那倒是,”方远喝了口水,“我之前接手过一个人的烂摊子,变量全是a、b、c,连注释都没有。看了三天才搞明白逻辑。”
林澈没接话,专注在代码上。重构工作比他预想的顺利,原来的模型经过半年多的运行,已经在真实数据上验证过稳定性,迁移到新架构里只需要调整输入输出接口。他写了一段测试代码跑了一遍,结果比预期好,推荐链路的响应时间缩短了将近四成。
五点半,工位上陆续有人收拾东西准备走。方远站起来,背起包,从兜里掏出一包饼干放在林澈桌上:“林总,你要是加班的话,这个先垫垫。”
林澈看了一眼饼干,说:“不用,我一会儿就走。”
“行,那我先撤了。”方远走出几步,又回头说,“明天见。”
“明天见。”
办公室里人渐渐少了。林澈把今天重构的代码整理了一遍,存进版本库,写了当天的提交说明。他靠在椅背上,看了一眼窗外,天色暗了下来,写字楼的灯陆续亮起来,远处那条河只剩下一道模糊的暗影。
手机亮了一下,是苏瑶的微信。
“公告发了,陈总监被降职。赵敏说周总在会议上直接提了你的事。”
隔了几秒,又来一条:“王鹏的那笔钱被追回了大半。”
林澈看着屏幕上那几行字,没有马上回复。他把手机翻过去扣在桌上,继续看屏幕上的代码。又过了几分钟,他拿起手机,打了三个字发过去。
“知道了。”
发完之后他把手机装进口袋,关掉电脑,背上包。工牌还挂在脖子上,他低头看了一眼,伸手把它翻转过来,照片朝着里面。
走出办公楼的时候,晚风吹过来,带着一点河水的湿气。他站在台阶上,看着面前这条不宽不窄的马路,对面是一排亮着灯的餐馆和小店,有人骑着电动车从巷子里拐出来,后座上绑着一箱货。
他摸出手机,翻到孙总早上发的那封欢迎邮件,在手机上打开那份推荐算法文档,一边走一边继续看。走过一个路口的时候,他停下来等红灯,旁边的路人都在低头看手机,只有一个外卖骑手从车流里穿过去,消失在对面巷子里。
绿灯亮了。他收起手机,跟着人群走过斑马线,走到地铁站口,刷码进站。
扶梯往下送的时候,手机又震了一下。是方远在工作群里发了一条消息:推荐链路今天的响应时间下降了不少,是不是有人在改?
林澈看着那条消息,打了几个字回过去。
“我在做初步重构,明天同步进度。”
发完之后他退出群聊,把手机放进口袋。地铁进站的声音从隧道深处传过来,带着风和不规则的震动。他站在黄线后面,等列车停稳,车门打开,里面的人涌出来,他侧身让了让,然后走进去。
车厢里人不多,他找了个角落坐下,窗外的灯光一盏一盏地往后掠。他在心里默算了一下重构的进度,按照今天的效率,初步方案可能用不了两周,十天就够。推荐算法的瓶颈比他预想的容易解决,因为核心问题正好是他半年前研究用户增长时顺手攻克的。那些熬夜调试、反复重写的代码,此刻安静地躺在笔记本电脑里,明天还会继续跑起来。
他靠在椅背上,闭上眼睛。车厢里有节奏地晃着,轮轨摩擦的声音混着报站的女声,把他带向城市的另一头。口袋里的手机安安静静的,没有再亮。
第十二章 模型的新生
三周过得比林澈预想的快。
新公司的数据基础设施比原公司干净得多,日志完整,埋点规范,维度表设计合理,省掉了他过去大量清洗和补录的时间。他花了三天把原模型的核心逻辑重新梳理了一遍,剔除掉在旧环境里为了适配历史脏数据而加的冗余分支,又用五天完成了迁移部署。剩下的时间,他用来解决一个在旧公司一直没法解决的问题——冷启动用户的特征稀疏。
在原公司的时候,他提过两次方案,都被陈总监以“优先级不够”压了下去。现在没有这个障碍。他用了两周时间跑了十七组实验,引入了一个轻量级的侧信息编码层,让小样本场景下的预测精度提升了百分之四。这个数字放在整个大盘里不算惊人,但在冷启动那一块,几乎是翻了一倍。
他把实验报告发在项目文档里,没抄送任何人,只发了一条群消息:模型迁移完成,冷启动优化初步验证有效,数据在文档里。
当天晚上,方远在群里回了一条:这个侧信息编码的思路不错,能不能推广到其他场景。林澈回:理论上可以,需要再验证。方远说:明天周会上你讲一下。
周会安排在周四上午。会议室不大,坐了十来个人,孙总也来了,坐在长桌一角,面前摊着一个笔记本。前面几个人汇报完进度之后,方远点了林澈的名字。
林澈站起来,把笔记本连上投屏。他没有做花哨的排版,就是几张图表加几行结论。他先讲了迁移后的模型在新数据集上的表现,跟原版做了对比,然后重点讲了冷启动优化那部分。讲到侧信息编码层的时候,他停了一下,说:“这部分思路其实在上一家公司的时候就验证过,但当时没有得到采纳,所以拖到现在才真正落地。”
他没有看任何人的表情,继续往下讲,直到最后一页。讲完之后他说:“以上,欢迎提问。”
安静了两秒。方远先开了口:“采样窗口为什么选十四天而不是更短?”
林澈答了。又有两个同事问了实现细节,他一一回答。最后孙总放下笔,说了一句:“做得不错,比预期快。”
周会结束后,孙总把林澈单独叫到走廊尽头。
“你刚才说的,‘上一家公司’,就是那个用户增长模型的事?”
林澈点头。
孙总靠在墙上,看了他几秒,说:“你在那边受了委屈,我知道。今天你在会上提这个,我理解。但从今天开始,这里的人看的是你的工作,不是你的过去,明白吗?”
“明白。”
“另外,转正的事,我让HR提前走了流程,下周生效。”孙总拍了拍他肩膀,“你那个冷启动优化,下个月行业沙龙可以拿出来讲。我帮你安排。”
林澈说好。回到工位的时候,茶水间里两个同事正在低声说话,看到他走过来,其中一个稍微提高了音量,说:“欸,林澈,你之前那个公司是不是发过什么公告啊?我好像在哪个群里见过截图。”
另一个同事接话:“就是那个说模型归属修正的公告吧?我也看到了,当时还以为是假的。”
林澈拧开杯子接水,水柱打在杯壁上发出闷响。他等杯子满了,拧上盖子,说:“是真的。”
他没再多解释,端着杯子回了座位。两个同事对视了一眼,没再追问。
下午他把冷启动优化的实验记录整理成文档,补充了特征工程部分的细节,又给方远发了一份周会跟进计划。做完这些,他打开手机,看到一条陌生号码发来的短信。
号码没存,但他一眼就认出来——是周总的手机号。年会那晚,这个号码在群里发过奖金名单。
短信只有两句话:林澈,之前的事对不住,有空一起吃个饭。
他盯着屏幕看了几秒。年会那晚的冷光、王鹏上台时台下的掌声、陈总监在台上念名字时的那种毫无愧色的表情、自己站在会场门外按下关机键的那个瞬间——这些画面在脑子里过了一遍,很快,像翻书一样。
然后他按了删除键。屏幕上弹出“确认删除该对话”的提示,他点了确认。短信从列表里消失,没有存档,没有标记,没有回拨。
他把手机放下,继续看屏幕上的实验日志。光标在最后一行闪烁,他敲了一行备注:侧信息编码层在低活用户场景下的泛化能力待验证。
敲完之后他盯着那行字看了一会儿,又补了一句:下周三前完成A/B测试方案。
方远从旁边工位探过头来:“晚上团建你去不去?孙总说吃火锅。”
“去。”
“那你把模型的事再跟大家讲讲,好几个人问我。”
林澈关了电脑屏幕,从抽屉里拿出背包。他把工牌从桌上捡起来挂到脖子上,带子捋顺,照片朝外。起身的时候,他看了一眼窗外。这座城市的天际线在傍晚的光里变得模糊,远处几栋楼的灯已经亮起来了。
他跟着方远走出办公室,经过茶水间的时候,下午那两个同事正在门口穿外套,看到他,其中一个笑了笑:“林澈,晚上多吃点,你那个模型的事我们还没听够呢。”
林澈拉了拉背包带子,说:“边吃边聊。”
电梯门开了,一群人走进去。门合上之前,他最后看了一眼办公区里那一排还亮着的屏幕。有三台没关,跑着不知道谁的实验,滚动的日志像流水一样往上翻。
他从口袋里摸出手机,翻了翻。没有新消息。屏幕上干干净净的,下午删掉的那条短信没有留下任何痕迹。
电梯到了。门打开,火锅店的招牌灯从旋转门外面透进来,暖黄色的光打在一行人的肩膀上。林澈走在最后面,呼出一口气,跟着大家往外走。
第二天一早,林澈提前二十分钟到了公司。他把昨晚重新整理的数据集搬到新环境的沙箱里,跑了第一轮基线对照。笔记本风扇转得厉害,屏幕上那条损失曲线比原版平滑不少——低活用户场景的召回率高出七个百分点。他截图存进周会材料,又在备注栏补了一行:下周可同步做分群回溯验证。
周三的A/B测试方案他周一就发了出去,方远中午吃饭时端着餐盘坐过来:“孙总看了,说这周五的周会你来讲。”
周五会议室的投影仪不太亮,林澈把两版曲线叠在一张图上,指出拐点位置和样本量的关系。孙总听完只问了一句:“迁移之后推理成本有没有变化?”林澈报了数字,比原版低百分之十二。孙总点点头,转向其他人:“这个模型从搭建到优化,林澈三周做完,提前转正,流程我这边走。”
散会时几个同事围过来。有人递咖啡,有人问下一版迭代计划。角落里两个实习生小声说话,其中一个声音略高:“原来那个行业公告是真的啊,我还以为同名。”另一个回了句什么,林澈没听清,也不打算追问。他低头收拾投屏线,把电脑合上。
回到工位,手机屏幕亮了一下。那个已经删过的陌生号码又发来一条短信,前头还多了两个字:林澈,之前的事对不住,有空一起吃个饭。
他看了一眼,手指直接左滑,点了删除。这回连确认提示都没有弹——他和这个号码之间已经没有任何需要确认的关系了。
方远从隔壁探过头:“周末打球去不去?”
“去。”林澈把手机扣在桌上,拿过键盘继续敲分群回溯的脚本,屏幕上的日志一行一行往上翻,和那晚办公室没关的电脑一样,只是节奏已经完全不同了。
第十三章 王鹏还钱
王鹏还钱这件事,林澈是从赵敏那里知道的。
入职新公司第二周周三下午,林澈正对着双屏跑一组分群回归数据,手机震了一下。屏幕亮起,一条微信消息躺在通知栏里,来自赵敏。内容很短:方便的话给我个银行卡号,有个事。
林澈盯着那行字看了几秒。赵敏在上一家公司负责薪酬和奖金核算,年会那件事她全程参与,名单怎么来的、谁批的、谁被划掉,她比谁都清楚。林澈想了想,把卡号发了过去,又补了句:什么事?
赵敏没有立刻回复。直到晚上八点多,林澈下班挤进地铁,手机才再度震动——一条银行入账短信,金额二十八万整,备注栏写着“代王鹏转”。紧接着赵敏的微信也到了:王鹏让我转的,他说对不起你。钱他自己出的,没走公司账。
林澈靠在车厢门边,看着那串数字。二十八万,一分不多一分不少,正好是年会那个“突出贡献奖”的金额。地铁报站声从头顶响过,他低头打了几个字:他何必这样。
赵敏回得很快:他上周提离职了。走之前专门找了我,说是想把这笔钱还给你,但他不敢直接找你。我说那我帮你转吧。
林澈没有再追问王鹏为什么离职。他把手机揣进口袋,盯着车厢广告上方跳动的站点指示灯。之前公司那点事,他已经很少去想了。忙起来的时候根本顾不上,新公司的模型迭代排期压得很紧,他每天到工位第一件事就是看昨晚跑完的 batch 结果,日子过得简单直接。
但钱躺在账户里,总得处理。
第二天中午吃饭,林澈在楼下快餐店翻着手机银行,想了一阵。王鹏拿那笔钱的时候未必心安,还钱的时候又多了一层难堪。林澈倒不觉得这钱该是自己的——年会名单是别人定的,王鹏只是被摆上去的那个。真要追究,该追究的是拍板的人和签字的人。可王鹏主动还了,还特意挑在离职后,说明他是想划清这件事。
下午开完周会,林澈在工位上打开转账页面,输入王鹏的账号。那串数字是从赵敏之前发的聊天记录里找到的。他转了五万回去,附言写了七个字:你请团队吃饭。
点确认的时候他没犹豫。这笔钱他收下大头,算是给自己一个交代,但全拿也不合适——团队里那半年大家配合干活,王鹏也在其中,虽然出力不多。林澈想得很简单,五万够请整个部门搓一顿好的,剩下的算是王鹏自己买个教训。
转账记录显示“已到账”之后,王鹏那边没有任何动静。林澈等了一个小时,没有收到回复,也没拉黑或者删好友之类的小动作。就那样安安静静地躺着,像石沉大海。
林澈也没再管。他把剩余的二十三万拆成两份,二十万存了三年定期,三万五转进另一张卡。周末他给父母打了个电话,问了下身体状况,然后下单了两份父母体检套餐,选的是老年专项,含心脑血管和肿瘤筛查,寄到老家县城的地址。
母亲收到短信提醒是在三天后。电话打过来的时候林澈正坐在新房子的飘窗上改一份数据字典,窗外是科技园区的夜景,远处几栋写字楼的轮廓灯把天边映得灰蓝。
“澈啊,家里的银行卡上怎么多了一笔钱?”母亲的声音带着疑惑,又掺着点小心翼翼,“我跟你爸去银行查了,体检套餐也是你买的?你哪来这么多钱?”
林澈换了只手拿手机,眼睛还盯着屏幕上那个字段映射表。“年终奖发的,”他说,“上个月绩效不错。”
电话那头静了两秒。然后母亲的声音突然拔高了一截,带着一种压抑了很久终于松口气的欢喜:“年终奖?你终于熬出来了啊!”
林澈听着母亲那声感叹,没接话。母亲开始絮叨,说这两年总担心他在外面压力大,逢年过节回来也不多讲,问他累不累他说还行,问他攒下钱没有他说够花,问他在公司做得怎么样他就说老样子。“这回好了,”母亲连说了好几遍,“这回好了。”
父亲在旁边咳嗽了一声,把电话接过去,声音还是跟以前一样闷:“钱别乱花,存着。体检套餐——挺好,我跟你妈下周就去。”
“嗯,预约好了告诉我一声。”
挂了电话,林澈盯着飘窗玻璃上自己的倒影看了会儿。窗外有辆车驶过,车灯划过墙面,一闪就没了。
他确实没解释。年终奖这个说法最省事,既不用讲年会那天发生的事,也不用提那笔钱到底从哪来。母亲高兴就够了,她高兴了,这事就算是处理干净了。
周二上班,方远端着水杯经过他工位,随口问了句:“周末干吗去了?”
“给家里买了点东西。”林澈没抬头。
“孝子。”方远走了。
林澈继续敲代码。标签栏切换回模型监控面板,最新一版分群策略正在跑灰度,实时曲线贴着预期上限往上走。他点了刷新,数据流稳稳地滚动。
下午三点,一个陌生号码打进来。林澈接起来,对方沉默了几秒,才开口:“钱我收到了。那五万——”
是王鹏。
“不用说了。”林澈打断他。
电话那头又安静了。过了几秒,王鹏声音低了不少:“行。那个……我换了家公司,小平台,从头开始。”
“那挺好。”
“林澈,”王鹏顿了顿,“对不住。”
说完就挂了。
林澈把手机放回桌上,继续敲键盘。窗外有云遮住了太阳,工位暗了一瞬,屏幕上的数字反倒显得更清晰了。他又刷新了一次监控面板,曲线依然稳。
几周后,母亲发来一张照片,父亲坐在体检中心的椅子上冲镜头比了个手势。林澈把照片存进相册,没有回复什么,只是接着把手头那份关于多目标排序的文档写到了结尾。
那笔钱的事,就此彻底翻篇了。模型也好,奖金也好,过去那些账,该清的都清了。他没去看王鹏的新公司叫什么名字,也不打算知道。
现在他手头的事,只跟眼前这台跑着新数据的机器有关。
王鹏挂了电话后,林澈把手机翻了个面扣在桌上。
五万块钱退回去这事他没跟任何人提。当时转账附言里那三个字他看见了,想了想,回了句“你请团队吃饭”,然后直接点了确认。那边再没动静,对话框沉到了消息列表底部,和那些外卖优惠推送混在一起。
二十八万到账那天他先给家里转了体检套餐的钱,剩下的分了两笔存了定期。三年利率还行,他没细算,只觉得放进去踏实。这钱来得不算光彩,年会那晚他蹲在酒店后门台阶上吹了四十分钟冷风,屏幕亮起来又暗下去,最后是方远跑出来找他,说“你手机呢,总监找你”。他当时把SIM卡拔了。
这些细节像代码里注释掉的行,存在于某个版本历史里,但跑起来的程序已经看不见了。周四晚上母亲打来电话,语气里带着一种小心翼翼的试探:“澈啊,体检那个……是你付的钱?”
“嗯。”
“得不少钱吧?我跟你爸说别让你破费,你爸非说孩子一片心意。”
林澈靠在椅背上,盯着天花板上的灯管:“没多少,年终奖发了。”
电话那头安静了两秒,然后母亲的声音一下子亮起来:“真的?多少?”
“够用。”
“我就说你,”母亲语气里的笑意顺着信号传过来,他甚至能想象她转头冲父亲使眼色的样子,“熬了这么久总算熬出来了。你爸还老嘀咕,说你在外面是不是混得不好,我说不可能,咱家澈从小念书就没让人操过心……”
林澈听着,没打断。语音条一条接一条弹出来,他切到相册看了眼刚存的体检预约截图,父亲名字后面跟着“套餐B”。
等母亲说完了,他才开口:“下周体检别吃早饭。”
“知道知道,你爸念叨好几遍了。”
挂了以后手机又震了一下,是定期存款的到账确认短信。他划掉通知,打开冰箱拿了罐可乐,回到飘窗前坐下。楼下路灯亮着,有外卖骑手在小区里穿梭,车灯拉出一条断续的白线。
那五万的事他后来再没想过。王鹏换没换工作、新平台叫什么、混得怎么样,跟他没关系。有些账清了就是清了,多看一眼都是给自己添堵。
第十四章 半年后的偶遇
行业技术沙龙设在城西一家酒店的宴会厅,签到台旁边摆着几排易拉宝,上面印着各家公司的Logo和主讲人照片。林澈到得早,胸牌挂在脖子上,手里端了杯美式,站在最后一排看工作人员调试投影。孙总本来要一起来,临时被投资人叫走,发消息让他“多认识几个人,别光杵着”。
他没怎么主动搭话,但来打招呼的人不少。新公司这半年在业内声量起来了,用户增长模型的迁移版本上个月拿了行业榜单的提名,他的名字跟着挂在了技术博客的首页。有两个人过来加微信,一个做数据中台,一个在FA机构,话里话外想探探模型的具体架构。林澈客气地绕开了技术细节,只说“公开版报告里写了七成,剩下三成吃饭的时候聊”。
第三位主讲人的PPT翻到最后一页,林澈低头回消息,余光扫到侧门有人进来。那人穿了件不太合身的深灰西装,头发比半年前白了不少,侧着身子往最后一排的边座挪,动作里带着一种想把自己藏起来的仓促。
陈总监。
林澈没动。台上的主讲人正在讲用户分层的冷启动策略,会场里偶尔有人拍照,闪光灯亮一下又暗下去。陈总监坐下来后从公文包里摸出笔记本,低头写了一行什么,又停住,抬头扫了一眼会场。
目光撞上的那一瞬间,林澈看得很清楚,陈总监先是一愣,然后眼神闪了一下,像课堂上被点名回答问题的学生突然忘了答案。他很快低下头,翻了一页笔记本,假装在记。
林澈端着咖啡从后排走过去。走到那一排的时候,旁边两个座位都空着,陈总监的公文包放在其中一个上面。林澈在另一个空位坐下,没说话,先喝了口咖啡。
陈总监的手停了。过了大概五秒,他转过头来,挤出一个笑:“林澈?你也来了。”
“嗯,公司在这边有个分享。”林澈把杯子放在扶手的凹槽里,“陈总监最近怎么样?”
“还行,还行。”陈总监把笔记本合上,手指在封皮上蹭了两下,“我现在不在原来那家公司了,换了个小公司做顾问,清闲。”
“挺好的。”
“你……现在在那边还顺利吧?”陈总监问得有些艰难,每个字都像是从喉咙里挤出来的。
“挺顺的。”
两人之间落下一段沉默,前排有人回头看了一眼。林澈注意到陈总监的西服袖口磨得发亮,领带系得比半年前松垮,整个人缩了一圈。
“那个模型,”林澈开口,语气很平,“后来我发过一份公开版的技术报告,在博客上。涉及核心算法的部分做了脱敏,但业务逻辑和评估指标都写清楚了。你有空可以看看。”
陈总监的嘴唇动了动,像是想说什么,最后只点了下头:“好,好,我去看。”
“新公司那边如果有类似场景,那个框架可以直接复用,改一下特征工程就行。”林澈的语气就像在说一件普通的旧工具,没什么情绪,“报告里附了迁移指南,在附录C。”
陈总监又点了下头,这次动作很轻,喉咙里滚出一个含混的“嗯”。他像是想再多坐一会儿,但林澈已经站起来,把咖啡杯拿在手里。
“我先过去了,前排有个朋友要聊两句。”
“行,行,你忙。”
林澈走出两步,又停下来,没回头:“陈总监。”
“嗯?”
“身体要紧,少熬夜。”
他听见身后传来一声很轻的吸气,然后是笔记本被翻开又合上的声音。他没有再回头,径直穿过侧廊,走到靠近讲台的位置。方远在那儿冲他招手,身边站了两个不认识的人,一看就是等着引荐的。
林澈和他们换了名片,聊了十来分钟关于数据合规的话题,思绪却有一小块还停在那句话上。他其实准备了好几句更锋利的话,比如“那个模型后来帮公司省了至少三百万获客成本”,或者“听说客户退款那事最后是赵敏背了锅”。但真见到陈总监缩在最后一排的样子,那些话都像过期的代码,跑起来只会报错。
沙龙散场的时候天色暗了。林澈在酒店门口等车,冷风灌进衬衫领口。手机屏幕亮起来,孙总发来一条语音,背景嘈杂:“谈得怎么样?晚上要不要一起吃饭?”
他回了句“还行,回去再说”,然后打开博客后台,看了眼公开版报告的阅读量。一万七千多,评论区有人问“为什么附录C的迁移场景和某平台异常相似”,他没回复,关了页面。
车来了。林澈拉开车门坐进去,靠在后座上闭了会儿眼。司机问他走高架还是地面,他说高架。
车子汇入主路的时候,他想起一年前的那天晚上——酒店宴会厅的水晶灯晃得人眼花,王鹏站在台上捧着奖牌笑,陈总监在旁边鼓掌,周总拍着王鹏的肩膀说“年轻人有潜力”。他当时坐在最靠墙那桌,手边放着一杯没动过的橙汁,面前的转盘上摆着吃剩的果盘。没有人看他,也没有人提他。
那天晚上他走出酒店后门,在台阶上蹲了四十分钟。方远后来找到他的时候,他手机已经关了。风很冷,他把外套拉链拉到最上面,还是冷。
现在他坐在这辆往家开的车上,车内暖气开得很足,广播里在播路况,说前方三公里有事故,建议绕行。林澈睁开眼,对司机说:“没事,慢慢开。”
手机又震了一下,是苏瑶发的消息:“今天沙龙怎么样?”
他打了三个字:“碰到陈总监了。”
那边隔了半分钟回过来:“他怎么样?”
林澈看着屏幕上那行字,拇指悬在键盘上方。车窗外的街灯一盏接一盏向后掠去,橙黄色的光映在玻璃上又散开。他最后打了四个字发过去。
“都过去了。”
车子在高架上平稳地跑着,路灯的光一道道划过车窗。林澈把手机扣在膝盖上,没再看苏瑶的回复。他知道她懂“都过去了”是什么意思——不是原谅,也不是释怀,只是不值得再拿出来翻晒了。
回到家已经快九点。他换了鞋,打开客厅灯,发现茶几上摆着苏瑶下午送来的水果,旁边压了张便利贴:“冰箱里炖了汤,热一下就能喝。”他站着看了几秒那张字条,然后把便利贴收进书桌抽屉里,那个抽屉里还放着半年前从公司带回来的工牌、一张年会合影,和当时打印出来又被揉过的绩效单。
汤在灶上咕嘟咕嘟响的时候,林澈坐到电脑前,把今天沙龙上交换的几张名片拍了照存进通讯录。方远后来发来一条消息:“陈总监那事,你别多想。他去年从公司走的时候也不太体面,现在混得不怎么样。”林澈回了个“嗯”,想了想又加了一句:“没多想,真没多想。”
他确实没再想陈总监。让他停在原地的是另一件事:今天他准备的那些话,那些关于三百万获客成本、关于赵敏背锅的说辞,像是为一年前的自己准备的台词。可实际上这一年他早就不需要靠这些话来证明什么了。博客后台那一万七千的阅读量,孙总今天拉着他引荐新客户时的语气,方远在沙龙上叫他“林老师”而不是“林工”的细节,都比那些话扎实得多。
汤热好了,他端着碗坐回沙发,顺手打开电视,调到一个讲生态保护的纪录片做背景音。手机又亮了一下,是博客评论区的新提醒,他点开看了看,那位问附录C的访客又留了一条:“方便加微信吗?有个项目想请教。”林澈放下汤碗,把这人拉进了自己的私信白名单。
窗外的城市还在亮着,一格一格的灯光铺到很远的地方。他喝完最后一口汤,去厨房洗了碗,回来时顺手把台灯调到暖色档。
第十五章 和苏瑶吃饭
苏瑶约的馆子在一个老小区里面,门脸不大,招牌上的字掉了两个笔画,但里面坐得满满当当。林澈到的时候她已经点好了菜,一碟毛豆,一碟花生米,两瓶啤酒已经开盖。
“你来得挺准时。”苏瑶把菜单推过来,“再点两个热菜。”
“这些够了。”林澈坐下,把外套搭在旁边的椅背上。
苏瑶看起来和之前不太一样。头发剪短了,到下巴的位置,整个人精神了一些,但也瘦了。她穿了一件灰白色的薄针织衫,袖口有点松,像是洗过很多次。
“你最近怎么样?”她问。
“挺好。新项目刚过了一个节点,孙总上周在会上把后续的规划也定了。”
苏瑶点头,手指拨着毛豆壳。“我在网上看到你们公司的消息了,融了B轮?”
“上个月的事。你怎么知道的?”
“我关注了几个行业号。”她顿了一下,“也看了你博客下面那个讨论帖。”
林澈剥着花生,没接话。两人之间安静了几秒,不算尴尬,但也没有从前那种随意。邻桌有人在划拳,啤酒瓶磕在桌面上的脆响一阵接一阵。
苏瑶先开口:“我辞职了。”
林澈手上停了一下。“什么时候的事?”
“上礼拜提的,流程走完这周五。”她拿起啤酒抿了一口,“周总挽留了两句,赵敏倒是跟我聊了很久。最后也没说什么,就是让我以后有需要帮忙的尽管开口。”
“去哪儿?”
“不急着找下家。”苏瑶把杯子放下来,用指甲在标签边缘刮了刮,“我想去读个书。申请了港大一个传媒方向的硕士,明年春季入学。要是没录,就再看看别的。”
林澈有些意外。苏瑶在原公司做得不差,运营主管的位置坐了一年多,按部就班往上走不是没可能。但她既然提了,想必想了很久。
“什么时候决定的?”
“你走之后。”苏瑶说这话时没看他,眼睛落在桌面的某个位置,“其实你关机那几天我就在想一些事。后来你离职,我站在旁边看着你收拾东西,那天晚上回去我睡不着,脑子里翻来覆去都是年会那天的事。”
年会那天的事。林澈没搭话,等着她说。
“我当时知道名单被改了。”苏瑶终于抬头看他,“周总在年会前两天找赵敏定的最终名单,陈总监把你的名字从一个表彰序列里划掉了。赵敏后来告诉我的,她问我要不要跟你说,我说再想想。”
“再想想。”林澈重复了这三个字,语气很平。
“对,再想想。然后就想到了年会那天,你站起来走掉。”苏瑶的嘴角动了一下,算不上笑,“我当时应该站出来。不管有没有用,至少应该让你知道有人站在你这边。”
林澈低头把啤酒杯拿起来,喝了一口。酒不算冰,微微发苦。
“我当时觉得站出来会得罪人。”苏瑶说,“你走之后我才明白,有些事情得罪不得罪没有那么重要,重要的是自己心里过得去。我过不去。”
“都过去了。”林澈说。
“我知道。”苏瑶看着他,“但你听我说完。我后来想明白一件事,我留在那个公司是因为我害怕换环境,害怕重新开始。你不声不响就走了,反而是比我勇敢。”
“我那天关机的时候什么都没想。”林澈说,“就是不想接电话。”
苏瑶笑了一声,这次是真正的笑。“你还是这样,把什么都说得轻描淡写。”
两人又安静了一会儿。毛豆壳在桌上堆成一小堆,服务员端上来一盘小炒肉和一碗汤。林澈盛了半碗汤,苏瑶给自己又倒了半杯啤酒。
“你现在状态挺好。”苏瑶说,“跟以前不太一样。”
“哪儿不一样?”
“以前你什么事都闷着,现在好像松了一些。”她歪了歪头看他,“是不是新公司那边——”
“新公司那边挺好。”林澈放下汤碗,“孙总把模型迁移的事全权交给我,团队里也没人抢着在汇报里加自己名字。我下班之后还有精力干点别的,上周投稿的一个技术方案他们内部评审过了。”
“所以是因为终于不用在别人抢功后还假装没事?”
林澈看着她。苏瑶的这句话问得很直接,没有绕弯子。他想了想,点头。“差不多是这个意思。”
苏瑶慢慢点了一下头,举起杯子。“那挺好的。干杯。”
林澈和她碰了杯,杯沿轻轻撞在一起,一声脆响。他喝了一大口,苏瑶也是。
后面的话题转到了别处。苏瑶说起她申请学校的细节,担心英语不够好,要刷分。林澈问她想读什么方向,她说想做内容策略,现在行业太看重流量,她想补一些系统性的东西。林澈说挺好,我认识一个做媒介研究的朋友,改天推给你。
苏瑶也没推辞,说行。
饭吃得差不多了,店里的人开始少下来。苏瑶结了账,林澈没跟她抢,只是多要了两个打包盒,把没吃完的菜装好递给她。
“你明天带饭吧。”
“你还是老样子,剩菜不浪费。”苏瑶接过来,拎在手上。
两人一起走出巷口,外面是一条南北向的马路,左边通向地铁站,右边是出租车比较多的主路。路口的风比巷子里大一些,吹得苏瑶的头发贴在脸上,她伸手拨开。
“以后还能联系吗?”苏瑶问。
林澈看着她。她的眼神里有一点期待,但也不多,大概是做好了任何一个答案都能接受的准备。
“可以。”林澈说,“朋友。”
苏瑶点头,没有追问什么。她往左边指了指:“我去坐地铁。”
“嗯。”林澈站在原地,“到了跟我说一声。”
“好。”
苏瑶转身走了几步,又回头看了他一眼,举起手里的打包盒晃了晃。“谢谢你的剩菜。”
林澈笑了一下,举起手挥了挥。苏瑶也笑,然后就真走了。灰色针织衫的背影混进人行道上的人群里,很快就看不出了。
林澈在路口站了一会儿等到绿灯,过了马路去对面打车。上车之后他打开手机,苏瑶的对话框弹出来一条新消息,简简单单两个字:“到了。”他回了个“好”字,然后退出对话框,点开博客后台。
下午那个私信他的人又发来一条消息,这回具体多了:“林工你好,我是做用户增长方向的,看了你附录C的推导过程,自己复现了一遍发现有两个地方想和你确认。不知道方便通话吗?”
林澈看到这条消息时,车已经拐上了高架,远处写字楼的轮廓在夜里连成一片光带。他打了几个字发过去:“方便,明天下午两点吧。”
发送完他锁了屏,靠着座椅闭上眼睛。出租车里的广播在放一首老歌,他没听清歌名,只记得旋律有点熟悉。车子在高架上平稳地向前跑着,路灯的光一道一道划过眼帘,明明灭灭。
到小区门口下车时,夜风里有淡淡的桂花味。林澈拎着外套往单元楼走,脚步比去的时候轻了一些。电梯里他低头看了一眼手机,明天上午要跟团队过一轮模型指标,下午两点和那个陌生人通话,晚上还有个技术写作的截稿日。事情不少,但每一件都是自己的。
电梯到达他那一层,叮的一声,门开了。走廊的灯是声控的,他跺了一下脚,灯亮起来,照出一条笔直的路。
第十六章 关机与开机
年会定在腊月二十,比去年早了几天。
林澈站在会场侧门的走廊里,手里捏着一张打印好的流程表。会场是租的,酒店三楼的宴会厅,摆了十八桌,水晶灯亮得有些过分,照得每个人脸上都蒙了一层暖黄的光。舞台背景板印着新公司的名字和一行大字:聚势·破局·增长。
赵敏以前总说年会是最考验HR的活儿,排座位、对流程、盯彩排,样样得罪人。现在轮到林澈体会了。只不过他手里攥的不是座位表,是奖金名单。
孙总从宴会厅里探出头来,冲他招了招手:“快开始了,你坐主桌。”
“等两分钟,我把名单最后对一遍。”
孙总走过来,看了一眼他手里的纸,笑了:“你都对了八遍了。”
林澈没抬头,手指顺着名字往下滑。名单不长,一共十四个人,是“星图”项目组的全部成员。这个项目是他入职新公司后主导的第一个大项目,三周前刚上线,留存率比原版模型提升了十五个百分点。孙总上周把他叫到办公室,说年终奖单独批了一笔,让他来定分配方案。
“我定?”林澈当时问。
“你定。”孙总把表格推给他,“谁干得多谁干得少,你比我清楚。只有一个要求,别搞平均主义。”
林澈花了两个晚上考虑这件事。他把每个人在项目里的实际贡献重新梳理了一遍,包括那个叫小许的实习生。小许负责数据清洗和标注,干了最枯燥的活,但模型训练集的质量直接决定最终效果。林澈给了小许一个不错的比例。
“实习生也有?”赵敏——不,现在该叫她新公司的HR同事,名字也叫赵敏,但不是同一个人——当时在旁边问了一句。
“有。”林澈说,“他的活我干不了。”
此刻他站在走廊里,最后一次确认名单上没有任何遗漏。十四个名字,从算法工程师到前端开发,从测试到实习生,一个不少。他把纸折好放进西装内袋,往宴会厅走去。
舞台上主持人正在热场,台下觥筹交错。林澈在主桌坐下,孙总给他倒了杯茶:“紧张?”
“不紧张。”林澈说的是实话。去年这个时候他坐在原公司年会的角落里,看着王鹏上台领二十八万,陈总监在话筒前侃侃而谈。当时他手边的酒杯是空的,没人给他倒酒。散场后他走到外面,十二月的风灌进领口,他掏出手机看了一眼奖金到账短信——反正是空的——然后按下了关机键。
那个夜晚在记忆里已经很远了。像一张曝光过度的照片,轮廓都还在,但细节被冲淡了。
“下面有请我们数据总监林澈,来公布今年星图项目的专项奖金分配!”主持人的声音把他拉了回来。
掌声从四面响起来。林澈起身,整了整西装下摆,走上台。聚光灯打在身上有点热,他眯了一下眼。台下几百双眼睛看着他,有人举着手机在拍,有人端着酒杯停下动作。
“大家好。”他开口,声音通过话筒传出去,比平时显得低一些,“星图项目的奖金分配,我念一下。”
他没有打开那张纸。
十四个人,每一个名字,对应项目里的具体工作。王工负责特征工程,在三个版本之间反复调优;李姐不眠不休跑完了全部对照实验;小许的标注质量让训练集偏差降到了历史最低……他一个一个念过去,念到最后一个名字——那个实习生——台下有人“哦”了一声,像是才发现实习生也在名单里。
林澈看了一眼台下那个角落,小许正坐在一桌年轻同事中间,听到自己名字时愣了一下,然后被旁边的人拍了一巴掌,脸涨得通红。
“以上。”林澈说,“奖金会在明天中午之前到账。谢谢大家。”
他准备下台,孙总忽然站起来,端着酒杯走到舞台边上。他没有上台,就站在台阶下,仰着头说:“林澈,你漏了一个人。”
林澈回头看他。
“你自己。”孙总说,“名单上怎么没有你自己?”
台下安静了半秒,然后有人开始鼓掌。掌声从主桌蔓延开来,很快整个宴会厅都被填满了。有人站起来,有人举杯朝他示意。孙总把酒杯举过头顶,冲着话筒喊了一句:“星图项目最大的功臣——不接受反驳。”
笑声和掌声混在一起。林澈站在台上,手里的流程单被握得有点皱。他朝台下鞠了一躬,没说什么漂亮话,退回到自己座位。孙总跟过来拍他的肩膀:“会不会觉得我多事?”
“不会。”林澈说,“谢谢。”
“你那部分我单独留了。”孙总坐下来,压低声音,“比你的方案里给自己算的多了一个数,算是我补的。”
林澈没推辞。他端起茶杯喝了一口,茶水有点烫。
后面的流程是抽奖和表演,场面越来越热闹。林澈坐了一会儿,和几桌同事碰了杯。他不擅长这种场合,但今天每个走到他面前的人都会多说两句话,有的聊项目,有的聊模型,也有人只是拍拍他肩膀说“林总,辛苦了”。小许被几个同事推过来敬酒,端着满杯橙汁,结结巴巴说了句“谢谢林哥”,声音小得差点听不见。
“别叫林哥。”林澈和他碰了下杯,“叫林澈就行。”
“那不行。”旁边有人起哄,“叫林总。”
小许脸红得更厉害,匆匆忙忙把橙汁干了就跑了。林澈笑着摇了摇头。
九点多的时候,他找了个空档从侧门出去。走廊尽头有一道玻璃门通向露台,他推开门,十二月的冷空气扑面而来。露台上没人,远处是城市的天际线,高高低低的楼群浮在灯火之上,像一片倒置的星空。
他靠在栏杆上呼了口气,白色的雾气散进夜色里。
手机屏幕亮了一下。他低头看,是母亲发来的微信:“小澈,今年过年什么时候回来?你爸把腊肉都熏好了。”
他打字:“下周回。”
发完之后想了想,又加了一句:“想吃您做的糖醋排骨。”
母亲秒回了一个笑脸表情,后面跟着一句:“行,给你做两盘。你一个人回来还是……”
林澈盯着屏幕看了两秒,回:“一个人。”
母亲没有再问,只发来一条语音。他没点开,猜也知道是说“好好好,妈给你留着房间”。
他把手机锁了屏,随手放进口袋。露台外面是城市的夜景,远处高架上的车灯连成一条流动的线,路灯一簇一簇地亮着。去年那个晚上,他也站在某个露台上——原公司年会的场地也有一个露台——当时他掏出手机按了关机,屏幕黑下去的那一瞬间,他觉得自己和整个世界割断了联系。
那个夜晚他沿着马路走了很久,最后在便利店买了一罐啤酒,坐在窗边的高脚凳上,看着外面偶尔经过的夜归人。手机一直黑着,放在桌面上,像一块冰冷的砖。他记得自己当时想的是,如果没有人找我,那就说明我在不在都无所谓。
事实是,四天后开机的时候,几十条未接来电差点把手机震到没电。
但现在,手机在口袋里亮着。他能感觉到偶尔震动一下,大概是同事在群里发照片,也可能是母亲又发了什么叮嘱的话。它没有关,也不需要关。
“林澈!”
身后传来喊声。他回头,是团队里的李姐,探着半个身子在门口喊:“孙总说要合影,找你呢。”
“来了。”他拍了拍栏杆上的浮灰,转身往回走。
玻璃门推开的一瞬间,温暖的空气和嘈杂的人声同时扑过来。宴会厅里正在放一首节奏明快的歌,有人站在椅子上挥手,有人互相搂着肩膀在笑。孙总站在舞台前面,看到他就招手:“快来,站中间。”
林澈走过去,被李姐拉到队伍中间。小许被人推到他的右边,还在手足无措地找位置。摄影师举着相机喊“一二三”,所有人一起喊了一声“星图”。
快门声落下的时候,林澈看了一眼镜头。灯光很亮,亮得什么都看不清,但他能感觉到身边每个人的温度。他低头把手机从口袋里摸出来,看了一眼屏幕。母亲又发了一条语音,还有小许在群里发了一个表情包。
他把手机调成振动,重新放进口袋,没有关机。
露台在身后,夜色在身后。前面是宴会厅里暖黄的光,觥筹交错的声音,还有一张张笑着的脸。他迈开步子走进人群,经过小许身边的时候,顺手拍了拍这个实习生的肩膀。小许抬头看他,露出一个不太整齐的笑容。
“明年继续。”林澈说。
“啊?”小许没听清。
“我说,”林澈提高了声音,盖过音乐和喧闹,“明年继续跟我干。”
小许愣了一拍,然后用力点了点头,眼里有光。
(全文完)
文章虚拟演绎,请勿当真。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.