“林远,你的离职申请我批了。”
周总头都没抬,把文件夹往桌上一推,签字笔“啪”地拍在桌面,像盖棺定论。他另一只手已经摸上了手机屏幕,拇指在微信消息上划拉着。
“交接的事你直接跟HR对接,月底前把手续办完就行。”
我站在他办公桌前,手里还攥着那份打印出来的离职申请,A4纸边缘被我的指腹焐得发烫。准备了一晚上的话,关于八年工龄的体面告别、关于项目尾期的交接方案、关于那些还没来得及上线的技术沉淀,一个字都没能说出口。周总已经侧过身子,手机贴到耳边,冲我摆了摆手。
那个手势我认识。跟去年他让我把年终奖名额让给销售部小王时一模一样。跟三年前他让我把专利署名的第一位置让给技术部刘经理时一模一样。
挥手。扫尘。
八年的青春,就换了这么一句“批了”,和一个扫灰尘的手势。
我转身往外走。脚步踩在深灰色的地毯上,闷响被吞得干干净净。周总办公室的隔音玻璃门在我身后合上,他讲电话的声音变得模糊——大约是什么高尔夫球局的安排,语气热络得能滴出油来。
我在门口站了两秒,低头看了眼手里的离职申请。上面周总的签名龙飞凤舞,像一道潦草的伤口。
“林哥!”
HR的小刘从走廊那头小跑过来,手里抱着一摞档案盒,额角沁着细汗。“陈总,这是技术部的林远,林工。”她冲身后的人介绍了一句,又转向我,“林哥,这是新来的技术总监,陈锐陈总。刚办完入职,我带他熟悉一下环境。”
我抬起眼。
陈锐站在小刘身后半步,穿着一件深蓝色的牛津纺衬衫,袖口挽到小臂。他大约三十五六岁的样子,戴一副银框眼镜,镜片后的眼神很锐利,像两把藏在鞘里的刀。
他的目光从我脸上扫过,落在我胸前的工牌上。
然后,他整个人像被什么东西钉住了。
他往前迈了一步,眯起眼睛,嘴唇微微张开,喉结上下滚了一下。
“林远?”他的声音有些发紧,像是从喉咙深处挤出来的,“你就是林远?”
我点了点头,把离职申请折了两折塞进口袋,伸出手:“陈总好,我是林远。不过下周就不在了,欢迎你来盛恒。”
陈锐没接我的手。他的目光像扫描仪一样,从我的脸扫到我工牌上的照片,又从照片扫回我的脸,反复确认了三四遍。然后他猛地转头,看向周总办公室那扇紧闭的玻璃门。
“周总批了你的离职?”
“刚批的。”
陈锐的脸色在一瞬间变得极其难看。那表情我见过——是技术人在生产环境里发现一个致命漏洞时的表情,混杂着震惊、焦急、难以置信,还有一丝压不住的愤怒。
他一把抓住我的手腕,力道大得让我皱了皱眉。
“你不能走。”陈锐说。
小刘愣住了。我也愣住了。
陈锐松开我的手,深吸了一口气,朝周总办公室大步走去。他握住门把手的动作很重,推门进去的时候,玻璃门撞到墙边的文件柜,发出一声脆响。
“周总。”
周总正在电话里笑,被这声打断惊了一下,扭头看见陈锐站在门口,脸色阴沉。他对电话那头说了句“回头再约”,把手机扣在桌上。
“陈总监?什么事这么急——”
“您知道林远是谁吗?”
周总愣了一下,然后笑起来:“知道啊,技术部的一个老员工,刚提了离职。怎么,你刚来就要管人事了?”
陈锐往前走了一步,双手撑在周总的办公桌上,身体前倾,声音压得极低,但每个字都像从牙缝里磨出来的。
“周总,我来之前看完了盛恒近五年所有的技术文档和代码库。”
“嗯,很敬业。”
“您知道公司九成的核心技术,都是林远一个人写的吗?”
周总脸上的笑容僵住了。
办公室里安静得能听见中央空调出风口的嗡鸣。我站在门外,透过半开的玻璃门,看见周总的脸色从无所谓变成茫然,又从茫然变成一种微妙的、试图掩饰慌乱的镇定。
“陈总监,你刚来,可能还不了解情况。”周总靠回椅背,手指在桌面上敲了敲,“技术是团队的功劳,不是某个人的。林远确实做了不少工作,但你说九成,太夸张了吧。”
陈锐直起身,从裤兜里掏出手机,解锁,递到周总面前。
“我昨天让运维导了一份Git提交记录。这是近五年的代码贡献分布。”他的指尖在屏幕上戳了一下,“林远的提交量占了百分之八十七,其中核心模块——包括盛恒引以为傲的那套数据中台、风控引擎、还有给客户演示的那套智能推荐系统——全部来自他一个人的提交。周总,这不是团队的功劳,这是林远一个人的功劳。”
周总盯着手机屏幕,脸色慢慢变了。
陈锐把手机收回来,声音平静下来,但每个字都带着分量:“我刚接手技术部,本打算下周找林远聊一聊,了解一下核心系统的架构思路。您现在把他放走了。”
周总咽了一口唾沫,目光越过陈锐的肩头,看见站在门口的我。
“林远,你先进来。”
我走进办公室。陈锐退到一旁,抱起双臂,目光在我和周总之间来回打量。
周总重新坐直身体,脸上挤出一个笑,那笑容像临时拼凑起来的,随时会散架。
“林远啊,你提离职的事,我刚刚批得确实有点……草率了。这样,你先别急着走,咱们重新聊聊。”
“聊什么?”我问。
“你想留任,条件你开。”
我看着他,又看了看陈锐。陈锐的嘴角微微扬起,像在等一场好戏。
“周总,”我说,“我提离职的时候,您是秒批的。现在又让我别急着走。您到底是想留我,还是不想留我?”
周总的喉结动了一下。他站起身,绕过办公桌,走到我面前,伸手想拍我的肩。我往旁边让了半步,他的手悬在空中,尴尬地落回身侧。
“林远,你听我说。你在盛恒八年了,对这里有感情。公司也需要你。之前有些事,可能我处理得不够妥当,但我这人就是这样,对事不对人。”周总笑了笑,眼角的褶子堆起来,“你是公司的技术骨干,我一直知道。只是这段时间太忙,没顾上跟你好好聊。”
陈锐在旁边轻轻咳了一声。
“周总,不是‘有些事’的问题。”陈锐说,“如果林远走了,盛恒的核心系统维护会出大问题。这是事实。”
周总瞪了陈锐一眼,又转向我,换了一副更诚恳的表情:“林远,你看这样行不行——薪资我给你涨百分之三十,再给你一个技术专家的名头,独立办公室。你留下来,把团队带一带。”
“百分之三十?”我说。
“对,百分之三十。”周总像抓住了救命稻草,声音都亮了几分,“以前是公司亏待你了,现在补上。”
我看着周总的眼睛,忽然很想笑。
八年前,我拿着双一流的硕士文凭,放弃了两家大厂的offer,来到盛恒。那时候盛恒只有三十多个人,挤在一层老旧写字楼里。周总拍着我的肩说:“跟着我干,将来公司上市了,你是元老。”
我信了。
八年来,我带着几个刚毕业的孩子,从零开始搭建盛恒的技术体系。没有架构师,我来。没有运维,我来。没有安全团队,我来。最狠的时候,我一个人同时维护着十七个项目,每天工作到凌晨两三点。有三次急性胃炎住院,出院当天就回公司改bug。
我写的数据中台,帮盛恒拿下了一个五千万的大单。我写的风控引擎,让盛恒在行业里打出了口碑。我写的推荐系统,被客户当成了标杆案例,周总去外面演讲,PPT上全是我的代码截图。
可我的职级,八年只升了两级。我的工资,还不如去年新招的一个只干过两年活的前端。
不是因为我能力不行。
是因为我不会抢功。不会在周总面前表现。不会把团队的功劳说成自己的。不会在年会上给领导敬酒。不会在微信群里回复“收到,马上执行”。
我只会写代码。一行一行地写,一个版本一个版本地迭代。我总觉得,把东西做好就行了,总有人会看见的。
结果呢?
年终奖,我的名额被让给了销售部的小王——因为小王是周总亲戚的孩子。
专利署名,我的第一作者被换成了技术部的刘经理——因为刘经理跟周总沾亲带故。
去年新提的一个技术经理岗位,周总给了只来了两年的赵鹏——因为赵鹏会说话,会来事,会陪着周总喝酒。
我都没说什么。
直到上个月,赵鹏把我一个核心模块的设计方案拿去,在周总面前做汇报,通篇没提我的名字,PPT最后一页写着“技术部赵鹏团队出品”。
那个模块,我一个人写了三个月,熬了无数个通宵,写了几十万行代码。赵鹏连一行都没碰过。
我去找周总说理。周总靠在椅背上,笑呵呵地跟我说:“林远啊,团队的事,谁出头不都一样?你是老员工了,别计较这些。”
那一瞬间,我心里有什么东西碎了。
不是愤怒,不是委屈,是看清了。
看清了在周总眼里,我什么都不是。只是一个好用的人。
那天晚上回家,我写了离职申请。
第二天早上,我把离职申请放在周总办公桌上。周总看了一眼,抬头问了一句:“想好了?”
我说:“想好了。”
他拿起笔,签了字。
从头到尾,不到三十秒。
而现在,这个三十秒就批了我离职的人,站在我面前,说要给我涨薪百分之三十,要给我一个技术专家的名头。
真是天大的讽刺。
“周总,”我开口了,声音平静得连我自己都意外,“我离职不是为了钱。”
周总的表情僵了一下,随即又堆起笑容:“那更好办。你跟我说说,到底为什么?是最近工作压力大了?还是跟同事有什么不愉快?你提出来,我帮你解决。”
“我提出来,你解决得了一个,解决不了十个。”我说。
周总的笑容僵在脸上。
陈锐站在旁边,一言不发,只是用那种审慎的目光看着我。我隐约觉得他的眼神里有一些别的什么东西,但我不确定是什么。
“林远,你这是什么意思?”周总的声音冷了几分,“我对你不薄吧?八年了,你从一个毛头小子成长为技术骨干,没有盛恒的平台,哪有你今天?你现在说走就走,还在这里跟我摆架子?”
“周总,你说得对。”我说,“没有盛恒,没有今天的我。所以我离职,不是在跟谁摆架子,是我觉得,这段路走到这里,该结束了。”
周总盯着我,眼珠子转了转,像是忽然想到了什么。
“是不是有公司来挖你?”他问,眼神变得警觉起来,“哪家公司?给多少?”
“没有。”
“不可能!”周总的声音陡然拔高,“你这种老实人,没人挖你肯定不会主动提离职。说,是不是蓝海科技的人找你谈过?”
蓝海科技是盛恒最大的竞争对手。两家公司在数据中台这个赛道上打得头破血流,互挖墙角是常有的事。
“周总,我没有去蓝海,也没有去任何一家公司。”我看着他的眼睛,一字一顿地说,“我只是不想干了。”
办公室里又安静下来。
陈锐忽然开口了:“周总,我建议您先让林工回去休息两天。离职的事,缓一缓再说。”
周总像是抓到了台阶,立刻点头:“对对对,林远,你先回去休息,带薪休假。过两天咱们再聊。离职的事先放着,不着急。”
“周总,”我打断他,“我的离职申请您已经批了。”
周总张了张嘴,说不出一句话。
陈锐看了我一眼,转身对周总说:“我建议重新走流程。林远的离职,不能按普通员工处理。”
“你什么意思?”周总问。
“我的意思是,”陈锐推了推眼镜,声音不疾不徐,“如果林远真的要走,他带走的不是一个人,而是盛恒的技术根基。这不是HR走个流程就能解决的。这是经营层面的重大风险。”
周总的脸色变了又变。他看着陈锐,又看着我,最后颓然地坐回椅子上,手指插进头发里,揉了几下。
“行,林远,你先回去。咱们的事,改天好好谈。”他抬起眼看我,语气软了下来,“就当给我一个面子。”
我没说话,转身走出了办公室。
走廊上,小刘还站在那儿,一脸不知所措。她显然听到了刚才的对话。
“林哥……”
“没事,”我冲她笑了笑,“整理一下我的离职材料,该走什么流程走什么流程。”
回到工位,我开始收拾东西。
工位上其实没什么好收拾的。一个保温杯,一盒茶叶,几本技术书籍,一盆早就不怎么浇水的绿萝。这些年我在盛恒写下的东西,全在代码仓库里,在服务器上,在那些已经被别人署名的文档里。
真要带走的东西,一个双肩包就装下了。
“林哥,你真要走啊?”工位旁边的实习生小周探过头来,眼巴巴地看着我。
“嗯。”
“那……那我那个项目怎么办?还有好多问题要问你。”
“我把文档整理好了,放在共享盘里。代码注释我昨天刚补过一遍,你先看着,遇到问题再发消息问我。”我拍了拍他的肩,“好好干。”
小周的眼圈有点红。他来盛恒三个月,分到我的组,是我手把手带的。
“林哥,你以后去哪?”
“还没想好。可能先歇一歇。”
我说的是实话。离职之后,我没有投简历,没有联系猎头,什么都没有。就是想歇一歇。八年来,我像一台永远不会断电的服务器,一直在跑,一直在算。现在,我想关机了。
手机震了一下,是陈锐通过企业微信发来的好友申请。
我愣了一下,通过了。
“林工,方便的话,下班后聊几句。”他发来一条消息。
我想了想,回了一个字:“好。”
下午的时间过得很快。我在工位上整理交接文档,把每个项目的状态、关键注意点、遗留问题都写清楚。这些年我养成了一个习惯:不管别人怎么对我,我该做的事一定做完。
这也是为什么我提离职之后,周总还能那么干脆地批——因为他知道,就算我走了,我也会把交接做好。我不会留一个烂摊子。
他太了解我了。
所以他才有恃无恐。
下午四点,我背着双肩包走出盛恒科技的大楼。楼下的保安老刘看见我背着包,笑着问:“林工,今天这么早下班?”
“嗯,早点回去。”
“明天见啊。”
我冲他笑了笑,没说话。
走出大楼的时候,十二月的风迎面扑来,凉丝丝的。我站在路边,回头看了一会儿这栋写了八年的写字楼。灰白色的外墙,蓝绿色的玻璃窗,大厦顶端的“盛恒科技”四个字在傍晚的天光里泛着一层模糊的金色。
手机又震了一下。
是陈锐:“我下班了,如果你还没走,对面那家星巴克见。”
我回了一句:“好的。”
星巴克在写字楼对面,隔着一条六车道的马路。我走进去的时候,陈锐已经坐在靠窗的位置了,面前放着两杯美式。
“给你点的。”他指了指其中一杯。
我坐下,拿起咖啡喝了一口。热的,加了榛果糖浆。
“我入职之前,花了一个星期看盛恒的代码库。”陈锐开门见山,没有寒暄,“有一个技术问题,我一直想当面问你。”
“你说。”
“那套数据中台的核心调度模块,你在设计的时候,为什么选择了自研的消息队列,而不是直接用开源的方案?”
我有些意外。这个问题很专业,问到了点子上。
“因为三年前的那个版本,开源的方案扛不住我们的并发量。峰值压测的时候,延迟曲线直接拉爆。我评估了几套开源方案,都满足不了业务需求,就只能自己写了一个。”我顿了顿,“后来开源方案更新了,性能提升了,但我们那套已经跑稳定了,迁移成本太高,就一直留着。”
陈锐点了点头,眼睛里闪过一丝光:“跟我想的差不多。我之前在招聘网站上看到过盛恒的招聘信息,要求应聘者必须精通分布式系统。但我看了代码库,真正理解那套系统的人,整个公司只有你一个。”
我没说话。
“林工,说实话,今天在周总办公室,我是故意当众说那些话的。”陈锐端起咖啡,喝了一口,目光越过杯沿看着我,“如果我不说,他根本不会意识到问题的严重性。”
“我知道。”
陈锐的眼神微动:“你知道?”
“你是新来的技术总监,需要在一个新环境里站稳脚跟。”我靠在椅背上,看着窗外的车流,“盛恒的技术体系你已经看过了。如果我真的走了,这个烂摊子会砸在你手里。所以你需要我留下,至少需要把交接的时间拉长。”
陈锐沉默了十几秒。
“你比我想象的要直接。”
“我说过了,我只是不想干了。但我不是傻子。”
陈锐放下咖啡杯,双手交叉放在桌上,身体微微前倾,声音压低了几分:“那你有没有想过,现在有一个机会,可以让你把过去八年应得的东西都拿回来?”
我看着他,没有接话。
“周总现在怕了。”陈锐说,“他今天当众留你,说要给你涨薪百分之三十,这已经是他的底价了。但我知道,你应该得到的远不止这些。”
“你觉得应该怎么样?”
“技术入股。重新签合同,把你的核心技术成果折算成股权。盛恒的估值我查过,上一轮融资是十四个亿。你的技术贡献,拿百分之五的股份,不算多。”
我放下咖啡杯,手指在杯壁上轻轻摩挲。百分之五,按上一轮估值算,就是七千万。如果是真的技术入股,我这一辈子都够了。
“陈总监,”我说,“你今天是第一天到盛恒吧?”
“是。”
“第一天上班,就帮我跟老板谈股权。你觉得合理吗?”
陈锐愣了一下,随即笑了,那笑容带着一丝玩味,像是一个棋手在棋盘前认出了另一个棋手。
“你怀疑我有别的目的。”
“我不怀疑你有目的。每个人做事都有目的。”我直视他的眼睛,“我只是想知道,你的目的到底是什么?”
陈锐靠在椅背上,手指在桌面上轻轻敲了几下。这个动作让我想起周总,但陈锐的眼神和周总完全不同。周总的眼神永远在计算利益,而陈锐的眼神里有一种更沉的东西,像是等待了很久的耐心。
“我认识孙教授。”陈锐说。
我端着咖啡杯的手停住了。
“孙教授是我的研究生导师。”陈锐继续说,“三年前,他在一个学术会议上跟我提起过你。他说他教过的最有天赋的学生,去了盛恒科技。他还说了一句话,我记到今天。”
我的喉咙有些发干。
“他说,‘那孩子太老实了,我担心他被人欺负。’”
窗外的天色暗了下来。城市里的灯光一盏接一盏地亮起来,像一条一条的电路被接通,最终汇成一片光的河流。
我端着那杯已经凉了的美式,很久没说话。咖啡里的榛果甜味在嘴里一点一点地散开,勾起了很多年前的记忆。
孙教授是我研究生时期的导师,一位严谨得近乎苛刻的老人。他带过的学生不多,每一届就一两个。我跟着他做了三年,从数据挖掘到分布式系统,他手把手地教,从头到尾地磨。毕业的时候,他问我:“想好去哪了吗?”
我说:“盛恒科技。那边在招后端开发,方向挺合适的。”
孙教授沉默了很久,最后只说了一句:“你这个人,技术上是把好刀,但刀要配好鞘。你自己当心。”
那时候我不太理解这句话。后来我才明白,孙教授早就看透了。看透了我的性格,看透了职场的规则,也看透了像我这样的人在利益场上的命运。
“陈总监,”我开口,声音有点涩,“所以你进盛恒,是为了帮我?”
“不完全是。”陈锐说,语气坦率得让我有些意外,“我进盛恒,有我自己的理由。但遇到你,是我计划之外的惊喜。今天看到你的工牌,我是真的很意外。”
“你的理由是什么?”
陈锐的目光移向窗外,停顿了好几秒。“现在还不是说的时候。你就当我是一个押注的人——押你,也押盛恒。”
我低头看着自己手中的纸杯,杯壁上凝结的水珠顺着弯弯的弧线往下滑。
“陈总,”我抬起头,“我不需要别人帮我出头。我有我自己的打算。”
陈锐挑了挑眉:“哦?”
“你问我为什么没有去别的公司,为什么没有找下家。”我慢慢地说,“因为我知道,只要我在盛恒的核心技术还在,我走到哪里,盛恒就会追到哪里。”
陈锐的目光变得专注起来。
“盛恒引以为傲的那套系统,”我停顿了一下,“我写的。”
陈锐点了点头。
“但你有没有想过一个问题,”我接着说,“如果有一天,这套系统出了问题,而我已经不在了——盛恒怎么办?”
陈锐的瞳孔微微收缩。
“不会的。你对代码有洁癖,我看了你的提交记录,你的代码质量是市面上少见的。那套系统不可能出问题。”
“如果问题不在系统本身呢?”我说。
陈锐看着我,慢慢地,他的眼神变了。那是一种从内到外的、像是原本隐藏在暗处的拼图被一块一块点亮的变化。
“你留了后手。”他说。
我没承认,也没否认。
“所以你今天在周总面前说那些话,其实是在配合我。”陈锐像是终于看明白了什么,笑了,“你根本不需要我帮你谈判。你自己就有底牌。”
“没有你的配合,周总不会那么快意识到问题的严重性。”我说,“但现在还不到摊牌的时候。”
“你在等什么?”
“等他想清楚,到底是留我,还是放我。”我把纸杯捏扁,准确地扔进桌边的垃圾桶,“八年前,我是带着诚意来盛恒的。八年后,我要走,也要走得干干净净、明明白白。”
陈锐靠在椅背上,沉默了一会儿,忽然伸出手:“林工,正式介绍一下,我是陈锐。以后不管怎么样,我希望我们能是朋友,而不是对手。”
我握住他的手。他的手很有力,掌心干燥而温热。
“我也希望。”
我们走出星巴克的时候,天已经全黑了。十二月的风刮过城市的街道,卷着落叶和灰尘。陈锐在门口站了一会儿,掏出烟盒,点了一根烟。
“你要不要?”他递过来。
“我不抽烟。”
他点了点头,吸了一口,吐出白色的烟雾。那烟雾在冷风里散得很快,像一句没能说完的话。
“林工,你记住一件事。”他看着远处盛恒科技大楼的方向,声音在风里飘着,“在这个行业里,技术永远是硬通货。但光有技术是不够的。你得让人知道你的价值,必要的时候,还要让人敬畏你的价值。”
我拉了拉背包的肩带,笑了笑:“我走了。明天见。”
“明天见。”陈锐说。
我转过身,朝地铁站的方向走去。走出十几步的时候,手机在口袋里震了起来。
是周总。
我接起电话。
“林远啊,你到家了吗?”周总的声音从听筒里传出来,带着一股不自然的亲切,“我让老王给你送了一箱大闸蟹,阳澄湖的,应该马上到了。”
“周总,不用这么客气。”
“应该的应该的。你为公司辛苦了这么多年,我平时忙,也顾不上关照你。这样,你先好好休息,过两天我安排个饭局,就咱们几个自己人,好好聊聊。”
“周总——”
“你别说别的。你的离职申请我虽然签了,但流程还没走完。盛恒需要你,我也需要你。你就当给自己放个假,什么时候想回来了,随时说。”
说完,不等我回答,他就挂了。
我站在马路边,看着手机屏幕慢慢暗下去。屏幕上映出我的脸,被路灯的光切成一半明一半暗。
八年前,我刚到盛恒的时候,周总还开着一辆二手的桑塔纳。有一次我加班到凌晨,他开车送我回家,路上跟我说:“林远,咱们一起把盛恒做大。将来有一天,别人提到这行,第一个想到的就是盛恒。”
后来盛恒做大了。他换了保时捷,买了滨江的大平层,朋友圈里全是商业酒会和公司年会。他的座位离我越来越远,中间隔着刘经理、赵鹏、小王,以及所有懂得在恰当的时候出现在他面前的人。
不是他没看见我。
是他不想看见我。
因为看见我,就意味着要承认:盛恒之所以能走到今天,靠的不是他的眼光,不是他的管理,不是那些会来事的人,而是一个不会说话的码农,一行一行代码写出来的。
这个认知会伤他的自尊。所以他选择看不见。
但现在,陈锐当着他的面把这层窗户纸捅破了。周总慌了。
我收起手机,抬脚朝地铁站走去。路过一家便利店的时候,我进去买了一瓶水。收银台的小哥在追剧,手机里传来夸张的台词声。我付了钱,站在门口喝了两口水,冷冽的矿泉水顺着喉咙流下去,像一条冰线。
明天会发生什么,我不确定。但我知道,从这一刻起,盛恒和我之间的关系,已经不再是简单的员工和雇主。
这场戏,才刚刚开始。
回到家的时候快九点了。我住在城北一个老小区里,房子是租的,六十平的两居室。以我这些年的收入,本可以在好一点的地段买一套,但我总觉得没必要。一个人住,有个能睡觉能写代码的地方就行了。
冰箱里有昨天买的菜,我简单做了个西红柿鸡蛋面。等水开的时候,我把手机架在灶台边,翻着今天没看的消息。
技术部的微信群里很安静。平时这个点,赵鹏偶尔会发一些“大家辛苦了”“明天继续加油”之类的话。今天一条都没有。大概是周总已经跟他说了什么。
倒是小刘私聊发来一条消息:“林哥,陈总下午把你那套中台的架构图打印出来看了一下午,一直皱着眉头。他是不是在查什么?”
我回了两个字:“没事。”
吃面的间隙,我打开笔记本电脑,登录了盛恒的代码仓库。
屏幕上出现了一个熟悉的界面。左侧是一排项目列表,右侧是最近提交记录。我的目光在那些项目名字上扫过——数据中台、风控引擎、推荐系统、日志平台、监控系统……每一个名字都像一道刻在掌心里的纹路。
八年,我在这些项目里写下了超过两百万行的代码。
我点开其中一个项目的提交历史。最近的一条提交,时间是三天前,提交人是“林远”。备注写着一行小字:“优化调度模块内存回收机制,修复极端场景下的OOM问题。”
往前翻,一条一条,密密麻麻,提交人几乎全是“林远”。
我把鼠标停在屏幕中央,手指在触控板上轻轻划动。然后我打开了另一个文件——一个藏在项目深处的配置文件。
文件内容是一段加密的字符串。我盯着那串字符看了几秒,关掉了页面。
这是我三年前写下的“后门”。不是恶意的后门,而是一套备用机制。当时盛恒的运维团队还不成熟,我怕系统出故障之后没人能恢复,就给自己留了一套独立的运维通道。通过这个通道,我可以在不需要内部账号的情况下访问核心服务器的运维接口。
这件事,整个盛恒只有我一个人知道。
三年来,这套机制从来没有被触发过。因为系统运行得很稳定。但只要有这个后门在,盛恒的核心系统就永远离不开我。
或者说,至少他们需要我,来把它关掉。
但现在,我还不打算用它。
手机又响了起来。这次是一个陌生号码。我接起来,对方的声音很客气:“林远先生吗?我是蓝海科技的人力资源总监,我叫孙艳梅。方便聊几句吗?”
“你说。”
“我们关注到您最近的工作动态。蓝海科技正在招聘技术总监,您的履历和我们的需求非常匹配。不知道您是否感兴趣?”
“你们从哪知道的?”
“这个圈子不大。”孙艳梅笑了一声,“好的技术人才,总是会被人看到的。”
我沉默了几秒。
“谢谢你们的好意。但我目前不考虑跳槽。”
“林先生,您别急着拒绝。”孙艳梅的声音依然热情,“您可以先了解一下我们开出的条件。薪资可以谈,股权也可以谈。蓝海的平台不比盛恒差。”
“我真的不考虑。抱歉。”
挂断电话后,我把手机放在桌上,靠着椅背看着天花板。天花板上的灯管闪了一下,发出细微的电流声。
蓝海的消息够快。我还没真正办完离职,他们的人就找上门了。这只有一个解释——盛恒内部有人和蓝海有联系,而且第一时间就把我的消息递了出去。
这个圈子确实不大。但有时候,圈子里的水比你想象的要深得多。
我起身去洗了碗,然后坐在书桌前,打开了一个空白文档。
我在文档的顶端输入了一行字:“盛恒核心技术资产清单。”
光标一闪一闪地跳动着,像一只耐心的眼睛。
第二天早上,我起得很晚。八年来,我第一次睡到了自然醒,没有闹钟,没有工作消息的轰炸,没有“系统告警”的夺命连环call。
阳光透过窗帘的缝隙落在地板上,铺成一条细细的金线。我躺在床上,看着那条光线,忽然觉得很平静。
手机响了。是陈锐发来的消息:“今天来公司吗?”
我回:“不去。”
“周总昨天连夜改了你的离职流程,现在HR那边卡着不放。他准备今天上午开一个技术部的内部会议,专门讨论你的事。”
“你去参加就行了。”
“你不想知道他们说什么?”
“我猜得到。”
“那你猜猜看。”陈锐在消息后面加了一个笑脸。
我笑了笑,回了一行字:“无非是说我技术还行,但为人孤僻,不服从管理。然后宣布一个临时方案:让赵鹏接手核心系统,再招几个高级工程师补位,降低所谓的‘单点依赖风险’。”
陈锐回了一串省略号,然后说:“等开完会我告诉你结果。”
放下手机,我起了床。洗漱的时候,我看着镜子里的自己。三十四岁,头发有几天没理了,下巴上冒出了一层青色的胡茬,眼窝有些深,但眼睛是亮的。
电话又响了。这次是刘经理。他是周总的表弟,当初抢走我专利署名的那个人。
“林远,听说你提了离职?”他的声音带着一丝难以掩饰的兴奋。
“嗯。”
“走得好!说真的,你在盛恒也待了这么多年了,是该换个环境了。外面的机会多得很。”他顿了顿,压低声音,“不过你走之前,有些技术上的东西,得跟我交代清楚。尤其是那套中台的架构,你写的那份文档太简略了,很多东西我都看不明白。”
“刘经理,”我打断他,“我的交接清单里写了,所有文档都已归档。看不懂的地方,可以看代码。”
“代码那么长,谁看得完?你就直接跟我说说重点不就行了?两天时间,咱们坐一起过一遍。周总也说了,交接要细致。”
“周总说让我先休假。”我说。
刘经理的语气变了:“林远,你别给脸不要脸。离职交接是你的义务,你要是不配合,HR可以卡你的离职证明。”
我握手机的手紧了紧,但声音依然平静:“刘经理,我的义务我会尽。但交接的方式,得按流程来。你让HR出个正式的交接清单,我按照清单逐条落实。”
“你——”
“就这样吧。我这边有点事。”
我挂了电话。
这就是刘经理。技术能力撑不起他的头衔,但抢功、甩锅、拿鸡毛当令箭的本事,一个不少。以前我总觉得多一事不如少一事,能忍就忍。现在不用忍了,反而觉得轻松。
上午十一点,陈锐发来了一长串消息。
“周总早上开会,宣布了三件事。第一,你的离职流程暂缓,HR不会给你办手续。第二,成立‘核心系统保障组’,组长是刘经理,赵鹏当副组长。第三,让刘经理在两周内完成核心系统的技术交接。”
“会上只有我一个人提了不同意见。”陈锐说,“我说核心系统的复杂度不是两周能交接完的。周总没理我。刘经理还阴阳怪气地说‘陈总刚来,多了解了解情况再说’。”
我回:“意料之中。”
“林工,周总这样安排,不像是真心要留你。”陈锐说,“他更像是想拖。拖到刘经理他们把你的技术吃透,然后你的价值就被稀释了。”
“你觉得他们吃得透吗?”
陈锐停了几秒,回了一句:“今天我让刘经理解释一下调度模块的核心算法,他结结巴巴说了十分钟,没一句在点子上。赵鹏更离谱,他连那个模块的入口文件都找不到。”
我忍不住笑了一声。
“所以周总是在给自己挖坑。”陈锐说,“但我不确定他什么时候才会意识到这个坑有多深。”
“他会意识到的。”我说,“等他意识到的时候,就是真正坐下来谈的时候。”
接下来的几天,我照常生活。白天在附近的咖啡馆写写东西,晚上回家研究一些最新的技术论文。偶尔接到盛恒同事的电话或消息,大多是在问技术问题。
刘经理给我发过几封邮件,要求我提供各类系统的“核心文档”。我把邮件转发给HR,说等正式交接流程启动后再处理。HR的小刘跟我说,周总让暂缓办理我的离职,所以目前无法启动交接流程。
事情就这么僵着。
十二月十七号,盛恒出了第一次故障。
那天晚上十一点多,我正准备睡觉,手机突然接连震动起来。屏幕上弹出一连串消息,来自技术部的值班群、小周的私聊、刘经理的电话,还有一个备注为“监控系统”的自动告警。
我接起小周的电话。
“林哥,出事了!”小周的声音都在抖,“中台的调度模块崩了,线上服务全挂了。刘经理和赵鹏弄了一个多小时,越弄越糟。现在客户那边已经打爆了电话。周总刚到了公司,正在骂人。”
“别慌。”我坐起身,打开了笔记本电脑,“你把监控截图发给我。”
小周很快发来了几张图。我扫了一眼,心里就有了判断。
这个故障其实不算特别严重——是调度模块的一个配置参数在例行变更中被改错了。正常情况下,恢复起来只需要三步:定位错误参数、回滚配置、重启服务。
但前提是,操作的人得知道那套系统是怎么运转的。
“林哥,刘经理说让你远程看一下。”小周压低声音说。
我把手机开成免提放在床头柜上,手指在键盘上敲了几下,登录了盛恒的监控平台。
画面显示,那套数据中台的所有节点全部处于异常状态,错误日志刷得飞快。而在操作记录里,我看到刘经理和赵鹏在故障发生后进行了多次修改操作,每一次都在让情况变得更糟。
“小周,你跟刘经理说,让他停止一切操作。越改越烂。”我说。
“我说了,他不听!他说他才是核心系统保障组的组长,他有权决定怎么处理。赵鹏还在旁边帮腔,说他们是按流程来的。”
我深吸了一口气,手指悬在键盘上方。
其实我可以远程修复这个故障。那套运维通道还开着,我只需要敲几行命令,把配置回滚到上一个稳定版本,服务就能恢复。
但我没有动。
我盯着屏幕上不断滚动的报错日志,想起了三天前刘经理在电话里说的话——“你别给脸不要脸。”
我给过脸了。给了八年。
“小周,你听我说。”我对着电话,语速很慢,很清晰,“现在能修这个故障的人,你让周总自己来找我。”
“林哥……”
“你就这么转告他。”
我挂了电话,把手机屏幕朝下扣在床头柜上。
天花板上的黑暗像一堵墙,静静地压下来。我躺在黑暗中,听见自己的心跳声,一下一下,平稳而有力。
凌晨一点十七分,我的手机响了。
是周总打来的。
我等到响了第五声才接。
“林远。”周总的声音沙哑而疲惫,像是一下子苍老了好几岁,“系统崩了。客户那边已经炸了。刘经理他们弄了好几个小时,越弄越糟。你在哪里?”
“在家。”
“我现在派人去接你。你回公司一趟,行不行?就当我求你了。”
我沉默了几秒。窗外有风,刮过楼下的梧桐树,哗啦哗啦地响。
“周总,”我开口,声音平静得像一潭死水,“我可以回来修。但我有三个条件。”
电话那头骤然安静下来。几秒后,周总的声音传过来,带着压抑的急切:“你说。”
“第一,刘经理和赵鹏退出核心系统的管理,从明天起,核心系统由我全权负责。第二,我的离职流程照常走完,盛恒开一份体面的离职证明。第三,把三年前我的专利署名改回来。”
每说一个条件,电话那头的呼吸就重一分。
“林远,前两个我现在就能答应你。但专利的事,得走知识产权局的流程,不是一天两天能改的。”周总的声音里夹着一丝勉强的镇定。
“那是你的事。我只看结果。”
“林远,你这是在趁火打劫。”
“周总,”我的声音里没有任何波澜,“八年来,我从来没跟您提过任何条件。年终奖让了,署名让了,升职让了。您一直说团队第一,说吃亏是福。今天,我就提这一次。您觉得我是趁火打劫也好,是目中无人也好,我都认。但条件就摆在这里,您自己掂量。”
漫长的沉默。
电话里只能听见周总的呼吸声,以及背景里有人低声说话的声音。我猜那是赵鹏或者刘经理在问“他怎么说”。
“好。”周总终于开口了,声音像是从牙缝里挤出来的,“你回来,我答应你。”
“我四十分钟到。”
我掀开被子起床,洗了把脸,穿上外套。出门的时候,凌晨的风灌进衣领,冷得像刀片贴着皮肤。我走到路边,拦了一辆出租车。
“去滨江科技园。”我说。
出租车在空旷的城市街道上行驶。路灯一盏一盏往后掠,光线像被拉长的丝线。我靠在座椅上,闭了闭眼。
这些年在盛恒,我从来没有这样跟周总说过话。
以前的我,总觉得只要把事做好,就足够了。争名夺利的事,我不好意思干,也干不出来。但现在我明白了,在有些人面前,你的隐忍和善良,不会换来尊重,只会换来变本加厉的忽视和压榨。
你以为你在顾全大局,别人觉得你傻。
你以为你在退一步海阔天空,别人觉得你好拿捏。
你唯一的筹码,就是你的不可替代性。而今天,是你第一次、也是最后一次使用这个筹码。
四十分钟后,出租车停在盛恒科技大楼的门口。
凌晨两点的大楼依然亮着几层灯。我抬头看了看,六楼技术部的灯光最亮,像一颗惶恐不安的心。
我推开玻璃门,走进去。
前台已经没人了,电梯很快到了六楼。我走出电梯,迎面就是技术部的开放办公区。一群同事围在周总办公室门口,脸上写满了困倦和焦虑。
“林工来了!”有人喊了一声。
所有目光齐刷刷地望过来。刘经理站在人群里,脸色铁青。赵鹏缩在后面,低着头不敢看我。
周总从办公室里走出来,快步迎向我。他的衬衫领口敞开着,头发乱糟糟的,和平日里那个体面的周总判若两人。
“林远,你来了。”他伸出手想跟我握手。
我没接他的手,径直走向自己的工位。那个工位还没人动过,我的东西都还在原处。我坐下来,打开电脑,手指落在键盘上。
“我先看一下故障情况。”我说。
周围一片寂静。所有人都在看着我。
我登录系统,敲了几行命令。日志铺满了屏幕,我快速扫视了一遍,皱起眉头。
“周总,我说了让刘经理停止操作。为什么在你们打电话给我之后,还有人继续在改配置?”我的声音不大,但足够让整个办公室的人听见。
周总猛地转头看向刘经理。
刘经理的脸色白了一下:“我……我以为再调一调就能恢复。谁想到——”
“谁想到越调越糟。”我接过他的话,手指还在键盘上飞快地敲着,“你不仅改了调度模块的参数,还把回滚文件也覆盖了。等于把恢复的后路给断了一半。”
刘经理张了张嘴,没说出一句话。
我站起身,看向周总:“我需要去机房一趟,做本地恢复。远程搞不定了。”
周总连忙点头:“需要谁配合你?我让所有人都听你安排。”
“小周跟着我就行。”我冲小周招了招手,“走吧。”
小周受宠若惊地跟上来。我领着他走出技术部,朝电梯方向走去。路过刘经理身边的时候,我停了一下。
“刘经理,”我侧过头,声音只有我们两人能听见,“核心系统的回滚文件放在哪个路径,你知道么?”
刘经理的脸涨成了猪肝色。
我笑了一下,继续往前走。
机房里,我找到了那台核心服务器。小周在旁边打下手。我插入运维U盘,开始进行本地配置恢复。这台服务器上的备份文件完好无损,包括上次部署的稳定版本。我一条一条地执行恢复命令,手指在键盘上翻飞,整个机房安静得只剩下我敲键的声音。
“林哥,”小周在旁边小声说,“你今天跟周总提的条件,是不是以后就不走了?”
“走肯定是要走的。”我说。
“那你为什么还来修?”小周不解。
我看着屏幕上滚动的命令输出,想了好一会儿。
“因为这套系统是我写的。”我说,“不管我跟盛恒闹成什么样,它出了问题,我心里过不去。这是我的东西。”
小周似懂非懂地点了点头。
二十分钟后,系统恢复了。
我给技术部打了电话,让他们启动服务。片刻之后,手机里传来同事的欢呼声:“好了!线上恢复了!”
我把U盘拔下来,插在口袋里,靠坐在机房冰冷的金属机柜旁。小周坐在我旁边,眼睛亮晶晶地看着我。
“林哥,你真的好厉害。刘经理他们折腾了四五个小时,你二十分钟就搞定了。”
“他折腾的那四五个小时,把原本三分钟就能解决的问题变成了大问题。”我苦笑了一下,“所以时间不是越久越好,人也不是越多越好。”
小周用力点头。
我们走出机房的时候,周总已经等在门口了。
他的表情很复杂,混杂着如释重负和另一种更微妙的情绪。他伸出手,这次我接了。他用力握住,晃了两下。
“谢谢你,林远。”周总说。
“不用谢。”我抽回手,“条件的事,周总不会忘了吧?”
周总的眼神闪了一下,但很快恢复了那种生意人特有的笑容:“不会不会。明天就办。你先回去休息,有什么明天再说。”
我点了点头,朝电梯走去。小周跟在我身后。
“小周,”周总叫住了他,“你留一下。”
小周紧张地站住了。我回头看了一眼,小周正用求助的眼神望着我。
“让他跟我一起走吧。”我说。
周总笑了笑:“林远,你带出来的人,我还能难为他不成?就聊两句。”
我看着周总的眼睛,然后走过去拍了拍小周的肩膀:“没事。我在楼下等你。”
小周点了点头。
我独自走到电梯间。等电梯的时候,我听见身后传来周总拉着小周低声说话的声音。隔得太远,听不清内容,但我猜得到。
无非是打听我在系统里到底留了多少东西,还有没有别的后手。
小周这孩子,跟着我三个月,是个干净的。他什么都不懂,所以周总从他那里也问不出什么。我之所以放心让他留下,就是因为我知道,他真的什么都不知道。
电梯来了。我走进去,按下一楼。
凌晨三点的城市很静。我站在写字楼的门口,点了一根烟。我不怎么抽烟,但这一刻,忽然想抽一根。烟丝燃烧的声音很轻,像谁在暗处轻轻叹息。
小周下来得很快,不到五分钟。
“林哥,周总问我你平时在系统里怎么操作的,我说我不知道。”小周紧张地说,“我是不是说错了什么?”
“没有。你做得很好。”我拍了拍他的肩,把烟掐灭,扔进垃圾桶,“走吧,请你吃宵夜。”
我们找了一家二十四小时营业的沙县小吃。小周狼吞虎咽地吃了一碗馄饨一笼蒸饺,我只要了一碗拌面。
“林哥,我一直想问你一个问题。”小周边吃边说,“你技术这么好,为什么在盛恒待了八年,什么都没混到?”
我笑了笑:“因为以前的我以为,把事做好就够了。”
“现在呢?”
“现在发现,那远远不够。”我挑了一筷子拌面,“但我也发现,把事做好的人,永远有路可走。”
小周把最后一口蒸饺塞进嘴里,含糊不清地说:“林哥,我以后也想成为你这样的人。”
“别学我。”我说,“你要比我更早学会保护自己。”
第二天下午,我收到了一封来自HR的邮件。
邮件是盛恒人力部门官方发来的,抄送给了周总、陈锐以及法务部。正文的内容正式而克制:经公司管理层重新评估,决定撤销林远先生的离职申请,继续保留其技术专家岗位,职级调整为P9,薪资调整至原有的一点八倍。同时,核心系统由林远全权负责,刘经理调离核心系统管理岗。
邮件的最后附了一句话:“感谢林远先生对盛恒的贡献,公司希望与你继续携手共进。”
我盯着这封邮件看了很久。
P9。技术专家。薪资涨了百分之八十。核心系统全权负责。刘经理被拿掉了。
如果放在一个月前,这些条件足以让我感激涕零。八年来,我一次次被忽视、被压榨,不就是因为相信“总有一天会好的”吗?
但现在,我看着这封邮件,心里毫无波澜。
因为我知道,这些条件不是周总主动给的。是我用一次系统故障换来的。是我用一个他无法拒绝的时刻,逼着他答应的。
更重要的是,我心里清楚,周总给我这些,不代表他改变了对我的看法。他只是在止损。等到他找到了替代方案,等到系统稳定运行一段时间,他还是会想办法把我边缘化。
这是他的本性。改不了的。
我拿起手机,给周总发了一条消息:“收到邮件。我明天去公司。”
周总秒回:“好。明天我让HR准备新的合同。”
陈锐的消息紧随其后:“恭喜。P9技术专家。不过你看起来好像并没有很开心。”
我回了一句:“你觉得我应该开心吗?”
陈锐说:“如果你真的想留下,这些条件是一个不错的起点。如果你不想留,这些条件只是让你更看清了某些东西。”
我盯着这条消息,忽然觉得陈锐这个人,比我想象的还要透。
“明天公司见面聊。”我回复。
“好。”
第二天早上,我走进了盛恒科技的大楼。
前台的小姑娘看见我,愣了一下:“林工早。”
“早。”
电梯到六楼,我走进技术部。同事们的目光像被磁铁吸过来一样,齐刷刷地望向我。有人喊了一声“林哥”,有人只是张了张嘴,没发出声音。
赵鹏坐在工位上,低着头,像一只被雨淋湿的鸡。他的工位牌旁边多了一个纸箱,里面装着几本书和一个颈椎枕。显然,他正在收拾东西。
刘经理的工位已经空了。桌面上干干净净,像从来没有人坐过。
我走到自己的工位坐下。桌面上的东西还是昨天的样子。我打开电脑,登入系统,开始检查昨晚的故障恢复情况。
一切正常。
陈锐从他的办公室里探出头来,冲我招了招手:“林工,来一下。”
我走进陈锐的办公室。他关上门,给我倒了一杯水。
“昨晚你走之后,周总跟刘经理在办公室里吵了一架。”陈锐在椅子上坐下,语气平淡,“刘经理说你是故意的,说系统故障是你设的套。周总把他骂了一顿,说他不学无术,把公司害惨了。”
“系统故障不是我设的套。”我说,“是刘经理自己操作失误。从头到尾,我都没有主动去触发任何东西。”
“我知道。”陈锐说,“但我好奇的是,你怎么能那么准确地判断出,周总一定会来找你?”
“因为那套系统,整个盛恒只有我能修。”我看着陈锐的眼睛,“刘经理改了核心配置,覆盖了回滚文件。那种状况下,如果没有本地备份和运维通道,至少要重建整个调度集群。以盛恒目前的技术储备,没有半个月做不完。但客户的业务不可能停半个月。”
陈锐点了点头,若有所思:“所以你从一开始就知道,这件事迟早会发生。刘经理的水平,碰核心系统一定会出事。你等的就是一个时机。”
我没说话。
“林工,”陈锐忽然笑了一声,笑容里带着点钦佩,“你藏得挺深的。”
“不是我藏得深。”我端着一次性纸杯,喝了一口水,“是他们把我想得太简单了。”
陈锐靠在椅背上,手里转着一支笔:“接下来你打算怎么做?”
“我说过,我要走。”
“现在这个局面,你走得了吗?周总不会放你的。P9、高薪、全权负责,这些只是第一轮条件。他后面还会继续加码。”
“他加他的。”我说,“我做我的。”
陈锐的笔停住了。他看着我,像是想从我的表情里读出什么。
“林工,你实话告诉我,你的后手到底有多大?”
我端着水杯,沉默了一会儿。
“大到周总一旦发现,会后悔昨晚让我回公司。”
陈锐的眼神骤然变了。那支笔从他的指间滑落,在桌面上弹了一下,滚到桌边,悬在那里。
“能不能具体说说?”
“还不能。”我放下纸杯,站起身,“但我可以告诉你一句话:盛恒的核心系统,从三年前的那个版本开始,就已经不完全属于盛恒了。”
我拉开办公室的门,走出去。门在身后轻轻合上。陈锐没有再叫我。
回到工位后,我打开邮箱,起草了一封邮件。
收件人是周总,抄送法务部、人力资源部。
邮件的标题是:“关于盛恒核心技术知识产权归属的说明”。
正文只有一句话:“尊敬的周总,鉴于近期公司人事变动,我想就盛恒核心技术系统的知识产权归属问题与您做一次正式沟通。请安排时间和法务一起参加。”
我把这封邮件放在草稿箱里,没有发送。
还没到发的时候。
中午吃饭的时候,小周端着一份外卖跑到我工位旁边,脸上带着藏不住的兴奋。
“林哥,你听说了吗?刘经理被调去管行政了!赵鹏直接走人了。现在技术部都在说,你是周总眼前的红人,以后谁都不敢惹你了。”
我笑了笑,没接话。外卖盒里的宫保鸡丁有些凉了,花生米不再脆。
“小周,你觉得这是好事吗?”
小周愣了一下:“当然是啊。林哥你终于被看到了。”
“被看到和被利用,有时候只有一线之隔。”我夹起一块鸡丁放进嘴里,嚼了几下,“不过有一点你说对了——以后谁都不敢惹我了。”
小周眨着眼睛,似乎没听懂。
下午两点,周总叫我去他办公室。
我推门进去的时候,周总正在打电话。他看见我,冲电话那头匆匆说了几句,挂断了。
“坐。”他指了指对面的椅子,脸上挂着温和的笑。
我坐下。
周总从抽屉里拿出一盒雪茄,先递给我,我摇了摇头,他自己拿了一根,用雪茄剪剪开,慢条斯理地点燃。
“林远,咱们认识八年了。”他吐出一口烟,靠在椅背上,“这八年,盛恒从三十多人做到三百多人,从一间小办公室做到这个园区。这里面有你的功劳。”
我没说话。
“以前我确实亏待了你。”周总说,眼睛在烟雾后面微微眯起来,“但我这人有个好处,就是知道错了会改。这次的事,让我重新认识了你。盛恒需要你,我也需要你。咱们往前看。”
“往前看。”我重复了一句。
“对,往前看。”周总倾过身子,双手撑在膝盖上,用一种近乎诚恳的眼神看着我,“新合同下午就能签。除了薪资和职级,公司还可以考虑给你一笔一次性的人才保留奖金。数目你开。”
“周总。”我开口了,“我想跟你谈的,不是钱。”
周总愣了一下,坐直了身体:“那是什么?”
“是产权。”
周总的眼神冷了下来,像一块烧红的铁突然被浸入冷水。他慢慢地把雪茄搁在烟灰缸的凹槽上。
“什么产权?”
“盛恒核心技术的知识产权归属。”我一字一顿地说。
周总笑了起来,像是听到了什么可笑的事:“林远,你是公司的员工。你在公司写的代码,知识产权归公司,这是劳动合同里写明的。这一点,你应该清楚。”
“常规代码,归属公司,我不否认。”我平静地说,“但盛恒现在的核心技术里面,有相当一部分代码,是我在入职之前就已经开始写的。”
周总的笑容凝固了。
“数据中台的第一版框架,是我读研究生时期做的一个开源项目。我进盛恒之后,把这个框架带了过来,在它的基础上做了商业化开发。”我继续说,“这部分代码的初始版本,在我入职盛恒之前就存在。我的劳动合同里没有约定这部分知识产权的归属。”
周总的脸色沉了下来。
“另外,”我继续说,“三年前,公司以‘优化结构’为由,让我签了一份外包协议,把核心系统的部分模块拆到外面去做。当时用的是一个外部开发公司的名义,但实际写代码的还是我。那部分代码的知识产权,法律上不属于盛恒。”
周总的手不自觉地攥成了拳头。雪茄的烟在烟灰缸上方袅袅升起,像一条扭曲的蛇。
“林远,你这是在跟我算旧账。”他的声音低了下来,带着一种被冒犯的恼怒。
“不是算旧账。”我说,“我只是在离职之前,把该说清楚的事情说清楚。周总,您知道我是一个较真的人。代码的事,我比谁都认真。”
办公室里安静得让人发闷。周总盯着我,我回看着他。我看到了他眼里的怒火,还有藏在怒火后面的一丝慌张。
“你威胁我?”他咬着牙问。
“我没有威胁您。”我说,“我是在给您提个醒。盛恒的核心系统里,我占了多少,您心里应该有个数。如果真闹到法务层面,对盛恒的影响不会小。”
周总沉默了很久。他的手指在真皮扶手上一下一下地抓着,发出轻微的吱嘎声。
“你到底想怎么样?”他问,声音低而沙哑。
“我想走。光明正大地走。”我站起身,“条件我昨晚已经说过了。离职证明、专利署名改回来。另外,我要公司出具一份书面的知识产权声明,确认我在盛恒期间产生的、目前尚有争议的部分代码,其合法权益归我所有。我不带走盛恒的商业成果,但属于我的东西,我必须拿走。”
周总的脸色难看极了。他闭上眼睛,揉了揉太阳穴,像是在忍受一阵剧烈的头痛。
“林远,你还是太年轻。”他忽然说,重新睁开眼睛,那眼神里有了一丝我以前从未见过的阴鸷,“你以为拿着这些东西,就能从我这儿要到什么?你有没有想过,以盛恒现在的体量,就算你闹起来,耗也能把你耗死。你一个人,怎么跟一家公司斗?”
我看着他,忽然笑了。
“周总,您说得对。一个人确实很难跟一家公司斗。”我慢慢地说,“所以,我要在您说这番话之前,把该做的准备都做好。”
我转身朝门外走去。走到门口的时候,我停下来,回头看他。
“有一件事我一直没说。”我轻声说,“那套数据中台,从三年前的版本开始,就存在一个只有我知道的运维通道。通过这个通道,我可以从任何一个互联网节点访问核心服务器。不需要盛恒的账号,也不需要内网权限。”
周总的表情像被人抽走了什么东西,整个人的血色一下子退得干干净净。
“这个通道很安全,不会被常规的安全扫描发现。它的存在,保证了盛恒的核心系统永远有一个最终的保障。”我继续说,“但这个保障,掌握在我一个人的手里。”
“你疯了!”周总猛地站起来,手指发抖地指着我,“你这是犯法!你这是给自己埋下了一颗定时炸弹!”
“不是炸弹。”我说,“如果盛恒对我不构成威胁,它永远不会被触发。我告诉您这件事,是因为我信任您不会做出让双方都难堪的选择。毕竟——”
我停顿了一下,直视着他的眼睛。
“我比任何人都希望盛恒好好的。这是我的心血。”
我拉开门,走了出去。
身后的办公室里,传来周总把什么东西摔在地上的声音。很响,像瓷器碎裂的脆响。
我穿过技术部,朝电梯走去。同事们纷纷抬头,目光里有惊疑,有好奇,也有隐隐的敬畏。
我走出电梯,走出大楼,走到了阴沉的天空下。
十二月的风刮得很大,吹得路边的树弯了腰。我站在风里,掏出手机。草稿箱里那封邮件,我按下了发送键。
手指在手机屏幕上轻轻一触。
盛恒最重要的商业机密,就这样,从我的指尖飞了出去。
邮件的回执很快来了。我看到周总的回复,简单的一句话:
“来我办公室。”
我笑了。
这一刻,我不再是八年前那个只想好好写代码的年轻人。
我很清楚,从明天开始,盛恒的所有系统,关于核心代码的修改、运行、维护,都绕不开我。
而我,已经不想再继续待在这里了。
我关掉屏幕,把手机放回口袋。
远方有云在堆积。风越刮越大。
回到家里,天已经黑透了。
今天下午的事让周总彻底沉默了。我走后,他一直没有再回复我的消息。陈锐也没再联系我,大概是被周总叫去商议对策了。
我坐在书桌旁,打开电脑,习惯性地登录了盛恒的内部系统。
屏幕上跳出一个弹窗:“您的账号已被禁用。”
我愣了一下,随即笑了。
看来周总比我想象的要快。他直接停掉了我的公司账号,包括企业微信、内部VPN、代码仓库权限。他在用自己的方式告诉我:盛恒不需要你了。
可问题是——他真的断得了吗?
我打开一个命令行终端,输入了一段长命令。几秒钟后,屏幕上返回了一行数据。这是我三年前埋在系统里的那套独立运维通道,通过一个不公开的端口与核心服务器保持连接。这条通道绑定的不是一个员工账号,而是一串加密证书,证书存在我的物理U盘里。盛恒的IT部门可以禁掉我所有的内部权限,但只要这个U盘还在,只要服务器还连着公网,我就能连接进去。
这就是我留给自己的最后一条路。
我关掉终端,合上电脑,起身去厨房煮了一碗面。水汽在抽油烟机的风口打着旋,窗外有野猫在叫。
一个人的日子就是这样,简单而安静。安静得适合想清楚一些事情。
八年前,我带着一腔热血来到盛恒。那时候我相信,技术可以改变命运,努力就会被看见。后来我发现,努力确实会被看见,但被看见不代表被珍惜。有时候,被看见的代价就是被更彻底地利用。
但我没有后悔。因为如果重来一次,我还是会选择认认真真地写代码。这是我的秉性,谁也改不了。
只是这一次,我不会再傻乎乎地等别人来替我主持公道。
公道这东西,有时候得自己讨。
手机响了,是陈锐。
“盛恒把你的账号都删了。”陈锐开门见山。
“我知道。”
“周总晚上叫了法务和几个高管开会,讨论怎么处理你的问题。法务的意思是,立即启动商业秘密保护机制,评估你的行为对公司造成的风险。”
“那你觉得呢?”
“我觉得周总现在最大的麻烦,不是你的账号,也不是你手里的后门。”陈锐顿了一下,“是他已经意识到,盛恒的核心技术从来就不完全属于公司。这对他的打击比系统故障更大。因为系统故障能修,但知识产权的窟窿补不上。”
“陈锐,你的立场是什么?”我直接问。
“我告诉过你。我押你。”
“那今天晚上开会的时候,你说了什么?”
“我说,如果盛恒想真正解决问题,唯一的办法是和林远谈一个双方都能接受的方案。任何打压、威胁、法律施压,都只会把问题推向不可控的方向。”
“周总怎么反应?”
“他没说话。但他把法务的话筒按掉了。”
我沉默了一会儿。
“陈锐,你来盛恒,到底是为了什么?”我再次问出了这个问题。
电话那头沉默了很久。长到我以为信号断了的时候,陈锐的声音才传过来:“林远,你就不奇怪,我为什么要在入职第一天就看完盛恒所有的技术文档?为什么我一眼就认出了你?为什么我对你的项目了如指掌?”
“因为你是孙教授的学生。”
“这是一方面。但更重要的原因是,我是带着任务来的。”
我握着手机的手不自觉地用力了。
“什么任务?”
“你还记得三年前你做的那套推荐系统吗?”陈锐问。
“记得。”
“那套系统现在被盛恒卖给了十几家客户,其中最大的那家,每年给盛恒贡献的营收占了总营收的四成。”陈锐说,“那家客户,是我们——是我背后的人,最重要的合作伙伴之一。”
“你背后是谁?”
陈锐没直接回答,而是说:“你有没有想过,为什么那家客户在众多供应商里选了盛恒?为什么周总对那套推荐系统的态度那么不一般?”
我想起来了。那套推荐系统是我们给客户做的一个POC项目。客户是家大型零售企业,需要一个精准推荐引擎来提升线上转化率。当时竞标的有七八家公司,蓝海科技也在里面。盛恒的方案最终胜出,靠的就是我那套算法。
周总在那次中标之后,特地开了一个庆功宴,把客户方的高管请到了现场。那是我记忆中,周总唯一一次在公开场合主动提到我的名字。
“那家客户跟我有什么关系?”我问。
“因为你那套算法的核心思路,和我当年跟你一起在孙教授实验室里做的东西是同源的。”陈锐说,“只是你没有意识到,那个被你当成课外项目的算法,后来成为了一个更大项目的关键。”
我的脊背僵住了。
“等等。我们当年一起在孙教授实验室做过什么?陈锐,我确定我读研的时候没见过你。”
陈锐苦笑了一下:“你确实没见过我。因为我是你的前两届师兄。你进实验室的时候,我已经毕业走了。但孙教授一直留着我们的代码和研究资料。三年后,盛恒的那套推荐系统火了,孙教授找到我,说那个算法的底层逻辑和我们当年做的东西高度相似。他担心你被盛恒利用了,就让我回来看看。”
我的脑子嗡嗡作响。
三年前,我设计那套推荐算法的时候,确实参考了研究生时期实验室的一些研究思路。但我一直以为,那些只是学术上的启发,离商业应用还很远。我从来没想过,那些思路会和我从未谋面的“师兄”有关。
“所以,你进盛恒,不是为了帮我,也不是为了盛恒。你是来核实那套推荐算法的归属。”我的声音平静下来。
“这是一部分原因。”陈锐说,“但见到你之后,我改变了计划。我发现你和我听说的那个‘老实人’不一样。你有自己的想法,有自己的底线。我想帮你,但我也想解决推荐系统的事情。”
“推荐系统怎么了?”
“盛恒把推荐系统的知识产权授权给了多家客户。但客户的反馈是,系统的核心算法出现了严重问题,线上效果远不如预期。那家最大的客户,三个月前已经启动了法律程序,准备向盛恒索赔。”陈锐说,“你可能不知道,因为周总把这些事全压着没让技术部知道。”
我闭上眼睛,脑海里飞速闪过那套推荐系统的架构。那套系统的核心算法确实是我写的,但我写完之后,就被调去做别的项目了。后续的调优和维护,交给了赵鹏和一个外包团队。
“赵鹏他们改过代码。”我说。
“改得面目全非。”陈锐说,“客户那边的技术负责人偷偷把代码包发给我看过。核心算法被简化成了一个简单的协同过滤,原来的多层神经网络结构被砍掉了三分之二。效果能好才怪。”
“周总知道这事吗?”
“他知不知道不重要。重要的是,客户准备以‘交付物与合同不符’为由解除合同,并要求退款加赔偿。这笔钱,盛恒赔不起。”
我深深地吸了一口气,呼出来的时候,像是把三年来的混沌都吐了出来。
“所以你才说,你要押我。”
“对。因为只有你能修复那套推荐系统。盛恒没有人能做到。刘经理不行,赵鹏更不行。”陈锐说,“而且,如果你能帮盛恒解决这个危机,你就有资格开任何条件。”
“如果我不帮呢?”
“那盛恒就完了。”陈锐说,声音里带着一种冷静的残酷,“但我知道,你不会眼睁睁看着盛恒倒下。因为它也是你的心血。”
我握着手机,靠在椅背上。窗外的风停了,夜色寂静得有些沉重。
“陈锐,”我开口,“你联系孙教授,我想跟他聊聊。”
“好。”陈锐说,“他还一直念叨着你。”
挂了电话,我在黑暗中坐了很久,没开灯。
脑子里的东西像一团被风吹乱的毛线,千头万绪。但我隐约觉得,所有的线头,正在慢慢汇聚成一个点。
盛恒最引以为傲的那套推荐系统,是我研究生时期和另一个人的研究思路衍生出来的。陈锐说,那是和我同门的师兄。孙教授担心我被利用,派陈锐来查。
三年前,我写完推荐系统后就被调走了。赵鹏接手后改了代码,把核心算法精简成了垃圾。客户不满意,准备告盛恒。
周总早就知道这些事,但他选择压下消息,继续用推荐系统的名气去拿新客户。
而我,被蒙在鼓里,还在为盛恒的其他系统日夜加班。
这盘棋,比我想象的要大得多。
大到我已经看不清楚,我到底是棋盘上的棋子,还是棋盘本身。
第二天,我约了陈锐,说想看看客户手里的那套代码。
陈锐把代码包发给了我。我花了一整天的时间逐行查看。越看,心里越冷。
这确实是从我的代码改过来的,但被改得面目全非。核心的深度学习模块被删掉了,换成了一个早就过时的协同过滤算法。为了补足功能的缺失,他们还硬塞了一些乱七八糟的第三方库。整个系统像一件被拆碎后又用胶水乱粘起来的衣服,千疮百孔。
赵鹏接手这个项目的时候,技术能力根本不够。他和外包团队为了赶工期,只保留了最基础的推荐逻辑。客户看到的东西,和我当年演示的东西,根本不在一个层面上。
我现在理解陈锐为什么说“盛恒完了”。
单凭这个交付物,客户要索赔是板上钉钉的事。就算上了法庭,盛恒也必输无疑。
但陈锐说得对,我不会眼睁睁看着盛恒倒下。
不是因为我对周总还有感情。而是因为,那套推荐系统的核心算法,源自我最纯粹的一段岁月。那些年在孙教授实验室里,还没有商业,没有利益,没有谁抢谁的东西。只有我和代码。是我的东西,我不能看着它被糟蹋。
我打开电脑,开始写一份技术方案。标题是:“推荐系统核心算法修复与升级方案”。
我准备用一周的时间,重写那套推荐系统的核心模块,在原有的算法基础上做一次完整的升级。这不仅是修复,更是向所有人证明——林远的价值,不在头衔,不在工位,而在这双手。
手机响了,是孙教授。
我接起来,老人的声音透过电波传过来,依然清朗如旧:“小远,陈锐跟我说了。你最近怎么样?”
“挺好的,孙老师。”我努力让语气轻松一些,“让您惦记了。”
“你的事,我听说了一些。”孙教授慢悠悠地说,“陈锐说你要从盛恒离开。好。离开就离开。你这个人,待在那里委屈了。”
我的鼻子忽然有点酸。
“孙老师,那套推荐算法的事,陈锐都跟您说了?”
“说了。”孙教授叹了口气,“那套算法的底层架构,是你研二做的一个课程项目。后来陈锐在实验室里用了你的部分思路,做了一个更完整的框架,毕业后带走了。你们两个人的东西,本来就是在一起的。”
“孙老师,对不起。我不知道这些事,把它用在了盛恒的商业项目里。”
“你没有什么对不起的。学术思路的传承和融合,本身就是科研的一部分。再说,盛恒当年能拿下那个项目,靠的是你后续的开发和完善。这一点,陈锐也认可。”孙教授停了一下,声音变得认真起来,“但盛恒现在把产品做烂了,这是他们自己没本事。你不能把责任揽到自己头上。”
“我知道。”我说。
“你现在想怎么做?”
“我要把推荐系统修好。”我说,“不是为周总,是为我自己。我不能让自己的算法以那种面目流出去。”
孙教授在电话那头笑了:“好。像你的性子。做吧。有什么需要的,跟我说。陈锐那边也会配合你。”
“谢谢孙老师。”
“别客气。”孙教授说,声音忽然低了几分,“小远,记住一件事:你手里的技术,是你安身立命的根本。不管走到哪里,都要牢牢抓住它。别像以前那样,把好东西都让给了别人。”
“我记住了。”
挂了电话,我坐在电脑前,开始写方案。
接下来的几天,我把自己关在家里,除了吃饭睡觉,就是写代码。那套推荐系统的核心算法,我从零开始重新构建。三年前的设计文档我早就留了底,底层的数学原理我烂熟于心。再加上这几年我在其他项目里积累的经验,新版本的算法比三年前更成熟、更稳健。
我没有告诉周总我在做什么。陈锐知道,但他也保持沉默。
盛恒那边,听说周总还在想办法找外面的技术团队来评估系统故障的事。但效果不好。他找来的那些顾问,看到核心系统的架构之后,都摇头说没法接管。有一个还说得挺直白:“这种代码不是一般人能接得住的。你们得留住原开发者。”
周总的脸色一定很难看。
十二月二十二号,盛恒又出了第二次故障。
这次故障比上一次更严重,核心数据库的读写出现了异常,导致数据中台的服务延迟飙升。好几个客户同时发来投诉,说系统响应慢得像蜗牛。
周总又打来了电话。
“林远,系统又出事了。”他的声音里带着压不住的焦躁,“你能再回来一趟吗?”
“周总,我的账号都被禁了。怎么弄?”
“我给你开权限。不,我直接派人去接你。你回来。”
“我上次说的条件,现在还没兑现。”我说。
“什么条件?”
“离职证明。专利署名。知识产权声明。”
周总沉默了。
我接着说:“东西准备好了,我随时可以回公司处理故障。但在东西没准备好之前,我不方便再以什么身份出现在盛恒。”
“林远,你……”
“周总,我不催您。盛恒的系统,您自己能修就修。修不了,我随时恭候。”我说完,挂了电话。
我打开电脑,看了一会儿监控系统的数据。盛恒的数据库读写异常,是因为磁盘阵列出现了坏道,导致数据读取错误率升高。这个问题其实不难处理——如果有一个合格的运维在场,二十分钟就能搞定。
但盛恒的运维团队,以前都是我兼着带的。我走之后,他们连基本的磁盘巡检都不做了。周总把钱都花在了销售和市场,技术基础一直都在吃我的老本。
我给陈锐发了一条消息:“盛恒数据库的问题,让运维查一下磁盘阵列的S.M.A.R.T状态。如果坏道,把热备盘顶上去就行。”
陈锐很快回复:“你要帮他们?”
“我只是不想看数据中台挂掉。那里面存着几十个客户的数据,出了大事,连累的是我写的东西。”
“明白了。”陈锐说,“我让人处理。”
三小时后,陈锐发来消息:“按你说的处理好了。数据中台恢复了。周总脸都绿了,因为运维连这么基本的东西都不会。”
我回了一个句号。
陈锐又说:“周总让我告诉你,法务明天会把你要的文件准备好。他说明天请你吃饭,亲自跟你谈。”
我看着屏幕,打字:“好。”
第二天中午,周总亲自开车来接我。
他开的是那辆黑色的保时捷,车上放着我提过的所有东西:离职证明、专利修正申请、知识产权归属说明书,还有一份新的合同,上面写着“首席技术顾问”的字样。
“我知道你想走。”周总说,目视前方,声音干涩,“我不拦你。但盛恒的推荐系统出了问题,客户要告我们。我需要你帮我把这个烂摊子收拾了。你开个价,只要合理,我不还价。”
我坐在副驾驶上,手里翻着那叠文件。
离职证明写得清楚,没有任何附加条款。专利修正申请已经盖了公章,旁边还附了法务的确认函。知识产权归属说明书写得含糊,但有基本的法律效力。
“推荐系统的代码我已经在看。”我合上文件,“给我两周时间,我把核心算法修复并升级。客户那边,你们去安抚。两周后,我给一个可以在客户环境里上线的新版本。”
周总握着方向盘的手紧了紧。两秒钟后,他吐出一个字:“好。”
车在城市的车流里穿行。我侧过头,看着车窗外掠过的街景。高楼一栋接一栋,玻璃幕墙反射着冬日灰白的阳光。
我想起八年前,我坐着公交车穿越大半个城市去盛恒面试。那时候我也是这样看着窗外,心里满是对未来的期待。
八年后的现在,我坐在这辆保时捷的副驾驶上,和那个曾经让我崇敬、后来让我失望的男人,平静地谈着一笔交易。
我没有变成他。但我也不再是八年前的那个我了。
车在一个路口停下等红灯。周总忽然开口,声音很轻:“林远,你还恨我吗?”
我转过头看着他。他的侧脸比八年前苍老了不少,鬓角有了白发,眼袋也重了。
“不恨。”我回答,“只是有些遗憾。”
周总没再说话。绿灯亮了,他踩下油门,车重新汇入车流。
两周后,我完成了推荐系统的核心算法修复与升级。
新版本在客户的技术环境里通过了压测,性能指标比三年前的演示版还好。客户方的技术团队非常满意,撤回了部分索赔要求。盛恒的公关和法务开始全力处理剩余的问题。
陈锐把那家客户的人叫了过来,我们一起开了个线上会议。会后,客户的技术负责人单独找到我,说想邀请我去他们那里做技术顾问。我笑了笑,说以后有机会再说。
我该离开盛恒了。
离开的那天,我没有告诉任何人。没有告别,没有聚餐。我把剩下的东西装进一个纸箱里,抱着走出大楼。
小周追了出来。他站在门口,眼睛红红的。
“林哥,你真的走了。”
“嗯。”我把纸箱放在地上,腾出一只手拍了拍他的肩,“好好干。记得我说的话。”
“我会的。”小周使劲点头,“林哥,不管你去哪里,我以后都想跟着你。”
“先在这儿好好学。以后的事,以后再说。”
陈锐也走了出来。他站在大楼的台阶上,冲我点了点头。
“保重。”他说。
“你也是。”我抱起纸箱。
正要走的时候,我的手机响了。是一个陌生号码。
我接起来。
“林远先生吗?”对方的声音很年轻,“我是元启资本的合伙人,我叫顾航。我们关注您的项目很久了。不知道您有没有兴趣聊聊?”
我愣了一下:“什么项目?”
“您八年前写的那个数据中台框架。”顾航说,“据我们了解,它的知识产权归属现在还在您个人名下。我们觉得这个框架有很大的商业化潜力。如果有兴趣,我们聊聊。”
我站在盛恒科技的大楼前,抱着一个纸箱,手机贴在耳边。十二月的风吹过来,冷的,但阳光已经出来了,落在肩膀上,微微发烫。
我转过身,最后一次看了一眼那栋大楼。
“有兴趣。”我说。
然后,我迈开步子,朝着阳光的方向走去。
(全文完)
热门跟贴