同事年终奖十八万我八百八,领导催续签我摆手:公司再牛与我无关
楔子
手机屏幕亮了一下,银行短信弹出来:到账八百八十元。林晓盯着那串数字看了三秒,耳边正响着张经理洪亮的声音:“徐明,十八万!大家鼓掌!”掌声像潮水一样涌过来,他握着手机的手指微微发白。旁边老赵凑过来低声问:“晓子,你多少?”林晓笑了笑,把屏幕扣在桌上。小雅的消息恰在这时跳出来:“老公,年终奖发了吗?”他盯着对话框,打了删,删了打,最后只回了三个字:“回家说。”
第一章 八百八与十八万
年会大厅的灯光刺得人眼睛发酸,林晓坐在第三排靠过道的位置,手里攥着那张刚发下来的年终奖明细单。主持人还在台上念着优秀员工名单,每念一个名字,台下就响起一阵掌声。他低头又看了一眼手机银行短信,八百八十元,数字清晰得让人没法自欺欺人。
“晓子,你多少?”老赵从旁边探过身来,压着嗓子问。
林晓把明细单折了两折塞进口袋,笑了笑:“就那样。”
老赵还想追问,台上张经理已经接过话筒,西装笔挺地走到聚光灯下,脸上挂着那种掌控一切的微笑。“各位同事,今年公司业绩逆势增长,尤其是智云系统项目,拿下了集团年度创新奖。”他顿了顿,目光扫过全场,“这个项目能成,徐明功不可没!年终奖十八万,大家鼓掌!”
掌声从后排先响起来,噼里啪啦连成一片。徐明从第一排站起来,转身朝大家挥手,脸上是恰到好处的腼腆。“谢谢张经理,谢谢大家,都是团队配合得好。”他嘴里说着团队,眼睛却有意无意地往林晓这边瞟了一眼。
林晓旁边的女同事小刘凑过来嘀咕:“徐明拿了十八万?智云系统不是林哥你……”她话没说完,被旁边人拽了一下袖子,讪讪闭了嘴。
老赵把茶杯往桌上一磕,发出不大不小一声响。他在这家公司干了二十多年,什么场面没见过,可此刻脸上的褶子全挤在一起,像是自己也受了委屈。“这奖发得,”他低声说,“看不懂。”
林晓没接话。他想起过去一年里,徐明做的那几版演示PPT还是他帮忙调的排版,甚至连汇报时说的那些技术亮点,都是从他提交的文档里摘出来的。可这些事没法在年会上说,说了就是“不顾全大局”。
手机震了一下,小雅发来消息:“老公,年终奖发了吗?”
他盯着对话框,光标一闪一闪的。三年前刚进公司那会儿,小雅还开玩笑说“等你年终奖拿十万我就辞职去旅游”,后来这个数字逐年缩水,从十万到五万,从五万到“够过年就行”。去年她再没提过旅游的事,只说“别太累,身体要紧”。
林晓打了三个字:“回家说。”
发完他把手机屏幕扣在腿上,台上张经理还在继续讲话,说什么“公司平台成就个人”“感恩珍惜”之类的话。每说一句,就有几个人跟着点头。徐明已经坐回去了,正跟旁边财务部的小姑娘说笑,手搭在椅背上,姿态舒展得像只晒太阳的猫。
“林哥,”后排一个刚入职半年的小伙子探过头来,声音压得极低,“我听他们说智云系统的核心算法是你写的,真的假的?”
林晓还没来得及回答,张经理的话筒又响了:“对了,说到智云系统,过完年二期就要启动,还是由徐明牵头。大家要继续支持配合!”张经理的目光有意无意地掠过林晓头顶,像是这个座位上的人根本不存在。
小伙子缩回去了。林晓把明细单从口袋里掏出来又看了一眼,八百八,扣完税大概也就够给小雅买件好点的羽绒服。他忽然想起上周徐明在群里晒的新车钥匙,宝马五系,落地五十多万。当时群里一片恭喜声,他也跟着发了个“恭喜”,徐明回了个握手表情。
年会在歌舞表演中进入尾声,大家开始起身互相敬饮料。徐明端着杯子走过来,脸上挂着得体的笑容:“晓哥,今年这个项目多亏你帮忙,辛苦了。”
林晓站起来举杯碰了一下:“分内的事。”
“哎,话不能这么说。”徐明凑近一步,压低声音却让周围人都能听见,“张经理说了,明年给我配个技术副手,晓哥你有没有兴趣?我跟张经理推荐你呗。”
这话说得客气,可“推荐”两个字落在林晓耳朵里,像有人拿指甲刮过黑板。旁边几个人都看过来,表情各异。小刘端着饮料杯僵在那里,老赵干脆把脸转向了窗外。
“不用了,”林晓放下杯子,“我手头的活还忙不完。”
徐明哈哈一笑,拍了拍他肩膀:“那行,晓哥有需要随时找我。”说完端着杯子往领导那桌去了,背影在灯光下拉得又长又直。
老赵哼了一声,把凳子往林晓这边挪了挪:“你看见了?十八万,新车,二期牵头。晓子,你在这公司三年,加班加起来得有两百多天吧?去年大年三十你还在改代码,我记得清清楚楚。”
林晓没说话,开始收拾桌上那点东西——一个笔记本,一支笔,参会证。还有那张八百八十元的明细单,他犹豫了一下,没扔,折好放进了钱包夹层。总得留着,过年回家给父母看的时候,好歹是个证明:儿子没偷懒。
走出年会大厅时,夜风直往领口里灌。林晓裹紧外套往地铁站走,手机又震了,小雅发来一条语音:“那我等你回来吃饭,今天做了你爱吃的糖醋排骨。”
他站在路灯下听了两遍,那条语音里带着一点点笑意,像是怕他听出担心。林晓抬头看了看路边光秃秃的梧桐树,枝丫横斜着伸向夜空。他忽然想起老赵去年年底跟他说过的一句话:“这公司啊,能干的人干到死,能说的人拿到钱。”当时他还觉得老赵太悲观,现在想想,老赵这人,眼睛毒得很。
地铁口的风更大,林晓把围巾紧了紧。手机屏幕上还停着小雅的对话框,他想再发点什么,打了几个字又删了。有些话得当面说,对着那张炖着排骨的餐桌,对着那盏暖黄色的厨房灯。至于明天去公司还要不要看那个续签合同,他心里那个模模糊糊的念头,好像被今晚这场风吹得清楚了一些。
第二章 三年功与一夜名
林晓到家时,糖醋排骨的香味从门缝里钻出来,把他冻僵的鼻尖熏得发痒。小雅围着那条洗得发白的小碎花围裙,正往盘子里盛汤,见他进门,回头笑了笑:“洗手吃饭。”
餐桌上是三菜一汤,排骨、清炒西兰花、凉拌黄瓜,还有一碗紫菜蛋花汤。都是家常菜,但每一道都做得仔细,排骨的糖色挂得匀,西兰花翠绿没发黄。林晓坐下来,端起碗先喝了口汤,热气从喉咙一路暖到胃里。
“今天年会怎么样?”小雅给他夹了块排骨,语气尽力随意。
“就那样。”林晓嚼着排骨,含糊地说。
小雅没再追问,低头扒饭。吃到一半,她忽然放下筷子,从围裙兜里掏出一张超市卡推过来:“今天医院发了两百块的年货卡,我换了点米和油,卡里还剩八十多,你回头买两包好烟。”
林晓攥着那张卡,塑料边缘硌着掌心。他想起钱包里那张八百八十块的明细单,突然觉得那串数字像个讽刺。小雅一个月工资四千出头,夜班一个接一个地熬,攒下来的年货卡还想着给他买烟。
“小雅,”他放下筷子,“我今晚想去河边走走。”
小雅看了他一眼,没问为什么,起身去卧室拿了件厚羽绒服:“穿上,河边风大。”
冬夜的河边步道没什么人,路灯把两个人的影子拉得又长又瘦。小雅挽着林晓的胳膊,两个人的脚步踩在铺着薄霜的石板路上,发出细碎的声响。河面结了层薄冰,映着对岸楼群的灯光,碎成一片一片的黄色光斑。
“智云系统那个项目,”林晓终于开口,“当初是我一个人从底层架构开始写的。”
小雅嗯了一声,手在他胳膊上轻轻捏了捏。
“去年四月份那个高并发的问题,服务器一晚上崩了六次,我在公司住了四天,最后用了一个动态资源分配的方案才解决。那天凌晨三点多我改完最后一版,徐明第二天上午拿着我的方案去给蔡总汇报,汇报完蔡总拍着他肩膀说小徐年轻有为。”
他说得很平,没什么语气,就像在复述一段别人的事。可小雅挽着他的手收紧了。她知道那四天——每天她打电话过去,都能听见林晓那边键盘噼里啪啦响,有时候话说到一半,他突然喊一声“等等,日志出来了”,然后电话就搁一边去了。
“那张照片,”林晓继续说,“公司展厅里挂的那张项目团队合影,徐明站蔡总旁边,我站最边上,还让裁掉了一截。那天拍照本来没叫我,是客户指名要看技术负责人,张经理才临时把我从工位拽过去的。”
小雅停下脚步,转过身看着他。路灯的光从侧面照过来,把他脸上的轮廓映得有些锐利。她抬手把他外套的拉链往上拉了拉:“你冷吗?”
“不冷。”
“林晓,你记住一件事,”小雅的声音很轻,但一个字一个字咬得清楚,“你写的那些代码,一行一行都在那里,它不会因为别人抢了功劳就变成别人的。你熬的那些夜,掉的头发,都长在你身上。徐明偷得走署名,偷不走你脑子里的东西。”
林晓看着她。小雅说这些话时没有咬牙切齿,也没刻意煽情,就像在讲今天食堂的菜有点咸那样平常。可正是这种平常,让他心头那股被风灌了三个小时的凉意,忽然软了下来。
从河边折返时,路过一个还没收摊的糖炒栗子铺子。小雅买了一小袋,两个人站在路边剥着吃。栗子烫手,小雅一边吹一边剥,剥出完整的一颗就往林晓嘴里塞。林晓嚼着栗子,甜糯的香气顺着鼻腔往上走,他忽然想起一件事。
“上个月老赵跟我说,蔡总在评审会上只问了一句话。”
“什么话?”
“他问张经理,这个系统是谁主导开发的。张经理说徐明。蔡总说嗯,挺好,年轻有潜力。”林晓把栗子壳扔进垃圾桶,“就这一句,没问我名字。”
小雅剥栗子的手顿了一下。她低头看着手里那颗剥了一半的栗子,像在思考什么。路灯下,她睫毛的阴影投在颧骨上,微微颤了颤。
“那你打算怎么办?”她问。
林晓没马上回答。远处河对岸有辆车驶过,灯光从桥面上掠过,在冰面上划出一道转瞬即逝的亮线。他把手插进口袋,指尖碰到了那张折好的明细单,纸的边缘已经被体温捂得发软。
“续签合同还在我工位上,”他说,“张经理周一就放那儿了,我还没签。”
小雅抬起头看他,眼睛亮了一下,没说话,只点了点头。两个人继续往家走,栗子袋在小雅手里沙沙响。快进小区时,她忽然说:“不签的话,咱家房贷每月三千八,我的工资扣完房贷和日常开销还剩一点。你的失业金能领几个月,中间要是接点外包,应该能撑一阵。”
她说得条理清楚,显然不是刚刚才想的。林晓脚步一滞,随即跟上去,心里那个模糊的念头像被这句话浇了水,忽然长出了根。
两人进楼道时,林晓掏出钥匙。金属碰撞的声响在安静的楼道里回荡。他忽然想起年前老赵在楼梯间抽烟时说的话:“晓子,你技术是好,可你太闷了,闷到别人觉得闷声干活是应该的。你知道你缺什么吗?你缺个人在后面推你一把。”
钥匙插进锁孔转了一圈,门开了。小雅先进去开灯,暖黄色的光从屋里涌出来,打在她侧脸上。她回头冲他笑了一下:“进来啊,发什么呆。”
林晓跨过门槛,反手带上门。客厅茶几上摆着那张超市年货卡,还有他今天出门忘带的保温杯。电视柜上放着小雅上个月买的绿萝,藤蔓已经垂下来一截,嫩绿的新叶支棱着。他忽然觉得,屋里这方寸之地,比公司那间敞亮的会议室让他踏实得多。
“小雅,”他说,“我明天去公司。”
小雅正在厨房热汤,探出半个头看他。
“合同的事,我当面跟张经理说清楚。”他顿了顿,“至于说不说得通,那是他们的事。但我得先想清楚自己要什么。”
小雅把热好的汤端出来放在他面前,汤碗上面还飘着两片新鲜的葱花。她坐下来,把那张超市卡又推了推:“先喝汤,明天的事明天再说。反正不管怎么样,排骨管够。”
林晓低头笑了,端起碗喝了一大口。汤有点烫,烫得他眼眶发酸。窗外隐约传来远处谁家放小年的鞭炮声,噼啪响了几下就没了声息。他放下碗,看见小雅正低头剥最后两颗栗子,头发从耳后滑下来,遮住了半边脸。他没再说话,只是伸手把那缕头发轻轻给她别到耳后。这个年,无论如何要先过好。
第三章 续签合同摆面前
周一早上,林晓到得比平时早了二十分钟。办公室里只有保洁阿姨在收垃圾袋,日光灯管嗡嗡亮着,一排排工位空空荡荡。他走到自己座位前,把包放下,那张续签合同还搁在键盘旁边,左上角压着张经理的签字笔,像是随时催人落笔。
他把合同拿起来翻了翻。两年期限,岗位不变,薪资那一栏还是老数字,甚至比三年前入职时只多了两百块。而去年公司整体调薪时,他被告知“技术岗普调幅度有限”,徐明却在同一个月换了新车。
八点四十分,张经理端着保温杯踱过来,杯盖上还冒着热气。他站在林晓工位旁边,眼睛先扫了一眼合同,然后才看林晓。
“看过了?”张经理的语气很随意,像在问早餐吃了没。
“看过了。”
“那就签吧,我十点要交到人事那边。”张经理拧开杯盖喝了一口,目光已经移向别处,走廊那头徐明正拎着公文包走进来,西装笔挺,头发梳得一丝不乱。
林晓没动笔,手指按住合同边缘,抬头问:“张经理,我想问一下,年终奖的依据是什么?”
张经理明显顿了一下。他把保温杯换到左手,右手在裤兜里摸了摸,像是找什么东西,最后只是掏出一串钥匙在掌心转了转。“公司有综合考评体系,你也是老员工了,应该清楚。效益、岗位、贡献度,多维度打分,蔡总亲自审定的。”
“我的贡献度是哪一项扣了分?”
走廊那头徐明已经走近了,听到这句,脚步慢下来,斜靠在隔壁工位的隔板上,手里转着一支钢笔。他嘴角弯了弯,没说话,但那副神态比说什么都刺眼。
张经理皱了皱眉:“林晓,你这是在质疑公司的考核制度?”
“我没质疑制度,我只是想知道自己的分数构成。”
“这个不方便公开,涉及公司机密。”张经理把钥匙收回口袋,语气硬了几分,“你签还是不签?不签的话我得提前跟人事说,流程走起来很麻烦。”
徐明这时插了句嘴,声音不大不小,刚好够整片区域听见:“张经理,人家技术大拿嘛,当然得慎重。不过说实话,技术岗就这个行情,干得再好也是后台的活,前台汇报才是脸面。您说我讲得对不对?”
他说完冲林晓笑了笑,那笑容像隔着一层油纸,看得到温度,摸不着暖意。
林晓盯着合同上那行数字。八百八。他想起来,徐明汇报那次,自己刚熬完第三个通宵把智云系统的数据接口跑通,眼睛里全是红血丝,洗脸时鼻血滴在面池里,用凉水冲了半天才止住。第二天徐明穿着新衬衫上台演示,蔡总在台下点头,张经理在微信群里连发三个竖大拇指的表情。
“张经理,”林晓的声音没有拔高,反而比平时低了一些,“我在这家公司干了三年,智云系统核心模块一共行代码,有七成是我写的。加班时长我排部门第一,系统的稳定性测试从来没出过二级以上事故。如果这些都不够考评分数,那我想知道哪一项够。”
办公室里陆陆续续来了人。小刘端着一杯豆浆站在过道口,不敢往里走。老赵从茶水间出来,手里拎着刚洗好的杯子,见状停住了脚步,靠墙站着,眼睛看着张经理的后脑勺。
张经理的脸绷紧了,他往前半步,压低声音:“林晓,有什么事我们私下聊,别在这儿说。年终奖是集团定的盘子,我一个部门经理能有多少话语权?你要觉得委屈,可以往上反映,但合同今天必须给我个准话。”
“我考虑一下。”林晓把合同放回桌面,钢笔推到一边。
张经理盯了他两秒,嘴角抽了一下,像是想说什么重话又忍住了。最后只丢下一句“中午之前给我答复”,转身走了。徐明跟在后面,走了几步又回头看了林晓一眼,眼神里有一种放了心的得意,像是在确认这个闷葫芦终究翻不出什么浪花来。
人群散去。林晓坐在椅子上,手搭在键盘上,屏幕保护程序启动,一串串代码从上往下流。他看见自己三年前写的第一版架构,注释里还留着当时的日期和一行小字:“稳住,能跑。”
老赵不知什么时候走过来,把一杯热茶放在他桌角,什么话也没说。茶杯是旧的,杯壁上有道细裂纹,但装着热水照样暖手。老赵拍了拍他肩膀,力道不轻不重,转身走回自己工位,从抽屉里摸出老花镜戴上,开始慢条斯理地翻文件。
林晓掏出手机,对话框里小雅昨晚发的那条还挂在最上面:“明天不管结果怎么样,晚上吃火锅。”下面是她拍的一张超市冰柜照片,肥牛卷码得整整齐齐,标签上写着特价。
他打了几个字又删掉,最后只发了一朵雪花的表情过去。很快小雅回了一张照片,是她科室窗台上的一盆水仙,花苞刚刚裂开一道缝。
林晓把手机扣在桌上,重新拿起那份合同。纸很轻,几乎没什么分量,可从他指尖到手腕,再到整条胳膊,都沉得发僵。他翻到最后一页,签字栏空白,像一张还没刷卡的闸机口——腿迈过去很容易,但迈过去之后要去哪里,他还没完全想清楚。
但他至少第一次看清了一件事:这扇门里,没有他的路。
第四章 饭桌上的电话
林晓到家时天已经暗了。楼道里飘着隔壁人家炒辣椒的呛味,他站在门口摸了摸口袋,才想起钥匙落在工位上。抬手敲门,来开的是母亲,围着那条洗得发白的碎花围裙,手在围裙上蹭了两下,说怎么才回来,你爸都问三遍了。
客厅里电视机开着,音量调得很低。父亲坐在沙发上看新闻,面前那杯茶已经凉了,杯底的茶叶沉成墨绿色一团。见林晓进来,父亲只抬了抬下巴,示意他坐。茶几上摆着一盘切好的橙子,皮剥得干干净净,一瓣一瓣码着,是小雅上次来教母亲的切法。
“小雅呢?”母亲往厨房走,扭头问了一句。
“她晚点到,科室临时有个培训。”林晓坐下,拿了一瓣橙子放进嘴里,甜里带着一丝酸涩,汁水在口腔里炸开。他想起早上那个数字,八百八,搁在茶几上连一盘像样的果篮都买不起。
父亲放下遥控器,新闻里正在播天气预报,说一股冷空气南下,未来三天气温骤降。父亲拿起茶杯晃了晃,没喝,又放下。
“最近公司怎么样?”
“还行。”林晓说。
“还行是怎么样?”父亲不看他,目光停留在电视屏幕上那团旋转的冷气团云图上,好像只是随口一问。
“老样子,项目多,活忙。”林晓拿起第二瓣橙子,在手里转了一圈,没往嘴里送,“年前发了年终奖,该发的都发了。”
他说这话时喉咙有点发紧,但忍住了。父亲在这个厂子里干了一辈子钳工,八级工证书压在玻璃台板底下,和母亲年轻时的黑白照片摆在一起。他这辈子最不喜欢听的就是“还行”这两个字。小时候林晓拿成绩单回来,说还行,父亲当场把卷子拍在桌上,说你的还行是在哪个档次上还行?上游就是上游,中游就是中游,别拿还行糊弄自己。
可今天父亲没有追问。他只是嗯了一声,端起茶杯终于喝了一口,茶早就凉透了,他皱了皱眉,还是咽了下去。
“你妈说你今天发奖金,让我问问你够不够过年。”父亲终于转过头来,眼神不锋利,甚至比平时软化了许多,眼角的皱纹像年轮一样堆叠着,堆出一种林晓不太熟悉的老态。
“够了。”林晓的声音低下去。
门铃响了。母亲小跑着去开门,小雅站在门口,胳膊上搭着羽绒服,脸上带着赶路的风尘,鼻尖冻得微微发红。她冲母亲笑了笑,说阿姨我带了点楼下的桂花糕,趁热吃。母亲接过袋子,嗔她乱花钱,手却已经拆开了纸包,屋里一下子弥漫开桂花的甜香。
小雅换好拖鞋走到客厅,在林晓旁边坐下,手自然地伸过来,握了一下他的左手。她的掌心是热的,像捂了一路的暖水袋。林晓感觉到她手指收紧的力道,不大,但很确定。她没有问他今天怎么样,也没有使眼色,只是握着,让他知道她在。
饭桌摆开,四菜一汤。母亲炖了排骨萝卜,父亲拿出一瓶没开封的白酒,说今天高兴,喝一杯。他给林晓倒满,自己也倒了半杯,小雅和母亲喝热豆浆。父亲举杯碰了碰林晓的杯子,杯沿清脆地响了一声。
“工作上的事,自己心里有数就行,”父亲说,“做人做事,对得起自己那份手艺。”
这是父亲第一次在饭桌上主动提工作。以前他只说好好干,听领导的话。林晓低头扒了一口饭,排骨炖得软烂,筷子一拨就脱了骨。他想起刚入职那年,父亲把自己那块老式机械手表摘下来送给他,说上班了,得守时。那块表现在还在抽屉里,表带已经发硬,但他一直没扔。
吃到一半,小雅的手机震了。她看了一眼屏幕,眉头轻轻动了一下,然后接起来,嗯了两声,说好我马上来。挂了电话她抱歉地看着大家,说科室有个病人情况不太好,夜班人手不够,她得去顶一下。
母亲连忙站起来,拿了个饭盒给小雅夹菜,说带路上吃,别饿着。小雅接过饭盒,飞快地吃了两口饭,起身穿外套。走到门口又折回来,走到林晓身边,弯下腰,声音压得很低,只有他听得见:“不管什么事,回家说。”
她握了握他的手,这次比刚才紧,拇指在他手背上按了一下,然后松开,转身走了。门关上,楼道里传来她下楼的脚步声,很快很稳,像她这个人。
林晓往嘴里塞了一大块萝卜,嚼了半天没咽下去。父亲看了他一眼,没说话,拿遥控器把电视音量调大了一点,新闻里在播春运火车票开售的消息。
手机在裤兜里震动起来。林晓摸出来一看,是老赵。他起身走到阳台上,合上推拉门,夜风灌进来,比白天冷了许多。阳台角落里摆着母亲养的几盆蒜苗,叶子冻得有些耷拉。
“喂,赵哥。”
“吃了没?”老赵的声音从听筒里挤出来,背景里有风声,他大概也在外面。
“正在吃。”
老赵沉默了两秒,像是在措辞。然后他说:“林晓,有个事我得跟你说一声。今天下午开部门周会,张经理提了智云系统二期的事,集团准备年后启动,预算翻倍。张经理推荐了徐明牵头。”
林晓握着手机的手指关节泛白,但声音没变:“嗯。”
“你‘嗯’是什么意思?”老赵的声音急了,“二期项目的地基是你打的,系统架构你最清楚,他徐明连数据流和业务流的区别都说不利索,怎么牵头?今天在会上,他拿你的架构图讲了二十分钟,说成是自己设计的优化方案。蔡总当场拍了板。”
风灌进领口,林晓缩了缩脖子。楼下有小孩在放烟花,一束光蹿上去,炸开几瓣零落的火星,很快灭了。
“赵哥,我知道了。”
“你知道什么了?你得留个心眼。年后要是继续签,就要求写明项目署名和奖金分配。你这人就是太闷,什么都往肚子里咽——”
“我不打算续签了。”
这四个字从嘴里出来的时候,林晓自己先愣了一下。仿佛这句话在胸腔里憋了太久,有了自己的重量,一出口就砸在地上,震得他胸口发麻。他一只手撑着阳台的窗台,窗台上落了薄薄一层灰,指尖按出一个清晰的印子。
电话那头安静了好几秒。
“你想好了?”老赵的声音沉下来。
“刚刚想好的。”林晓回头看了一眼客厅。推拉门后面,父亲正夹着一筷子青菜往嘴里送,母亲在给他盛汤。两个人谁也没往阳台看,但那碗汤一直没端到父亲面前,母亲端着碗,侧着身,像是在等什么。
“行,”老赵长长出了口气,“你想好了就行。需要我做什么,你说。”
林晓认真地说:“赵哥,先别跟任何人说。我还有些事要处理。”
“放心,我这张嘴你还不知道?当年我闺女谈对象我都能瞒她妈三个月。”老赵顿了顿,又说,“那你自己把该准备的准备好,年后再说。先把年过好。”
挂了电话,林晓在阳台上又站了一会儿。烟花散了,夜空恢复成一种沉闷的暗红,是城市灯光在云层上的倒影。他把手机揣进兜里,推开推拉门,热气裹着饭菜的香味扑面而来。
父亲正把最后一块排骨夹到母亲碗里,看见他进来,头也不抬地说:“站在外面冻着,菜都凉了。坐下吃。”
林晓坐回椅子上,端起那碗已经半凉的米饭。小雅带走的那盒菜还放在玄关鞋柜上,母亲追出去时忘了给她。他忽然觉得自己这顿饭吃得格外清醒,每一口都尝得清清楚楚:萝卜的清甜,排骨的咸香,还有一点说不出来的东西,像是咽下了一粒石子,硌着,但能受得住。
窗外远处又升起一束烟花,比刚才那束高了许多,散开的时候照亮了半边天。林晓低头扒完最后一口饭,把碗放下。母亲问他要不要再添点,他摇了摇头,说吃得很饱。
他说的是真话。这是很久以来,他第一次在一顿饭里吃出饱足的感觉。
第五章 深夜代码与凌晨决定
林晓是被客厅里那杯凉透的茶弄醒的。他躺在沙发上,身上盖着父亲那件旧棉袄,棉袄的领口磨得发亮,蹭着脸颊有些扎人。茶几上摆着半杯茶,杯壁的水汽早就散尽了。电视关了,机顶盒的红灯在黑暗里像一只醒着的眼睛。
他摸出手机看了一眼,凌晨一点四十七分。父母房间的门关着,门缝里没有光。小雅还没回来。
他坐起来,棉袄滑到腿上。沙发对面的墙上挂着一幅十字绣,是母亲绣的牡丹花,在暗光里只剩下模糊的轮廓。林晓揉了揉后颈,起身走到玄关,看见小雅带走的那盒菜还放在鞋柜上,保鲜膜封着,上面凝了一层细密的水珠。他把它放进冰箱,动作很轻。
也许该睡了。明天一早还要陪父母去超市置办年货,母亲说了三天了。可他躺回去,眼睛闭上,脑子却像被人按下了开关,那些代码、架构图、会议记录,一行行一帧帧地翻过去,拦都拦不住。澡也没洗,林晓掀开棉袄,走进书房,把门虚掩上。
书房的台式机是他大学时攒的,风扇声音大,但一直没舍得换。按下电源键,机箱嗡嗡地转起来。屏幕幽幽地亮着,书房里浮起一层浅蓝色的光。林晓坐下来,习惯性地打开本地代码仓库。
他的手指在键盘上停了停。智云系统的本地副本还在,最后一次提交是两个月前,提交信息写着“修复结算模块金额精度问题”。那是他熬了两个通宵找到的缺陷——财务部门结算时金额偶尔会差几分钱,所有人都以为是四舍五入的误差,其实是浮点运算的累积损失。他把整块的运算逻辑重写成了定点数实现,当天测试通过,第二天徐明在晨会上说“结算问题已经优化”。
徐明提交的代码他本来不想看,可手指自己动了,点进了最近三个月的提交记录。徐明的提交量不大,大部分是格式调整和配置文件修改。但有一条引起了他的注意:半个月前徐明提交了一个叫“数据同步优化”的改动,修改了二十七个文件,提交信息只有两个字——优化。
林晓点开具体改动内容。风扇嗡嗡地响着,他盯着屏幕,手指在鼠标滚轮上慢慢滚了两遍,然后停住了。
徐明把数据同步模块的异步队列改成了同步阻塞。原本设计的并发写入被改成了一条一条处理,理由是“保证数据一致性”。但在高并发场景下,同步阻塞会让整个系统响应时间呈指数级增长。更严重的是,异常处理被简化成了一个空的捕获块——任何错误都被吞掉了,日志里只留下一行“同步失败”,没有堆栈,没有上下文。
林晓的后背绷直了。他找到自己的原始设计文档,对比了徐明改动的代码路径,确认了自己的判断。如果数据量达到二期项目预期的量级,这个模块会在第一个高峰期直接崩溃,而且因为异常被吞,崩溃前不会有任何有效预警。
他靠在椅背上,盯着天花板。书房角落堆着几箱旧书,影子被屏幕光拉得很长。他不是没有犹豫过——年前指出这个漏洞,公司可能会不高兴,张经理更会不高兴。可他又想,如果不说,二期上线之后出了问题,整个团队一年的努力全白费。
凌晨一点五十八分,林晓在工作群里发了一条消息,把问题点和风险写清楚了,措辞平淡克制,只说了技术事实,附带了一段自己写的小测试脚本,用来复现高并发下的响应时间劣化。
发出去之后,他把手机扣在桌面上,起身去厨房倒水。客厅里静得能听见冰箱制冷的嗡嗡声。他灌了两口凉水,又回到书房。群里已经有人回复了,是组里一个年轻的测试工程师,只发了一个问号。然后徐明回了:“收到,明天看。早点休息。”
林晓盯着“明天看”三个字看了很久,把电脑关了。
他走进卧室,小雅已经回来了,被子盖到胸口,呼吸很轻。她大概刚到家没多久,护士服搭在床尾的椅子上,袖口还有消毒水的味道。林晓轻手轻脚地躺下来,尽量不去碰她。可他一躺下,小雅就翻了个身,一只手搭上了他的胳膊。
“几点了?”她的声音很哑。
“快两点半了。”
小雅的眼睛睁开一条缝,借着窗帘缝里漏进来的路灯光看了他一眼。“你没睡。”
“睡了,又醒了。”
小雅没再问,手从胳膊滑到他的手背上,停在那里。她的指尖有些凉,掌心却是热的。两个人就这么在黑暗里躺了一会儿,楼下偶尔有车经过,灯光在窗帘上扫出一道弧线又消失。
“小雅。”
“嗯。”
“公司年后让我续签合同,张经理已经找我谈了两次。”
小雅的手指在他手背上轻轻按了一下。“你怎么想的?”
林晓没说话。黑暗把一切都放大了——老赵下午那通电话里的话,年会上徐明站在台上举着十八万奖金牌的样子,张经理拍着他肩膀说“公司不会亏待老实人”时嘴角的弧度,还有他自己三年里熬过的那些通宵,一行一行敲出来的那些代码。
“我不想签了。”他说。声音很轻,轻得像在说一件与自己无关的事。
小雅沉默了几秒,然后把他的手握紧了。她的声音从被子里传出来,闷闷的,但每个字都清楚:“那就别签。”
“可能会有一段时间没有收入。”
“我工资够用。”
“你一个人上班,爸妈那边——”
“爸妈那边我去说。”小雅翻了个身,面朝他,另一只手也伸过来,把他的手包在掌心里,“林晓,你自己想清楚就行。不管你做什么决定,我都支持你。”
月光从窗帘的缝隙里斜进来一条,落在她脸上。她没化妆,眉毛淡淡的,眼神却亮。林晓看着她,忽然觉得胸口那粒硌了很久的石子,终于被什么东西融化了。他反手握住她的手,握得很紧,像要把这些年吞进去的话全从掌心里传过去。
“睡吧。”小雅说。
“嗯。”
这一夜林晓睡得很沉,一个梦都没做。早上六点多被母亲的脚步声吵醒时,他发现小雅的手还握着他的手,一夜没松开。他从床头摸过手机,工作群里徐明又发了一条消息:“测试脚本我看了,那个场景生产环境不会出现,先不改了。”
林晓看完,把手机放回床头,轻手轻脚地下了床。窗外天还没亮透,远处传来零星的鞭炮声。他走到书房,打开电脑,把本地仓库里所有的技术文档和架构设计通读了一遍,确认每一份都完整、清晰、没有疏漏。然后他建了一个文件夹,命名“工作交接”,把需要移交的内容一一列进去。
做完这些,天已经大亮了。小雅不知什么时候站在书房门口,头发散着,眼睛还没完全睁开。她看了看屏幕上那个“工作交接”的文件夹名,什么也没问,只是走过来,从背后环住了他的肩膀。
阳光从书房的窗户照进来,落在键盘上,一格一格,像琴键。
第六章 工位上的最后一天
林晓到公司的时候,走廊里已经有人陆陆续续在收拾桌面,年味还没散干净,办公区弥漫着一股散漫的气息。他把那个装着“工作交接”文件夹的U盘放进抽屉,从桌上拿起那份续签合同,翻了翻,又合上。
张经理的办公室门关着,磨砂玻璃后面隐约有人影晃动。林晓等在门口,没坐。两分钟后门开了,徐明从里面出来,手里端着一杯热茶,看见林晓手里的合同,嘴角弯了一下。
“哟,想通了?”徐明侧了侧身,让出门口。
林晓没接话。
张经理坐在办公桌后面,正在看手机,看见林晓进来,把手机扣在桌上,脸上堆出笑。“来来,坐。合同签了?”
“张经理,这个合同我不签了。”
办公室里安静了两秒。张经理的笑容还挂在脸上,但眼睛里有什么东西在重新对焦。“你说什么?”
“我不续签了,”林晓把合同放到桌面上,手指在合同边缘按了一下,推过去,“提前跟您说一声,方便公司安排人手交接。”
张经理没去拿合同,身子往后一靠,椅背发出咯吱一声。“林晓,你这是在跟我赌气。年终奖的事是吧?我跟你解释过了,薪酬体系是公司统一核算的,技术岗和业务岗本来就不一样,你盯着徐明那十八万看有意思吗?”
“我没盯他。”
“那你闹什么?”
林晓站得很直,声音不高不低。“张经理,我在这三年,智云系统从零到一,核心模块每一行代码我都清楚。我每个月拿的工资对得起我的付出,年终奖多少我没意见。但我签不签合同,是我自己的事。”
张经理的脸色沉下来,把手从桌面上收回去,交叉抱在胸前。“行。林晓,你觉得自己翅膀硬了是吧?我告诉你,在这个行业里,没有平台你什么都不是。你那些代码,放在公司项目里才叫东西,拿出去谁认你?”
林晓没有反驳,只是平静地看着他。“交接文档我会在今天下班前整理好,放在共享盘里。麻烦您安排人对接。”
他转身往外走。张经理在他身后提高了嗓门:“你可想清楚了,出了这个门,再想回来可就没位置了。”林晓脚步没停,拉开门,徐明还站在走廊里,端着那杯茶,嘴角的笑意已经收不住了。
“听到没?平台。”徐明往旁边让了让,声音不高,但刚好能让林晓听见,“技术岗啊,就是给平台打工的命。”
林晓看了他一眼,没说话,径直走回自己的工位。
他的工位在靠窗的位置,桌面上摆着一盆小雅买的绿萝,叶子有点蔫。他把绿萝端起来浇了水,然后打开电脑,新建了一个文档,文件名就叫“智云系统核心模块交接说明”。
他开始写。第一段是整体架构概述,从数据层到应用层再到接口层,每个层次的设计思路和关键取舍。他写得很快,键盘敲击声均匀而克制。第二段是核心算法的逻辑链路,他把那套自己反复优化过的负载均衡方案拆成七个步骤,每一步配上运行条件和边界情况说明。第三段是已知风险点,他把年初一提交的那个高并发漏洞单独列出来,标注了复现条件和推荐修复方向,没有提任何人名。
写到中午,组里的同事陆续去吃饭,有人路过他工位,探头看了一眼屏幕上满当当的文字,张了张嘴没说话,拍了拍他肩膀走了。林晓继续写,从算法写到数据库索引优化,从索引优化写到缓存策略,从缓存策略写到日志规范和告警阈值。他把三年积攒在脑子里的东西一点一点倒出来,像在打扫一间自己住了很久的屋子,每一件家具都要擦干净、摆整齐,才能放心把钥匙交出去。
下午三点多,老赵端着一杯热水走过来,在他旁边的空椅子上坐下。老赵今年五十八,头发花白,在公司的年头比张经理还长。他什么都没问,坐了一会儿,低声说:“我那边有几个纸箱,给你拿两个过来?”
林晓看了他一眼,点头。“谢谢赵叔。”
老赵起身去储物间,回来时手里拎着两个折叠好的纸箱。他蹲下来帮林晓收拾抽屉里的私人物品——几本技术手册、一个旧鼠标垫、一盒没吃完的润喉糖、小雅给他买的保温杯。东西不多,一个纸箱就装完了。老赵把第二个纸箱放在一边,直起身,看着林晓屏幕上那份还在写的交接文档。
“写了多少了?”
“今天能写完。”
老赵沉默了一会儿,忽然伸手从外套内袋里摸出一张名片,放在林晓桌面的绿萝盆旁边。“这个人姓周,我老同学,做智能仓储设备的。有需要可以打这个电话,他那边缺懂系统架构的人。”老赵说完,没等林晓回应,端起自己的杯子走了。名片压在绿萝的花盆下面,只露出一个角。
林晓把名片收进钱包夹层,继续写文档。下午五点四十,他敲下最后一个句号,把文档保存到共享盘的交接目录里,然后在工作群发了一条消息:“交接文档已上传,核心模块覆盖情况和风险点都写在里面了。后续有疑问可以随时找我,我的电话不变。”
发完之后,他最后看了一眼那棵绿萝,把纸箱封好,抱起箱子往外走。经过张经理办公室时门关着,磨砂玻璃后面人影还在。徐明的工位上堆满了崭新的文件盒,他正对着屏幕打电话,声音很大,像是在跟客户确认什么。林晓没停留,穿过办公区,推开消防通道的门,走楼梯下去。
到了楼下,天已经暗了。他掏出手机,给小雅发了一条消息:“交接完了,明天开始休息。”
小雅秒回了一条语音,女儿在旁边奶声奶气地喊了一声“爸爸”。然后是文字:“晚上想吃什么?我买了排骨。”
林晓站在公司楼下的路灯旁边,把纸箱换了只手,抬头看了一眼这栋自己进了三年的写字楼。某一层的灯还亮着,那是他工位所在的楼层。他没有多看,低下头,在手机里打了四个字:“红烧排骨。”发送之后,他抱着纸箱走向地铁站。路灯把他的影子拉得很长,投在人行道上,跟着他一步一步往前走。
第七章 空荡的客厅
纸箱放在玄关地上,两天没拆。小雅下班回来看见它还在那儿,没说什么,只是把箱子挪到墙角,顺手把林晓扔在鞋柜上的外套挂了起来。
林晓坐在沙发上翻招聘网站,笔记本电脑搁在膝盖上,屏幕的蓝光映得他脸色发白。投出去的简历已经四十七份,有回音的十一份,约面试的六家,真正聊到薪资的有四家。他食指在触摸板上划了一下,邮箱里又跳出一封新邮件,标题是“关于您的应聘资料”,他点开,对方开的价码让他的眉心拧了一下。
“怎么样?”小雅从厨房探出头,锅铲还拿在手里。
“有一家开到一万二。”林晓合上电脑,把手机扔到茶几上。
小雅翻炒了两下锅里的青菜,声音伴着抽油烟机的嗡嗡声传过来:“你原来多少?”
“一万八。”
“月薪?”
“嗯。”
小雅没接话,灶火声和油星子蹦跳的声音填满了客厅。过了大概一分钟,她端着一盘蒜蓉青菜出来,放在餐桌上,又转身回去端汤。林晓起身去拿碗筷,两人面对面坐下,电饭煲里盛出来的米饭冒着热气。
“那家做什么的?”小雅夹了一筷子青菜放进他碗里。
“做电商后台的,技术栈很旧,面试官问的问题还在问jQuery那一套。”林晓扒了一口饭,“我说可以考虑,但价格得再谈,他回了一句‘你这个年纪了,应该更看重稳定’。”
小雅抬起眼皮看了他一眼:“你怎么回的?”
“我说我考虑一下。”
“那就是不去咯。”
“没答应,也没完全拒绝。”
小雅放下筷子,拿过他的手机,翻到那封邮件,看完之后把手机扣在桌上。“一万二,比你刚毕业那会儿也就多三千。干了七八年,技术再往回缩,你受得了?”
林晓没说话,把碗里那点饭扒完了。
第二天上午,又有一家打电话来,说看了他的简历很感兴趣,约他下午去面谈。林晓换了件干净的衬衫出了门,坐了四十多分钟地铁,在城北一栋旧厂房改的办公楼里找到了那家公司。面试他的是个三十出头的产品经理,从头到尾没问技术细节,只问能不能接受加班、能不能接受出差、能不能接受薪资分底薪加绩效。林晓问了一句绩效怎么算,对方说“看项目回款情况”,他当场就没了兴致,礼貌聊了二十分钟便起身告辞。
回来的时候地铁上人不多,他找了个角落的位置坐下。手机震了一下,小雅发来一条消息:“面得怎么样?”他打了三个字:“不合适。”想了想,又补了一句:“晚上我做饭。”
傍晚小雅进门时,林晓已经把排骨焯好了水,正在切姜片。围裙系在他腰上有点短,上面的卡通兔子图案被撑得变了形。小雅换了鞋走过来,靠在厨房门框上看他忙活,嘴角翘了翘。
“看什么?”
“看你做饭挺像回事的。”小雅伸手把他切好的姜片拨到一边,顺手把灶台上的油渍擦了,“我妈打电话来,问我们过年回不回去。”
“回吧。”
“你新工作还没定,回去他们肯定要问。”
林晓把排骨倒进锅里,滋啦一声响,油花溅出来几滴,他往后躲了一下。“问就问呗,实话实说。”
小雅没再追问,转身去客厅收拾。林晓听见她在外面拆快递的声音,胶带撕开的脆响,然后是纸箱折叠的动静。过了一会儿她进来,手里拿着一张银行卡,放在灶台边上的调料架旁边。
“这张卡里有不到十万,够撑几个月的。”小雅声音不高,“你不用急着定,那种压价的、加班的、绩效画饼的,去了也是受气。”
林晓翻炒排骨的动作顿了一下。“你一个人上班……”
“护士这行又不会失业。”小雅拿了双筷子尝了一块排骨,“咸淡刚好。我跟你说,我们科室那个李姐,她老公去年被裁了,在家待了八个月,后来找了个比原来还好的。你这才几天,急什么。”
林晓把焯好的排骨盛进砂锅,加水和调料,盖上盖子慢慢炖。他洗了手,转过身来看着小雅。她正低头看手机,屏幕上是一家三口去年在公园拍的照片,设置了桌面背景。
“我就是觉得……”林晓开口,又停下来。
“觉得什么?”
“觉得对不起你和孩子。”
小雅抬头看他,眼睛里的光很亮。“你辞个职有什么对不起的?那份工作让你过年就领八百多,你对不起谁了?再说了,你那些代码,那些系统,都是真本事。别人不认,我认。”
砂锅里的汤咕嘟咕嘟地响起来,厨房里慢慢弥漫开排骨的香气。林晓伸手把小雅手里那袋没拆完的快递接过来,放在一旁,然后从背后环住她的肩膀。小雅拍了拍他的手背,没说更多的话。
那天晚上吃完饭,林晓把厨房收拾干净,坐在客厅的餐桌前重新打开电脑。他没有再投简历,而是打开了自己那个存了三年的私人文件夹——里面全是他在工作之余写的小工具、优化的算法模块、还有一套完整的低代码开发框架。他从来没有把这些东西拿出去过,因为公司规定所有知识产权归公司所有,哪怕是他用自己的电脑、自己的时间写的。但里面有一条最核心的引擎部分,是他完全独立构思的,跟智云系统的任何代码都没有关系。他翻到那个引擎的底层设计文档,从头到尾读了一遍。窗外不知道什么时候下起了雨,雨点打在玻璃上,一道一道往下淌。
客厅里空荡荡的,小雅带着孩子已经睡了。林晓拿起老赵给的那张名片,看了很久,然后把它放在键盘旁边,用手指按了按。雨声里,他又翻开了那份文档。
第八章 老赵带来的消息
老赵约的地方在城西一家老茶馆,门脸不大,里面摆着七八张方桌,墙上挂着褪色的山水画。林晓到的时候老赵已经坐下了,面前一壶普洱,两个粗瓷杯,桌上还摊着一份报纸。
“来了,坐。”老赵给他倒了一杯,茶水颜色深得像酱油,“这两天在家干什么呢?”
“投简历,面了两家。”林晓端起杯子暖手,“都不太合适。”
老赵点点头,把报纸折起来放到一边,手指在桌面上敲了两下,像是在斟酌措辞。“我跟你说个事,你听听就行,别往外传。”
林晓放下杯子,看着老赵。
“智云二期你走之后,全交给徐明了。”老赵声音压得很低,茶馆里人不多,但他还是习惯性地扫了一眼周围,“上个月客户那边系统出了两次故障,一次是数据接口对不上,一次是夜间批处理卡死,直接影响了他们第二天的业务。客户那边拍了桌子,投诉邮件抄送到了蔡总那里。”
林晓没说话。那两处问题他太熟悉了——接口的兼容性处理是他当初专门写过一个适配层的,夜间批处理的时间窗口也是他反复测算过才定下来的参数。徐明接手之后把这些都改了,改成了看起来更“先进”的方案。
“蔡总在内部会上发了火。”老赵端起茶杯抿了一口,眉毛皱在一起,“拍了桌子,问是谁负责的模块。徐明在会上说是你之前留下的架构有隐患,他正在逐步替换。”
林晓的手指在杯沿上停住了。“我的架构有问题?”
“你急什么。”老赵摆摆手,“蔡总不懂技术,当时没说什么。但客户那边的技术负责人是懂行的,人家邮件里写得很清楚,故障模块的提交记录显示是最近三个月的改动引起的。蔡总再不懂,这个还是看得明白。”
林晓把杯子放下,后背靠在椅背上。茶馆里有人在隔壁桌下棋,棋子落在木盘上啪嗒啪嗒响。他沉默了一会儿,问:“老赵,你跟我说这些,是让我看笑话?”
“我快退休了,看什么笑话。”老赵把茶杯重重一放,“我是觉得你可惜了。你写的那套东西我虽然不是全懂,但在公司这些年,谁在干活谁在混日子,我心里有数。你走了,那套系统迟早要出大问题。”
他往前探了探身子,声音更低了。“你最近要是没定下来,有没有想过自己干?接点外包,或者给人做技术顾问。我有个老同学,姓周,开了一家科技公司,做工业软件那块,最近在找一个懂底层架构的人做顾问。不是全职,按项目算钱。你要是有兴趣,我帮你约出来聊聊。”
林晓没有马上回答。窗外有辆车经过,轮胎碾过积水的声音传进来。他想起那天晚上翻出来的那份底层引擎设计文档,想起小雅放在灶台边的那张银行卡,也想起面试时那个产品经理轻飘飘的一句“看项目回款情况”。
“我手头确实有一个自己写的东西。”林晓开口,语速不快,“跟智云没有任何关系,是我业余时间独立做的,一套低代码开发框架的引擎。还没真正落地过项目。”
老赵眼睛亮了一下。“那你更该跟老周聊聊。他那个人技术出身,识货。你别急着答应什么,先见个面,喝杯茶,成不成都无所谓。”
“他公司做什么方向的?”
“制造业的生产管理系统,还有仓储物流那一块。跟互联网大厂比不了,但业务稳定,客户都是做实业的,付款痛快。”老赵从口袋里摸出手机,翻了两下,“我把你微信推给他?还是你先考虑考虑?”
林晓想了想。“你先推给他吧。我准备一下资料,成不成的,聊聊总没坏处。”
老赵脸上露出笑容,当场就把林晓的微信名片转了过去。“这就对了。我跟你说,老周那人实在,不搞虚的。他要是觉得你行,价钱上面不会亏待你。”
两人又坐了一会儿,茶续了两次水,颜色淡下来。老赵说起公司里最近的变动,说徐明现在走路都带风,张经理逢人就夸二期进展顺利,但实际上项目组里怨声载道,有两个年轻同事已经在悄悄找下家了。
“你那个续签合同,后来怎么处理的?”老赵问。
“退回去了。”林晓说,“张经理找我谈了一次,我没签。”
“他什么反应?”
“说离开平台我什么都不是。”
老赵哼了一声,没接这个话。他把桌上的报纸叠好塞进口袋,站起来拍了拍林晓的肩膀。“平台是平台,你是你。你那双手写出来的东西,换个地方照样有人认。回去准备准备,老周那边估计明后天就会联系你。”
林晓也站起来,把茶钱付了。老赵推辞了一下,没推过,笑着说下次他请。两人在茶馆门口分开,老赵往公交站走,林晓站在路边,看着街上来往的车流发了会儿呆。
手机震了一下,微信上多了一条好友申请。备注写着:周成,老赵介绍的。头像是一张办公桌的照片,桌上摆着几个零件样品,看着像是工厂里拍的。
林晓点了通过。对方很快发来一条消息:“赵哥跟我说了你的情况。明天下午有空吗?我公司这边有个技术方案会,你过来听听,顺便看看我们正在做的东西,咱们当面聊。”
他回了一个字:“好。”
发完之后又站了一会儿,把手机揣进口袋。雨后的空气里有一股潮湿的泥土味,路边的梧桐树开始抽新芽了。他想起那天夜里翻看自己写的引擎文档时窗外的雨声,想起小雅说“你那些代码,都是真本事”。
他深吸了一口气,转身往地铁站走去。脚步比前几天轻了一些。
到家的时候小雅还没下班,林晓坐在餐桌前打开电脑,把那份引擎的设计文档翻出来重新整理了一遍,做了几页简单的说明材料。他挑了几个最能体现技术特点的模块,把核心逻辑和性能数据都列了出来。文档写到一半,手机亮了一下,周成又发来一条消息:“另外,我这边有个小项目,是一个老客户的仓储管理系统升级,规模不大,但时间比较紧。你要是有兴趣,明天可以一起看看需求文档。”
林晓盯着这条消息看了几秒,回了一个“好”字,然后把手机翻过去扣在桌面上。屏幕朝下,看不到亮光,但他的手放在键盘上,指节微微发紧。厨房里炖锅还温着中午剩的汤,他起身盛了一碗,站在灶台边慢慢喝完。
窗外天色暗下来,对面楼里的灯一盏一盏亮起来。他回到电脑前,把那份引擎文档又从头读了一遍。这一次读得比上次更慢,像是在重新认识自己写过的每一行代码。
第九章 第一笔单子
第二天下午两点,林晓按周成发来的地址找到那栋写字楼。楼不高,六层,外立面贴着灰白色瓷砖,门口挂着好几家公司的铜牌。周成的公司在四楼,前台不大,一个扎马尾的姑娘带他到会议室,桌上已经摆了几瓶水和一叠打印好的需求文档。
周成比他想象中年轻,四十出头,穿着深蓝色工装外套,袖口沾了一小块机油印子。他正在白板前跟两个工程师模样的人讨论什么,见林晓进来,快步走过来握手。手掌粗糙,力道很足。
“赵哥跟我夸你夸了好几次。”周成拉了一把椅子过来,自己也在对面坐下,开门见山,“先看东西。老客户的仓储系统用了快八年,想升级成支持多仓库调拨和实时库存同步,后台数据量不小,现有架构撑不住了。这是需求文档,你先翻翻。”
林晓接过文档,一页一页看。周成没催他,起身给白板前那两个人交代了几句,又回来坐下,端起杯子喝了口水。会议室很安静,只有纸张翻动的脆响和窗外偶尔传来的汽车鸣笛。
看了一半,林晓抬头问了一句:“现在用的数据库是哪个版本?”
周成愣了一下,随即笑了。“问到点上了。老版本,两千年左右的,客户的IT部门一直没敢动。你是不是想说迁移方案?”
“对。如果不解决版本兼容,光改前端没有意义。”林晓翻到附录部分,指着其中一段,“这里写了并发峰值,但没写数据增长曲线。能不能给个最近三年的存储增量数据?”
周成转头对旁边那个工程师喊了一声:“小刘,把上个月做的数据库容量报告拿一份过来。”又转回来看林晓,眼神比刚才亮了一些,“赵哥说你话不多,我看你是话都在点上。”
小刘很快送来一份表格。林晓扫了两遍,拿出手机算了几个数,在文档空白处写了三行推导过程,递给周成。“按这个增速,如果做分库分表加读写分离,现有硬件足够撑三年。三年后如果要上云,再做数据迁移,成本可以控制在预算的三分之一以内。”
周成接过文档,盯着那三行推导看了很久。会议室里另外两个工程师也凑过来看,其中一个戴眼镜的低声说了句“这思路干净”。
周成放下文档,双手交叉搭在桌上。“你昨天发给我的那份引擎设计文档,我熬夜看完了。实话讲,前两版我没太看懂,第三版配了说明才跟上。你这个低代码框架的抽象层做得很有意思,要是能落地,对我们后续的二次开发效率提升会很大。”
“还在打磨阶段,没实际跑过生产环境。”林晓实话实说。
“我知道。”周成点点头,“所以我不拿大项目试,先做这个仓储升级。规模不大,三个月工期,预算在这个数。”他在便签纸上写了一个数字,推过来。
林晓看了一眼那个数字。比他预想的高,也比他离职前一个月的工资多出不少。但他沉吟了几秒,拿起笔在下面写了一个更低的数。
“这是我第一次独立接项目,报价按工时估算,材料费另算。”他把便签纸转回去。
周成低头看了两秒,从林晓手里拿过笔,把他写的数字划掉,在旁边写了比原报价高两成的数目。笔尖重重顿了一下。
“好的技术值得这个价。”周成把便签纸折起来,推给林晓,“合同我让法务今天拟,明天给你看。你那边什么时候能开始?”
“今晚就可以。”
周成大笑起来,拍了拍桌子。“赵哥说你这人实在,我看他是说轻了。行,就这么定。小刘,你把需求文档的电子版和旧系统访问权限整理一下,今天下班前发给林工。”
他站起来,又跟林晓握了一次手。这一次力道更重,像是在确认什么。
林晓把便签纸折好放进钱包夹层,走出写字楼时天色还亮着。门口的花坛里种着几棵矮桂花,叶子上浮着一层薄灰。他站在台阶上,把手机掏出来,想给小雅发消息,打了几个字又删掉,最后只发了一句:“晚上加两个菜。”
小雅回得很快:“有好事?”
“回家说。”
他本来想坐地铁,走了几步又改了主意,在路边扫了一辆单车。骑过三个路口,风从领口灌进来,后背微微出汗。到家楼下时天已经暗了,楼道里飘着隔壁炒菜的油烟味。
小雅比他先到,围裙系了一半,厨房台面上放着刚洗好的青菜和一块解冻的排骨。看见他进门,她把围裙带子打了个结,问:“什么好事?你脸上藏不住。”
林晓从钱包里抽出那张便签纸,摊在餐桌上。小雅凑过来看,先没看懂,等看清那个被划掉的数字和旁边加了两成的数目,她愣了一瞬,抬头看他。
“签了?”
“明天签合同,今天口头定了。”
小雅没说话,眼圈先红了一圈。她低头把便签纸拿起来,对着灯光又看了一遍,然后绕过餐桌,一把抱住他。手臂箍得很紧,脸埋在他肩窝里,闷声说了一句:“我就知道。”
林晓站着没动,一只手轻轻拍了拍她的后背。厨房灶上的水烧开了,咕嘟咕嘟响,小雅松开他去关火,回来时眼角还湿着,但语气已经恢复了平常的利索。“你先洗澡,我把排骨炖上。对了,你今晚是不是要做方案?”
“嗯,需求文档看到了,趁热先把架构草图搭出来。”
“那你忙,饭好了我叫你。”
林晓洗了澡出来,在餐桌前坐下,打开电脑。需求文档、旧系统的数据库结构、容量报告都躺在文件夹里,他一个个打开,用自己那套低代码引擎的思路去拆解模块。手指在键盘上敲得很快,偶尔停下来盯着屏幕沉思几秒,又继续。窗外的车声渐渐稀下去,小雅把饭菜热了两次,他胡乱扒了几口,又回到画满框图和箭头的屏幕上。
凌晨一点,核心架构基本上定型了。他靠着椅背揉了揉眼睛,发现小雅不知什么时候在桌角放了一杯温水,杯底下压着一张便签纸,上面是她的笔迹:“慢点做,别熬太晚。”
他把那杯水喝完,又看了一眼自己画的架构图。在旧公司的时候,每次提交方案都要被张经理挑三拣四,徐明总能在里面找出几个“可以改进的点”去蔡总那里汇报。但此刻屏幕上这些线条和模块,每一条都是他自己理清的,每一个框都是他为客户的实际场景量身画的。没有任何人需要抢功,也没有任何人可以抢功。
他保存了文件,合上电脑。客厅里只亮着一盏小夜灯,小雅已经在沙发上睡着了,身上搭着一条薄毯。他走过去把毯子往上拉了拉,在旁边坐了一会儿。
茶几上放着那张便签纸,周成写下的数字被台灯照得泛黄。林晓看了很久,然后轻轻起身,把电脑包拿到玄关,明早要带的东西准备妥当。躺下时已经快两点,脑子却很清醒。那些代码、那些架构、那个正等着他去填满的空白项目文件夹,像一条小路,弯弯绕绕地伸进了一片他从未涉足的林地。他不确定前面还有什么,但脚下的这一段,是他自己铺的。
第十章 徐明的漏洞
第二天林晓醒得比闹钟早了一个小时。他轻手轻脚地下床,把昨晚定的架构图从头到尾看了一遍,又改了三处数据接口的逻辑。出门前小雅还在睡,他没有叫醒她,只在便签纸上写了“晚上不加班,一起吃饭”,贴在冰箱门上。
到周成公司的时候是八点四十,前台姑娘领他去了一个靠窗的空位,桌上已经摆好了临时工牌和一台配置不错的笔记本。需求文档比昨晚那版更细,多了几个边界情况的说明。林晓戴上耳机,开始正式写代码。开头很顺,低代码引擎的好处就是底层逻辑他闭着眼都能调出来,剩下的只是把周成那边的业务规则嵌套进去。一上午过去,核心模块已经有了雏形。
中午他在楼下便利店买了饭团,坐回工位边吃边刷技术论坛。这是多年的习惯,看帖不回帖,只扫一眼行业动态。首页没什么新鲜的,他正要关掉,一个标题从眼角划过去:“有没有人用过智云系统?最近老出问题。”
他握着饭团的手停了一下。
点进去,帖子是一个匿名用户发的,说他们公司半年前采购了智云系统做内部数据管理,最近三个月频繁宕机,找了供应商的技术支持,对方每次都说“正在修复”,修完没过两天又出问题。回帖有十几条,有人附和说自己也遇到过类似情况,有人质疑是不是用户操作不当。翻到第二页,一个回帖引起了他的注意。那人没有用匿名,头像是一张风景照,发言很简短:“听说是核心开发换人了,原来写底层的那批人不在了,新来的接不住。具体不清楚,别问我。”
林晓把饭团包装纸折好扔进垃圾桶,退出了帖子。他没有回复,也没有截图。那是别人的事了,他告诉自己。但回到代码编辑器前,他盯着光标闪了十几秒才重新把手放上键盘。
下午两点多的时候,手机在桌面震了一下,屏幕亮起来,来电显示是“张经理”。林晓看了一眼,没接,任由它响到自动挂断。大约过了一分钟,又来一条短信:“林晓,方便的时候给我回个电话,有个技术问题想请教你。”措辞比从前客气了不少,用的是“请教”而不是“找你”。
林晓没有立刻回。他把手头那段循环调出来重新审了一遍,确认没有问题,又往下写了两个函数,才拿起手机走到消防通道里。
张经理接得很快,几乎是一响就通了。“林晓啊,忙不忙?”声音里带着一种过分熟络的热络,像是两个人之间从来没有过那张八百八的工资条。
“在做事。你说。”
“是这样,”张经理清了清嗓子,“智云二期那边,系统稳定性出了点小状况,运维团队排查了几天没找到根因。你看你原来负责的那块底层逻辑最熟,能不能抽空回来看一眼?按次付费,不白让你跑,价格好商量。”
林晓靠在消防通道的墙上,头顶的声控灯灭了一盏,另一边还亮着。楼下有辆货车正在倒车,发出规律性的提示音。
“一次多少钱?”他问。
张经理犹豫了两秒。“一次三千,如果当天解决不了,算两天的。你看行吗?”
林晓没有马上回答。三千块,比他从前一个月的加班补贴都多。但他脑子里翻上来的不是钱,是昨天晚上那杯温水,是小雅在沙发上等他的样子,是屏幕上他自己画出来的那张架构图。还有那个帖子里的话,“接不住的那个新来的”——徐明。
“最近手头排满了,接不了。”他说。
电话那头安静了一会儿。张经理的语气往下沉了半度,但还在努力维持客气。“那你能不能推荐个人?或者就远程看一下也行,不用来公司,花不了你多少时间。”
“我建议你们找底层框架的原始供应商,他们有更完整的沉淀。”
“问题是他们报价太高,而且一来就要签年度维护合同……”
“那你们再评估一下吧。”林晓打断了他,“我这边确实抽不出时间,抱歉。”
张经理沉默了几秒,最后说了一句“行吧,那再联系”,挂了电话。
林晓回到工位,把手机翻面扣在桌上。他发现自己刚才那通电话全程没有觉得心虚,也没有觉得痛快。就像在路边看见别人掉了一个东西,他弯腰看了一眼,发现跟自己没关系,就继续走路了。这个感觉让他有点意外,但更多的是踏实。
临下班前,他检查了一遍当天写的代码,做了两轮单元测试,全部通过。周成的助理过来问进度,林晓把完成的部分演示了一下,对方连说超出预期。他收拾东西的时候,前台姑娘递给他一张停车券,说周总吩咐的,以后过来都给他留一个固定车位。
出门的时候夕阳正好,把写字楼的玻璃幕墙照成一片暖橙色。林晓站在门口,掏出手机换了一张新的壁纸——昨晚小雅睡着时的侧脸,他偷偷拍的。然后他给老赵发了条消息,只有五个字:“你上次说的。”
老赵回了一个笑脸,隔了半分钟又发来一句:“想通了?”
林晓把手机收进口袋,跨上单车。回家路上他绕了一段路,在菜市场门口停下来,买了一斤活虾和一把芦笋。小雅这两天上的是白班,到家比他早不了多少,他想在她回来之前把虾处理好,省得她又嫌他手指上全是腥味。
厨房里水龙头开着,他一边用牙签挑虾线一边想事情。张经理的电话来得比他预想中早,说明智云二期的问题比他估计的严重。徐明接不住是肯定的,那套系统的数据总线是他花了一年半才摸透的,中间踩过的坑填过的洞,代码注释里写得清清楚楚。但张经理没有问“徐明怎么调不通”,开口就是找他回去,说明内部已经承认了接手的人搞不定。这比任何抱怨都更能说明问题。
虾线挑到最后一根的时候,小雅推门进来了。她换好拖鞋走过来,从背后搂了一下他的腰,下巴搁在他肩膀上,看了一眼灶台上腌好的虾和洗好的芦笋。
“今天什么日子?”
“发工资的日子。”林晓把最后一根虾线抽出来,扔进垃圾桶,“周成那边预付了三成,我刚收到短信。”
小雅松开他,走到餐桌边拿起他的手机看了一眼屏幕上的到账通知。数字不算大,但后面的备注写得很清楚:技术服务预付款。她把手机放回去,什么也没多问,转身去拿碗筷。
吃饭的时候林晓把张经理来电的事说了,从头到尾没加评论,只是复述了一遍对话。小雅剥着虾壳,听完之后把虾肉蘸了醋放他碗里。
“他开多少?”
“一次三千。”
“还行啊。”小雅擦擦手,看着他,“你回绝了?”
“嗯。”
她没有追问为什么,只是又剥了一只虾给他。隔了一会儿才说:“你做得对。从前你在的时候,他们觉得只值八百八。现在他们愿意出三千,那是他们的事。你去不去,是你的事。”
林晓低头吃虾,觉得今天的虾比平常鲜。
第二天上午,他照常去周成公司写代码。刚坐下没多久,手机又响了,还是张经理。这回他只响了一声,林晓看着来电显示,等铃声响到第三遍的时候按了静音。手机在桌面上无声震动,亮了几秒,暗下去。他没有回拨,也没有发消息,只是把手机调成翻转静音模式扣在桌角,重新戴上耳机。
半小时后,老赵的微信进来一条语音,林晓点开听了一遍,只有八秒钟。老赵的声音压得很低,像是躲在什么地方偷偷说的:“徐明被蔡总叫去谈话了,出来的时候脸是青的。智云二期的客户威胁要解约,张经理在会上拍了桌子。你稳住,别心软。”
林晓回了一个字:“稳。”
窗外的阳光正照在他的屏幕上,代码行一行行清晰地往下延伸。他没有时间去想徐明的脸色,也没有精力去管张经理的桌子拍得响不响。面前的这个项目还有四天就要交付第一版,他要在这四天里把剩下的三个模块全部写完。至于智云系统,那个他曾经用了三年时间搭建起来的东西,此刻在他脑子里只占据了一个很小的角落。它像一个旧朋友,听说最近过得不太好,但他已经没有义务去照顾了。
耳机里放着白噪音,节奏平稳。他敲完一个接口的定义,顺手把注释写得比平时更详细一些——将来或许会有人接手这段代码,他希望那个人不需要像自己当年那样,对着满屏的空指针排查到凌晨三点。
第十一章 拒绝高价返聘
电话是第二天中午打来的。林晓正对着屏幕调一个接口的超时参数,手机在桌面上震得嗡嗡响,他瞥了一眼,还是张经理。他本来想按掉,但转念一想,昨天已经避了一次,今天再避,对方反而有理由到处说他心虚。他摘下耳机,拿起手机走到走廊窗边接了起来。
“晓啊,忙什么呢?”张经理的声音比上次软了不少,带着一种刻意拉近距离的热络。
“在写东西。”林晓看着窗外楼下的行道树,语气平静。
“那个,智云二期的事,我想再跟你好好聊聊。”张经理停顿了一下,像是在措辞,“昨天我提的那个方案,公司这边又研究了一下。蔡总的意思是,只要你能回来把系统稳住,待遇方面可以再谈。”
“张经理,昨天我已经说清楚了,我这边项目排满了。”
“你听我说完。”张经理打断他,语速快了一些,“你来做维护,不用坐班,按天算,一天九千。有问题你远程处理,解决不了再到现场。这个价格,老实说,比你在外面接小单子划算多了吧?”
林晓沉默了两秒钟。一天九千,确实是他离职前日薪的三倍还多。这个数字从张经理嘴里说出来,本身就证明了智云二期的问题已经严重到了什么程度。
“张经理,谢谢你的诚意。但我手头这个项目交付期在月底之前,实在抽不出时间。”
“你那边一个小工作室能有多少活?”张经理的语气开始变了,像是耐心在一点点耗尽,“林晓,我跟你讲实在话,公司现在给你这个台阶,是念在你以前干了三年的份上。你要是真在外面混不下去再想回来,可就不是这个数了。”
林晓握着手机的手指微微收紧了一下,但他开口时声音依然平稳:“我没有说混不下去。我只是确实没时间。”
“你是不是还在为年终奖的事赌气?”张经理提高了音量,“那是公司制度,综合考评定下来的,不是我一个人说了算。你不能因为一次不满意就把三年交情全扔了。”
“我没有赌气。”林晓说,“张经理,如果公司确实需要人,我可以推荐几个做数据总线方向的技术人员。我认识两个水平不错的,简历可以发你。”
电话那头安静了好几秒。林晓听见张经理鼻腔里哼了一声,声音忽然变得又冷又酸:“行啊林晓,出去几天翅膀硬了。你别忘了,你那点技术是在哪学的,那些项目经验是哪来的。做人不能忘本。”
“我一直记得公司的栽培。”林晓说这句话的时候,目光落在走廊尽头那盆半死不活的绿萝上,声音里听不出任何起伏,“所以我没说不帮忙,推荐人也是帮忙的一种。但我确实没有时间回去做维护了。”
“行,你忙你的大事业吧。”张经理丢下这句话,直接挂了。
林晓把手机从耳边拿下来,看了一眼通话时长,三分四十八秒。他把手机揣进口袋,在走廊里站了半分钟,深吸了一口气。窗外的天很蓝,没有云,远处有几只麻雀从一棵树飞到另一棵树上。他想起三年前刚进公司那会儿,张经理拍着他的肩膀说“好好干,公司不会亏待你的”。那时候他信了,后来他也确实好好干了,连续三年绩效优秀,加班最多,请假最少。他没换来过一句正式的感谢,也没换来过一次提拔。现在他走了,对方想起来他值多少钱了。
他回到工位,把那段超时参数重新过了一遍,顺手在注释里补了一行说明。屏幕上代码跑通了,绿色的进度条平稳地推进到百分之百。他把结果截了个图发给对方的技术对接人,然后关掉调试窗口,开始写下一个模块。
傍晚回到家,小雅已经在了。她今天下白班早,换了家居服在厨房里炒菜,抽油烟机轰轰地响。林晓换了鞋走进去,从后面轻轻抱了她一下。
“今天顺利吗?”小雅侧过头问。
“顺利。下午张经理又打电话了。”
“又打?”小雅把火关小了一点,转过身来看他,“他说什么?”
“开三倍日薪请我回去做维护。”
小雅眉毛一挑,嘴角先绷了一下,然后没忍住,笑出了声。她笑得肩膀一耸一耸的,手里的锅铲差点掉到地上,赶紧扶了一下灶台。
“三倍?他上次不是说技术岗就这个行情吗?”小雅笑够了,一边翻着锅里的菜一边说,“这才几天啊,行情就翻了这么多倍?他那个行情是看人下菜碟的吧。”
“我没答应。”
“你当然不能答应。”小雅把菜盛进盘子里,转头看着他,眼睛亮亮的,“你要是答应了,我反而要跟你吵架了。”
林晓接过她手里的盘子往餐桌走,小雅跟在后面继续说:“你知道吗,你回来的那天晚上跟我说不续签了,我其实心里也打鼓。但我就喜欢你那个样子,不吵不闹,就一句‘我不签了’,比什么都有劲。今天这个电话,他开三倍也好五倍也好,跟我没关系。我认识的那个林晓,他值多少自己心里有数,不需要别人来定价。”
林晓把菜放到桌上,拉开椅子让她坐下。他没有说什么大道理,只是给她盛了一碗饭,把筷子递到她手里。
“吃饭吧。”
小雅接过筷子,夹了一筷子菜放他碗里,嘴里还念叨着:“不过三倍日薪,想想也挺解气的。就冲这数字,我今天得多吃半碗饭。”
林晓低头扒了一口饭,嘴角终于忍不住往上扬了一下。客厅里只开了一盏落地灯,暖黄色的光笼着饭桌,窗外远远传来谁家炒菜的香味和楼下小孩跑过的脚步声。他的手机屏幕亮了一下,是周成发来的消息,说下一期的预付款已经安排财务明天打过来。他把手机翻过去扣在桌上,没有急着看。
小雅咬着筷子,忽然想起来什么:“对了,老赵今天给我发了条语音,我没来得及听。你听了没?”
“还没。”林晓站起来去拿手机,点开老赵的语音条。老赵的声音还是压得很低,但语气里透着一股掩饰不住的痛快:“张经理下午被蔡总叫去训了一顿,嫌他连个人都留不住。徐明那边更惨,客户当面骂了他十分钟,他一句话没敢回。你这边该干嘛干嘛,别管他们那堆烂事。”
林晓听完,把手机递给小雅。小雅凑过来听完,放下筷子,双手合十做了一个夸张的“老天有眼”的手势,然后重新拿起筷子,给林晓夹了一只虾。
“你明天是不是还要去周成那边?”
“后天得过去一趟,明天在家写远程也一样的。”
“那我明天给你煲汤。”小雅低头想了想,“山药排骨汤,你最近用脑多,得补补。”
林晓应了一声。吃完饭后他去洗碗,小雅坐在沙发上翻手机,忽然叫了他一声:“林晓,你看这个。”
她举着手机给他看,屏幕上是一条技术论坛的帖子,标题很长,大意是某公司系统频繁宕机,吐槽代码质量差。跟帖里有人爆料说核心开发换人了,底下吵成一片。小雅往下划了划,指着一条匿名跟帖说:“这人说的代码问题,是不是你以前修过的那些?”
林晓擦干手,凑过去看了两眼。帖子里的描述的确实很像是他离开后徐明改过的那几个模块,但他没接话,只是说:“我明天把项目文档再整理一遍,周成那边后续维护要用。”
小雅看他一眼,也没再追问。她把手机收起来,靠在沙发上看他收拾厨房,过了一会儿轻轻说了一句:“林晓,你现在这样挺好的。”
他回头看她,手里的抹布滴着水。
“我是说,”小雅把下巴搁在沙发靠背上,“你现在整个人松下来了。以前你加班回来,眉毛老是拧着,问你什么都说还行。现在你虽然也忙,但眉毛是平的。”
林晓把抹布拧干挂好,走过去在她旁边坐下来。小雅顺势靠在他肩上,电视没有开,房间里安安静静的。他的手机又亮了一下,屏幕上跳出一条陌生号码的短信,只有一句话:我是智云二期的客户方负责人,从周成那里听说了你,方便见一面吗?
林晓盯着那条短信看了几秒,没有立刻回复。他把手机放到茶几上,胳膊搭在小雅肩头,看着窗外对面楼里一格一格的灯火。
“怎么了?”小雅问。
“有人想见面谈事情。”他说,“我不着急回。”
小雅点点头,靠得更近了一些。两个人就这么安静地坐了一会儿,对面楼的灯一盏一盏地灭下去,夜色从窗边漫进来,把客厅填得满满当当。
第十二章 项目验收会上的缺席者
周成的公司租在开发区一栋独立办公楼的三层,电梯门打开的时候,林晓看见走廊尽头摆着两排花篮,红绸带上写着“预祝项目验收圆满成功”。他低头看了一眼自己手里的文件袋,里面装着这半个月来他交付的模块代码说明和测试报告。
会议室的门半开着,里面已经坐了七八个人。周成站在白板前面正跟一个穿深灰夹克的中年男人说话,看见林晓进来,朝他招了招手。
“来,介绍一下,这位是甲方技术负责人郑工。”周成拍了拍林晓的肩膀,“郑工,这就是我跟你提过的林晓,这次的核心模块全是他一个人扛下来的。”
郑工站起来跟林晓握手,手掌厚实,力道很足。他上下打量了林晓一眼,说:“代码我看过了,注释写得很细,接口文档也规范。说实话,我干这行快二十年了,能让我挑不出大毛病的交付不多。”
林晓微微点了下头,从文件袋里抽出几页纸递过去:“这是模块的性能测试数据,并发量按你们预估峰值的一点五倍做的压测,响应时间控制在两百毫秒以内。”
郑工接过去翻了翻,眉毛一点点抬起来。他扭头对旁边一个年轻同事说:“你看看人家这个报告,连异常日志的采样分析都附上了。回去把咱们自己的文档标准对着这个改。”
会议室里陆续又进来几个人,长条桌两边很快坐满了。周成主持验收会,先由林晓介绍了模块架构和实现思路,然后是郑工那边的测试团队提问。林晓回答的时候语速不快,每一句都落在关键点上,遇到对方没听懂的地方就用白板画个简单的示意图。郑工带来的几个工程师一开始还端着架子,问了几个试探性的技术细节之后,语气明显软下来,开始用请教的口吻了。
会议进行到一半,郑工那边一个戴眼镜的年轻人忽然插了一句:“林工,你以前是不是做过类似架构的系统?我看你处理并发冲突的这套方案很成熟,不像第一次做。”
林晓顿了一下,说:“以前做过一些相关的项目。”
周成在旁边适时地接了话:“郑工你可能不知道,林晓原来就在智云系统那个团队,核心模块都是他写的。”
这句话落下去,会议室里安静了两秒。郑工把手里的笔放下来,盯着林晓看:“智云?就是最近那个……”
他没把话说完,但桌上的几个人都听懂了。戴眼镜的年轻人跟旁边同事交换了一个眼神,小声说了句什么。
郑工重新拿起笔,在面前的笔记本上敲了两下,说:“智云系统我们分公司那边用了半年,最近两个月频繁出问题。上周还宕机了一次,害得我们整个仓储部门停了大半天。技术那边查了半天说是代码逻辑有缺陷,具体哪个环节我记不清了。”
他说完看着林晓,目光里带着探究:“你离开之后,那边开发是不是换人了?”
林晓把面前的材料整理了一下,语气很平:“这个我不太清楚,离职之后我几乎没有关注过那边的情况。”
郑工点点头,没有再追问。但他看林晓的眼神明显变了,那里面有惋惜,也有一种同行之间心照不宣的了然。旁边一个工程师低声跟同事嘀咕:“难怪最近那系统越来越卡,原来做核心的人早走了。”
林晓听得见,但没有接茬。他继续把剩下的技术方案讲完,最后郑工那边几个工程师讨论了一阵,由郑工做了总结:“模块我们测了三天,没有发现阻断性问题,性能也满足要求。验收通过。”
会议室里响起稀稀拉拉的掌声。周成站起来跟郑工握手,又转头朝林晓比了个大拇指。
散会之后,林晓在走廊里收拾电脑,郑工走过来,压低声音说:“有个事想私下问你。智云那边近期估计会有比较大的技术调整,我们作为使用方有些想法想找外部专家聊聊。周成说你现在自己接活,不知道方不方便留个联系方式?”
林晓从口袋里摸出一张名片递过去,上面印着他新注册的工作室名字和电话。郑工接过去看了一眼,笑着说:“晓光科技。名字不错,有盼头。”
林晓把电脑塞进包里,笑了笑没有多说什么。
晚上周成给他打电话,语气比平时兴奋不少:“郑工刚才给我打了电话,问你愿不愿意接他们一个子系统的改造项目,预算比我这边大两倍不止。我说你得自己跟他谈。”
林晓靠在阳台栏杆上,夜风带着点凉意,楼下小区里有小孩在放烟花,火星子窜上去又散开。他对着电话说:“周哥,这次的项目我能拿下,得谢谢你。”
“谢什么,”周成在那边笑了一声,“你以为我白帮你的?郑工那边给的这个机会,你做好了,以后有的是客户找上门。我就一个要求,你接了他们家的活,别把我这边的排期往后推就行。”
林晓说:“不会。”
挂了电话,他回到客厅,小雅正趴在茶几上翻他的项目笔记。她抬起头,眼睛亮亮的:“我听见了,郑工给你介绍新客户了?”
“还只是个意向,得下周去谈。”
小雅从茶几上拿起一杯水递给他:“你有没有发现,你最近好事一件接一件。周成加价,老赵介绍客户,现在连甲方的人都主动找你。你以前在公司干了三年,除了老赵,连个说你好的领导都没有。”
林晓接过水喝了一口,没有接话。他走到电脑前面坐下,打开一个空白文档,把郑工那边的技术需求先记下来。小雅走过来站在他背后,双手搭在他肩膀上,下巴搁在他头顶。
“你说,”她忽然开口,“要是张经理知道郑工主动找你,他会不会又打电话来?”
林晓的手指停在键盘上,过了一秒才继续打字:“不知道。来不来都无所谓。”
小雅把下巴从他头顶挪开,绕到侧面看他屏幕上的内容。她看了一会儿说:“你打算接这个?那接下来一个月又要忙了。”
“忙点好。”林晓把需求文档的标题敲完,光标在空白处跳动着,“自己接的项目,干完了每一行代码都是自己的。”
小雅没再说话,回身去厨房端了一碗热好的汤出来放在他手边。汤碗底下垫着一小块布,边上还贴了一张便签,上面是她早上随手写的几个字:别熬太晚。
林晓低头看了一眼那张便签,拿起来贴在了显示器边框上。屏幕的蓝光映着他的侧脸,小雅站在厨房门口看了一会儿,想起他刚离职那几天坐在这个位置翻招聘网站的样子。那时候他眉头是皱着的,不像现在,手指敲键盘的声音都带着一股笃定的节奏。
她轻轻把厨房门带上,留了一条缝,让光正好照不到他背上。
第二天一早,林晓醒来的时候手机里多了一条微信好友申请,备注写着“郑工推荐,智云系统使用方技术团队”。他没有立刻点通过,先把昨晚写的需求草稿整理了一遍,然后给小雅煎了两个荷包蛋放在桌上,出门去了打印店。
走在路上他想起一件事。去年这个时候他还在公司加班,智云系统第一次上线前的那个通宵,他一个人在机房调服务器,天亮时给张经理发消息说上线成功。张经理回的是“辛苦了”,后面跟着一句“徐明的汇报材料你帮他看一眼”。那天早上他从公司走出来,街上没什么人,路边早餐摊刚刚支起来,油条下锅的滋啦声格外响。他买了一杯豆浆,站在路边喝完,回去继续上班。
现在那个机房大概还在运行他写的代码,那些服务器不会知道写代码的人已经走了。但它们跑得动跑不动,他心里有数。
打印店的老板娘认得他,见他进门就说:“又来打文件啊。”林晓应了一声,把U盘递过去。机器嗡嗡地响起来,纸张一页一页吐出来,带着温热的气味。他站在旁边看窗外,马路对面新开了一家早餐店,门口排着队。一个骑电动车的男人停在路边,后座绑着一箱货,正在低头看手机。
打印机停了。林晓把文件收好装进袋子里,付了钱出来。阳光从对面楼顶的缝隙里斜过来,照在他肩膀上,有点暖。他掏出手机,点开那条好友申请,按了通过。
对方很快发来一条消息:林工你好,郑工让我联系你,下周二方便见面聊吗?
林晓站在打印店门口的台阶上,把消息回过去:方便,地点你定。
然后他把手机揣进口袋,沿着马路往地铁站走。路过那家早餐店的时候,他停了一下,看了一眼招牌上写的豆浆油条四个字。过完年到现在,有些事情好像已经很远了,远得像是上辈子的事。但那些事又像脚下的路基,垫着他一步一步走到了今天这个地方。
他不会回头去踩,但也知道脚下的路是怎么来的。
第十三章 张经理的摊牌
张经理推门进来的时候,林晓正蹲在地上给路由器换网线。老赵介绍的周总那个项目刚验收完,甲方又追加了一个小模块,他昨晚调代码到凌晨三点,早上起来发现网络断了,排查了半天才发现是路由器接口松了。
“林晓。”
林晓抬起头,看见张经理站在门口。身后是走廊里白惨惨的日光灯,他穿了一件深灰色夹克,两手插在兜里,目光在小办公室里扫了一圈。这个办公室是林晓两个月前租的,十五平米,月租一千八,放了桌椅、文件柜和一台开发用的服务器,墙上钉了一块白板,上面画着项目架构图。门口挂了一个牌子,还没来得及换掉,上面写着“晓光科技工作室”。
林晓站起来,把手里的网线放到桌上:“张经理,你怎么找到这儿的?”
“你觉得我找不到?”张经理没往里走,就站在门口,像是在评估这间屋子值不值得他迈进来,“林晓,我问你一件事,你跟我说实话。远志科技的单子,你是不是从公司手里撬走的?”
远志科技。林晓脑子里过了一遍。那是郑工所在的公司,就是上个月老赵牵线认识的那位老同学。远志本来用的是原公司的智云系统,但年初合同到期后没有续约,张经理一直以为是徐明二期没做好导致的客户流失,现在却听说远志找了林晓做新开发。
“远志的单子是郑工自己找我的。”林晓说,“他先看了我的技术方案,才决定合作。我没有主动联系过他们。”
“你没主动联系?”张经理冷笑了一声,“你走了才几个月?远志之前用的就是智云系统,你说你跟这事没关系?”
“有关系。”林晓拉开椅子坐下,从文件柜里抽出一个文件夹,“这是我和远志签的合同,签订日期你注意看一下。”
张经理走过来,接过合同扫了一眼。日期是上个月底,条款写得很清楚,甲方远志科技,乙方晓光科技工作室,项目内容为独立开发一套数据接口中间件,与智云系统无直接关联。
“这不能说明什么。”张经理把合同扔回桌上,“你是在职期间跟远志建立的联系,还是离职之后?”
“离职之后。”林晓说,“郑工是看了我公开在技术社区上的代码记录才联系我的。你可以去查我的社区账号,时间线都对得上。”
张经理沉默了。他站在办公桌前,手指在桌面上敲了两下,那种熟悉的、带着压迫感的节奏。以前在林晓工位旁边,他就是用这个动作催进度、催加班、催署名。但现在的空间太小,这个动作显得有些局促。
“林晓,我跟你说实话。”张经理的语气软了一度,“远志是公司的重点客户,现在这个单子被挖走,蔡总那边问下来,我要担责任的。你回来帮我把后续维护做完,我可以跟公司申请一笔外包费,价格好商量。”
“我不回去。”
“你先别急着拒绝。”张经理往前倾了倾身子,“你一个人单干能接多少活?公司平台大,项目稳定,你以前那些成绩我也都记得。这次的事我可以帮你压一压,只要你把远志那边的合同退了……”
“张经理。”林晓打断他,“远志的合同已经生效了,验收都过了一轮。你让我退,违约金你出?”
张经理的脸色变了。他直起身,语气重新硬起来:“林晓,我好声好气跟你谈,你别不识抬举。远志之前的系统是你做的,现在他们另找供应商,你让公司的脸往哪放?我要是跟蔡总汇报,你这就算恶意竞争。”
“你可以去汇报。”林晓的声音很平,“顺便跟蔡总说一声,智云系统核心模块的代码记录我这边还有完整备份。原始开发日志、提交时间戳、注释里我个人的标识符,可以跟公司留存的版本做比对。如果要做署名权和知识产权的确认,我没意见。”
空气像是凝固了。
张经理站在原地,眼睛盯着林晓,嘴唇抿成一条线。他的脸色从刚才的铁青慢慢变成了一种说不清的灰白。那些压在档案柜底层的开发记录,那些汇报PPT里刻意省略的作者字段,那些评审会上只字不提的名字,他比谁都清楚。
“你在威胁我?”张经理的声音压得很低。
“我在陈述事实。”林晓把文件夹合上,放回柜子里,“远志的事,没什么不能拿到台面上说的。如果公司要追究什么,我的律师可以随时对接。”
“律师?”张经理嗤了一声,但底气明显不足,“你请得起律师?”
“周总的项目结款挺爽快的。”林晓说,“够用。”
张经理往后退了一步,后腰撞在门框上。他像是被什么东西蛰了一下,猛地转身,拉开那扇还没贴膜的门,不锈钢门把手撞在墙面上发出一声脆响。他站在走廊里,侧过身来,嘴唇动了动,最终什么都没说出来,大踏步往楼道口走去。
脚步声在楼梯间里越来越远,最后被一阵风声吞没。
林晓坐回椅子上,看着门口那块还没换掉的牌子。他深吸了一口气,给刚才没插好的网线重新对准接口,咔嗒一声扣进去。电脑右下角的断网图标跳了两下,恢复了连接。
手机屏幕亮了。
老赵的消息,很短:张今天去你那儿了?公司这边审计的人今天进了智云项目组,调了二期的采购单和测试报告。徐明下午被叫去会议室,到现在没出来。你自己小心点,别被他咬。
林晓看完消息,回了一个字:好。
他把手机放下,打开项目文件夹,继续写昨天没写完的代码。键盘敲击声在空荡荡的办公室里响起来,有节奏、平稳,像一台重新校准过的机器。窗外传来隔壁餐饮店的排风机嗡嗡转动的声音,午后的阳光从百叶窗的缝隙里漏进来,一道一道落在地上和桌角,照得那台新买的服务器指示灯明明灭灭。
过了大约半个小时,手机又亮了一下。这次是小雅发来的:晚上想吃什么,我下班去买菜。
林晓想了想,回:都行,你做的我都吃。
小雅秒回了一个笑脸。
他把手机翻了个面扣在桌上,继续敲代码。屏幕上光标闪动的地方,一行注释刚刚写完:接口超时重试逻辑,优化并发处理。光标移到下一行,他想了想,又加了一句:感谢郑工提供的测试环境支持。
写完之后他盯着这行字看了两秒,然后保存了文件。窗外的风把百叶帘吹得轻轻晃动,光影在他手背上晃来晃去。他端起小雅早上放在桌上的水杯喝了一口,水已经凉了,但嗓子觉得舒服。
第十四章 审计风暴
林晓没想到审计组的动作这么快。
前一天张经理刚在他办公室摔门而去,第二天上午,老赵就发来了一长串消息。他把手机扣在笔记本旁边,一边看一边把百叶窗拉了个斜角,让光线不那么刺眼。
老赵的文字很碎,像是一个字一个字敲出来的:审计组调了智云二期全部采购单据,三家供应商的报价单明显有改动痕迹,比对文件属性时间,修改日期晚于签约日期。徐明报上去的采购单价里有两项高于市场价近四成,其中一家供应商的注册地址是虚拟园区,法人代表跟徐明是同一个街道出来的。测试报告那边问题更大,二期上线前两轮压力测试的原始数据被覆盖过,替换后的数据跟服务器日志对不上。审计组初步结论已经报给了蔡总,建议追责到人。
最后老赵补了一句:张今天上午被叫去谈话了,出来的时候脸色很难看。他可能会找你,你自己心里有数。
林晓把消息看完,回了一个字:知道了。
他锁了屏,站起来给自己倒了杯热水。办公桌上那台新服务器还在嗡嗡转着,机箱上的蓝灯有规律地跳动。他靠在窗边喝了两口水,脑子里飞速把老赵说的那些细节过了一遍。
采购单据、供应商资质、测试报告——这三样东西,任何一样都跟他没有关系。他在职期间负责的是智云系统的核心算法模块,所有代码提交都有记录,走的是公司GitLab内部仓库,工号绑定提交时间,技术上不可能被篡改。至于采购经费,他连立项报告都没参与撰写,更不用说签字审批。邮件往来也干净,所有涉及技术方案变更的沟通,他都抄送了项目组全体成员,白纸黑字躺在企业邮箱里。如果审计组要把这些东西翻出来看,他反而希望他们翻得越细越好。
想清楚这些,他给一个号码发了条消息:李律师,公司那边审计有动静了,可能会牵扯到我之前的项目。我想提前准备一下,把能证明我工作范围的原始记录整理出来,以备不时之需。
对方很快回过来:可以。你整理的时候注意三点——第一,只整理你自己署名和提交的内容;第二,所有截图和导出文件不要做任何修改,保留原始时间戳;第三,不要单独发给任何人,等我到场再统一提供。
林晓回了个“明白”,把手机放到桌面上,开始登录自己注册的一个加密云盘。离职那天,他把企业邮箱里所有跟工作相关的邮件做了导出备份,按项目分了文件夹。当时只是出于技术人员的习惯,随手留个存档,没想到现在真的要用上了。
他点开“智云系统-技术组”文件夹,快速浏览了一遍。邮件量不小,但他心里有数,直接按“采购”“测试”“立项”三个关键词做筛选,结果出来得很干脆——涉及采购经费的邮件他一封都没有,测试报告的邮件他只收过通知,从未作为负责人签过字。唯一跟测试相关的是几封他给徐明发的技术建议邮件,内容全是算法层面的优化意见,与报告本身毫无关联。这些记录往桌面上一摆,谁是谁非一目了然。
正整理到一半,手机响了。来电显示是一个陌生座机号码。林晓接起来,对方是集团审计部的工作人员,语气客气但正式,说想请他配合了解一些情况,问他什么时候方便到公司坐一坐。
“我可以配合。”林晓说,“但涉及具体项目内容,我希望能有律师在场。”
电话那头沉默了两秒,然后说:“可以,您看什么时间合适?”
“明天上午十点,我带律师一起过来。”
“好的,林先生,那明天见。”
挂了电话,林晓给李律师发了条消息,把时间地点说清楚。然后他又想了想,拨通了老赵的电话。
“赵哥,审计组刚才联系我了,明天上午去公司。”
老赵的声音压得很低,像是躲在楼梯间里说话:“我猜到了。你记住,去了之后只回答被问到的问题,别主动提别的。徐明那边昨天已经交了一份情况说明,据说把采购审批的锅往张经理身上推了一部分,张经理那边也不干净,两个人现在互相咬。审计组大概率是想让你去佐证某些技术判断,你只要把事实说清楚就行。”
“我明白。”林晓顿了顿,“赵哥,你在里面注意安全,别让人看出来你在帮我。”
老赵嘿了一声:“我都快退休的人了,怕什么。再说了,我说的每句话都是事实,他们能把我怎么着?”
林晓没再多说,道了谢挂断电话。他回身看着屏幕上整整齐齐的文件夹和邮件列表,把每个文件的访问权限又检查了一遍,然后合上电脑。窗外的声音变得清晰起来,隔壁餐饮店午餐时段的排风机轰轰转着,偶尔有外卖电动车从楼下经过,发出一阵短促的鸣笛。他拿起水杯把剩下的温水喝完,开始收拾桌面上的纸质文件,把几份合同和发票按类别叠好放进文件柜。
手机屏幕上跳出一条消息,是小雅发来的:审计的事老赵跟我说了,你明天去公司我陪你去吧?
林晓拿着手机想了一会儿,回:不用陪,有律师在。你明天正常上班,晚上回来我给你细说。
小雅回了一个“好”,然后补了一句:那你中午记得吃饭,别一忙就忘了。
林晓笑了一下,回了个“嗯”。他把手机放进外套口袋,拉上外套拉链,拎起电脑包。出门前回头看了一眼办公室,那台服务器还亮着蓝灯,桌上的水杯已经空了,光秃秃地立在那里。他关掉灯,锁好门,走廊里的声控灯啪地亮起来,照着头顶那块还没贴膜的招牌,铝塑板泛着一层冷冷的哑光。
林晓没有等电梯,走了消防通道。安全门在身后关上时发出一声沉闷的回响,他推开一楼门厅的玻璃门,午后的阳光一下子涌进来,带着一股初春泥土和汽车尾气混杂的味道。
他站在人行道上看了看表,离晚饭时间还早。街角的快递驿站里有人在取件,门口的喇叭重复播放着取件码。他往地铁站方向走了几步,忽然停下来,掏出手机给李律师又补了一条消息:邮件和代码记录我已经整理好,一共三个压缩包,明天带过去。另外,老赵跟我说徐明和张经理在互相推责任,我担心他们把我扯进去。明天如果审计组问到采购和测试的事,我会明确说明那两块跟我无关,但我不想主动指控任何人。
李律师回得很快:这样处理合适。你只提供事实,不对他人做主观评价,是对自己最安全的做法。
林晓把手机收好,继续往前走。人行道上的砖缝里冒出了几簇新草,颜色嫩绿,被行人的脚步踩得有些歪斜。他路过一家花店,店门口的大桶里插着大把的银柳,红色绒毛苞在午后的光线下显得毛茸茸的。他看了一眼,步伐没停,心里却在想——明天去公司,不知道会不会碰见徐明。如果碰见了,他打算点个头就走,不多说一个字。有些事,做比说管用。
第十五章 蔡总的电话
手机在茶几上震了两下,屏幕亮起来,是一个陌生的手机号码。林晓看了一眼,挂断,继续翻手里的合同附件。隔了不到半分钟,同一个号码又打进来。他这才拿起来接了。
“林晓吗?我是蔡成远。”
声音低沉平稳,带着一种习惯了发号施令的从容。林晓把合同合上放在膝盖上,身体往后靠了靠:“蔡总,您好。”
“贸然给你打电话,不打扰吧?”
“不打扰,您说。”
蔡总在电话那头轻轻咳了一声,像是在调整措辞。背景里隐约有杯子碰到桌面的声响,看来是在办公室里。“审计的事我听说了,你配合得很好,实事求是,没有添油加醋。这一点我很认可。”他停了一下,“之前公司对你的一些安排,说实话不够妥当。我作为分管领导,有责任。今天打这个电话,第一是向你道个歉。”
林晓握着手机,没有马上接话。客厅里的鱼缸发出细微的过滤水声,那条养了快两年的金鱼正贴着缸壁缓慢游动。他等了两三秒,才说:“谢谢蔡总,我接受这个道歉。”
“第二件事,”蔡总的语气一转,变得直接利落起来,“我想请你回来。技术总监的位置,直接向我汇报,年薪翻一倍,外加项目分红。智云系统二期现在烂摊子不小,需要一个真正懂底层架构的人来收拾。你提什么条件,只要在合理范围内,我这边都可以谈。”
林晓听到“翻一倍”的时候,心里确实动了一下。那个数字很具体,具体到能算清房贷月供能少还几年、小雅不用再连上大夜班、父母下次体检可以选更好的套餐。但也就动了那么一下。他眼前闪过的是年会那天大屏幕上自己的名字和八百八十元并排出现的画面,闪过张经理把合同推到他面前时那种公事公办的表情,闪过徐明在茶水间跟别人说“技术岗就这个行情”时嘴角那个撇下去的角度。
“蔡总,谢谢您看得起我。”林晓的声音不高,但每个字都说得很清楚,“我仔细考虑过了,不回去了。”
电话那头安静了。这种安静持续了大概四五秒,蔡总才开口,语气里多了一层不解:“能问一下为什么吗?是薪资不满意?我说了可以谈。还是担心回来之后的关系处理?张经理那边已经调岗了,徐明也走了,这些你应该知道。”
“我知道。跟这些都没关系。”林晓伸手把茶几上那杯凉了的白开水端起来,喝了一口,“蔡总,我在公司干了三年,主导了智云系统最核心的模块开发,连续三年绩效优秀,没有一次提拔。我不是要翻旧账,这些事都过去了。但一个地方如果让干活的人一直吃亏,让会说话的人一直占便宜,那这个地方的规矩就是有问题的。您今天开的条件很好,但条件再好,也改不了那个规矩。”
“你觉得换个位置就能改?”蔡总的语气里带上了一丝意味深长。
“改不了。所以我不试了。”林晓说得很平静,“我现在自己接项目,每天做的事都是我自己的名字。赚多赚少,我心里踏实。蔡总,信任和尊重比薪资重要。这两样东西我以前在公司没得到,今天您给了,我领情。但我不打算用回去的方式来证明什么。”
电话那头传来一声很轻的叹息,像是蔡总靠回了椅背。“行,我明白了。”他的声音恢复了商业化的平和,“那祝你顺利。以后圈子里碰到,还是朋友。”
“谢谢蔡总,也祝公司早日度过这一关。”
挂了电话,林晓把手机放回茶几上。他坐着没动,手指在膝盖上的合同封面上无意识地敲了两下。窗外天色已经暗了一半,楼下传来小孩子放学回家的嬉闹声,有个尖细的童音在喊“妈妈开门”。
小雅从厨房探出头来,手里还捏着半截没剥完的葱:“谁的电话?打这么久。”
“蔡总。”
小雅的动作停了一下,然后从厨房走出来,在沙发扶手上坐下。“集团那个蔡总?他说什么了?”
“先道歉,然后让我回去当技术总监,薪资翻倍。”
小雅把葱放在茶几边缘,转过身正对着他,眼睛睁大了一圈:“翻倍……那得多少?”
“大概是你现在工资的四倍吧。”林晓看着她,嘴角带着一点若有若无的笑意。
小雅愣了一下,然后问:“你答应了?”
“我说不回去了。”
小雅没说话,盯着他看了好几秒。她的表情从惊讶慢慢变成一种说不清的柔软,最后伸手拍了一下他的肩膀:“真的一点都不心动?那么多钱呢。”
“心动了一秒。”林晓老实说,“然后就不动了。我现在做的每一件事都是自己的,代码是我写的,客户是我谈的,出了问题我自己扛。那种感觉,比拿别人给的薪水值钱。”
小雅歪着头看了他一会儿,忽然笑了,笑得眼睛弯起来:“行吧,那就继续自己干。不过今晚的葱你得帮我剥,我刚才听到电话内容吓了一跳,把葱捏烂了一半。”
林晓笑出了声,站起来跟她往厨房走。刚走到厨房门口,手机又响了一声。他折回去拿起来看,是一条消息,老赵发的,只有短短几行:审计结果出来了。徐明开除,涉嫌虚报费用的问题已经移交法务处理后续。张经理降职调岗,去了下面一个边缘部门。蔡总在会上拍了桌子,说以后技术岗的考核要重新定规矩。你小子今天拒得好,我把你原话转给蔡总了,他听完没说话,但脸色不难看。
林晓看完,把消息递给小雅。小雅低头看完,把手机还给他,说了一句:“赵哥可真行,把你原话都转过去了。”
“他就是这样的人。”林晓把手机收进口袋,挽起袖子开始剥葱。
水龙头哗哗地响着,小雅在旁边炒菜,油锅发出滋啦的声响。她一边翻动锅铲一边头也不回地说:“其实我刚才问你是不是真不心动,不是怕你答应。我是想看你会不会犹豫。你要是犹豫了,我反倒要劝你再想想。但你没犹豫,那我就放心了。”
林晓把剥好的葱放在案板上,拿刀切成细段,声音混在油烟机的轰鸣里:“以后可能比现在更难,你要有准备。”
“跟着你,我不怕。”小雅转头看他一眼,目光在厨房暖黄的灯光里格外分明,“当初嫁给你的时候你就没什么钱。现在好歹手艺越来越好了,专业能力有人认可了,比那时候强多了。”
林晓把葱段撒进锅里,油烟腾起来,香气一下子漫开。他侧头看着小雅专注翻菜的侧脸,心里某个一直绷着的地方,终于彻彻底底地松了下来。窗外的天彻底暗了,对面楼里亮起一格一格的灯光。他们的小厨房里,抽油烟机嗡嗡响着,锅铲碰着铁锅,汤锅在旁边的灶上咕嘟咕嘟冒泡,所有的声音叠在一起,就是日子该有的样子。
晚饭吃到一半,小雅忽然想起什么似的放下筷子:“对了,今天下午我同事问我,她老公的单位想找外面的人做一个内部管理系统,预算不多,问你能不能接。我跟她说先问问你。”
林晓把嘴里的饭咽下去:“你同事的老公?什么行业的?”
“做仓储物流的,公司不大,几十个人的规模。说现在用的那个系统快到期了,续费太贵,想找个靠谱的人重新做一套简洁点的。”
“可以谈。你把我微信推给她,让她老公直接跟我聊需求。”林晓想了想又说,“预算少没关系,先把功能范围聊清楚。小项目不垫资,分期付款,对双方都好。”
小雅点头,拿手机就把名片推了过去。那边回复得很快,说晚上加微信细聊。林晓扒完最后两口饭,起身去洗碗。水流冲在碗沿上,泡沫顺着水池壁滑下去。他一边洗一边盘算着明天去见审计组的细节,脑子里不慌不忙地列着条目,像在写一段结构清晰的代码。
第十六章 自己的招牌
注册公司那天下了点小雨。林晓从政务大厅出来,手里攥着刚打印出来的营业执照,站在台阶上看了很久。执照上写得清楚,法定代表人林晓,注册资本十万,经营范围软件开发、技术咨询。他把那张纸折了两折放进背包最里层,拉链拉到一半又停住,重新掏出来用手机拍了一张照,发给了小雅。
小雅秒回了一个竖起大拇指的表情,紧接着又发来一条:晚上我买条鱼,庆祝一下。
林晓回了个好字,把执照收好,撑开伞往地铁站走。雨不大,细细密密地落在伞面上。他走得不快,脑子里在过一遍待办清单:办公场地已经看好了,就在老赵帮忙介绍的那家创业孵化器里面,一个月租金一千八,包含水电和网络。工位是现成的,带一张桌子和一把椅子,比原来公司那个工位小,但他觉得够用。关键是门口那个铜牌可以刻自己公司的名字,这四个字他想了三天。
晓光科技。
取的是他名字里的“晓”字,也是拂晓的意思。他跟小雅提这个名字的时候,小雅说好,干净,好记,听着像正经做事的。
孵化器在城东一个老厂房改造的园区里,五楼,窗户朝南。林晓到的时候雨已经停了,走廊里飘着一股新刷墙漆的味道。管理员大姐带他看了房间,十五个平方,白墙灰地,三张工位空着两张。窗台上放着一盆不知道谁留下的绿萝,叶子有点蔫,他顺手接了杯水浇上。
“就这儿了。”他跟大姐说。
签完入驻协议出来,林晓给小雅发了个定位。她回:周六我休息,过去帮你收拾。他说不用,没什么东西。她说那我不管,我要去看看你上班的地方。
周五傍晚,林晓正蹲在地上擦桌腿,听见走廊里有人喊他名字。抬头看见老赵拎着一个塑料袋子走过来,袋子里是两盆绿植和一套茶具。“开业总得有点东西。”老赵把袋子往桌上一放,背着手在屋里转了一圈,点点头,“朝南好,亮堂,冬天不冷。”
“赵哥,你怎么找到这儿的?”
“园区物业跟我老熟人了。”老赵在唯一那张椅子上坐下,跷起腿,“我跟你说个事。我下个月正式办退休手续,办完了也没别的事。你这儿要是缺个顾问,我就过来帮你看看合同、把把关。不要工资,有项目了算分成,没项目就当我找个地方喝茶。”
林晓愣住了。他直起身,手上还攥着抹布:“赵哥,你认真的?”
“我什么时候跟你开过玩笑。”老赵低头摆弄茶具,语气平常,“我干了一辈子技术管理,手上攒的不光是经验,还有人脉。你技术硬,我帮你看方向,咱俩搭伙不亏。”
林晓把抹布放下,走过去郑重地伸出手。老赵笑着拍了他一巴掌:“少来这套虚的。把你那营业执照给我看看,我去给你办园区那边的门禁和停车位。”
周六小雅来的时候带了两个人。一个是她同事小杨,也就是上次介绍仓储物流项目的那位;另一个是小杨的丈夫刘总,三十五六岁,穿一件深蓝色夹克,说话带着南方口音。刘总在屋里转了一圈,看了看林晓的电脑和墙上的白板,直接拉了把椅子坐下聊需求。
“我那套系统是四年前买的,每年维护费两万多,功能还用不到三分之一。”刘总掏出手机翻着截图给他看,“林工,我的要求很简单:入库出库扫码,库存实时同步,月底自动生成报表。别的花哨功能都不要。”
林晓拿过白板笔,一边问一边画流程图。问清楚单量峰值、SKU数量、现有设备接口之后,他大致估了一下工作量:“三周能交付第一版,你先用着,有问题我随时改。费用分三期付,第一期先付三成。”
刘总很痛快:“行。签合同。”
小雅在旁边给绿萝浇水,听着他们谈妥,回头冲林晓笑了一下。林晓在合同上签完字,送走刘总夫妇,刚坐回椅子上喝口水,手机响了。是个陌生号码,接起来对方说是周总介绍来的,一家做餐饮连锁的公司,想约时间聊小程序点餐系统的开发。挂了电话,又来一个咨询的,是从技术论坛上看到他之前发的帖子找过来的。
小雅坐在对面,见他一个接一个接电话,等他放下手机才开口:“你那个帖子什么时候发的?”
“上周。把之前做过的一些通用模块整理成文档发论坛上了,没留电话,只留了邮箱。”林晓拿起手机翻到那个帖子给她看,“留了张办公室照片,有人认出来是这栋楼,就找到物业问了联系方式。”
小雅凑过来看了一眼帖子下面几十条回复,有人问技术细节,也有人单纯说“帮顶”。她直起身,环顾这间十五平方的小办公室,白墙,绿萝,旧茶具,窗外是园区里几棵刚抽新芽的香樟树。她说:“林晓,我觉得这事能成。”
“这才刚开始,后面肯定还有难的时候。”
“我知道。”小雅把带来的一个纸袋拆开,里面是一块小蛋糕,上面插着一根蜡烛,“所以今天先庆祝第一步。营业执照有了,第一个客户有了,老赵也来了。够了。”
林晓看着那根蜡烛跳动的火苗,又看了看窗外渐渐暗下来的天色。园区里路灯刚亮,橘黄色的光洒在湿漉漉的地面上。远处有人骑着电动车经过,车灯划出一道短短的弧线。他忽然想到三年前那个通宵改完智云系统核心代码的凌晨,他从公司大楼出来,街上一个人都没有,天边刚刚泛白,他站在路边等第一班公交,心里想的是这个项目上线之后能拿多少年终奖。
那时候他把希望押在别人身上。
现在不一样了。项目是自己谈的,合同是自己签的,代码是自己一行一行敲出来的。就算明天一个客户都没有,至少这间屋子的钥匙在他自己手里,门口那块铜牌上刻的是他自己的名字。
小雅点完蜡烛催他许愿。林晓闭上眼,没什么特别的愿望,只希望每一个交付的代码都不出问题。睁开眼一口气吹灭,烟袅袅升起来,小雅在旁边拍手笑。
她的手机响了一声,拿起来看了看,递给他:“你爸发来的。问你新公司开张了没有,他跟你妈想来瞅瞅。”
林晓接过手机,看到父亲发来的那条消息后面还跟了一个老年表情包,一朵向日葵下面写着“加油”。他打字回:下周末来吧,我带你们看看。
发完把手机还给小雅,站起来走到窗户边。楼下园区门口那条路上行人来来往往,有人拎着外卖,有人边走边看手机,有人停下来跟门口保安聊两句。每一个人都有自己的去处,都有自己的事情忙。他站在五楼的窗户后面,第一次觉得这座城市不是困住他的地方——那些亮着灯的格子间,每一盏都可能成为他的客户,也可能成为他的对手,但归根结底,它们是敞开的、可触及的。
未来就在那些灯光里。具体到下周要去见的那家餐饮公司,具体到刘总那套系统第一行代码该从哪里开始写,具体到老赵下周退休后第一次来办公室喝茶会带什么茶叶。
小雅走到他身边,两人并肩站着看窗外。“想什么呢?”
“想下周的安排。”林晓转过头看她,“你同事老公那套系统,我打算把基础框架做得灵活一点,以后他要是扩大规模,加模块不用重写。多花两天时间,值。”
小雅点头:“你说了算。技术上的事我不懂,但我知道你做的东西比原来公司那帮人靠谱。”
“这话别在外面说。”
“我知道。就在这屋里说说。”小雅笑着挽住他的胳膊,“走吧,蛋糕再不吃要化了。”
窗户玻璃上映出两个人的影子,身后的办公室里,那盆绿萝的叶子支棱起来,在暖光灯下泛着水光。园区里的路灯一盏接一盏亮过去,把整条路照得清清楚楚。林晓拿起桌上的蛋糕盒,顺手关了灯,两个人走出办公室,锁门的时候他摸了一下门框上那块还没刻字的铜牌位置,嘴角微微动了动,什么话都没说。
第十七章 年夜饭上的真心话
年夜饭是父亲做的。林晓和小雅到家时,桌上已经摆满了盘碗。厨房里油烟机轰轰响着,父亲围着那条洗得发白的蓝色围裙,正把最后一道红烧鱼往盘子里盛。
“洗手吃饭。”父亲头也没回,只扔过来一句。
母亲从卧室出来,手里拿着两双新拆的棉拖鞋,塞到林晓和小雅脚边。她拉着小雅的手端详了一阵,说瘦了,又问社区医院春节排班怎么样。小雅说轮了两天,明后天能歇。母亲点点头,转身去厨房端汤。
四个人围着方桌坐下来。窗外远处有零星的鞭炮声,是郊区方向传来的,电视里春晚还没开始,屏幕上来回滚动着本地新闻的字幕。
父亲给林晓倒了一杯黄酒,自己也满上,问:“公司开起来了?”
“开了,上周刚弄完。”林晓端起杯子抿了一口,黄酒温过的,不烫,入口有股淡淡的米香。
“几个人?”
“加上老赵,三个。老赵是顾问,平时不坐班。主要就我和小雅跑。”
父亲夹了一筷子鱼肉,把刺挑出来放到碟子边上,没有急着接话。他这个人一辈子在厂里做技术,从车工干到质检,话少,酒量也浅。隔了好一会儿才问:“接得到活?”
“接了两个小项目,够交房租。大的还在谈。”林晓放下杯子,“爸,我不瞒你,刚起步,钱不多。不过每一分都是自己挣的,花着踏实。”
父亲把杯里剩的黄酒一口喝了,点点头,伸手又去拿酒瓶。母亲在旁边用筷子敲了一下他的手背:“行了,晚上还要放炮竹呢。”
“就一杯。”父亲缩回手,难得地笑了笑,转头去看电视。
母亲开始往小雅碗里夹菜。先是一块红烧肉,又夹了一筷子清炒芦蒿,嘴里说:“小雅,这几个月辛苦你了。他那个人犟,认准的事八头牛拉不回来,你不容易。”
小雅端着碗接菜,笑着说:“妈,我们一起的。他熬夜写方案我陪着,我上夜班他等我,都一样。”
“话是这么说。”母亲叹了口气,“去年这时候你俩还在为那个年终奖的事憋气呢。八百八,我听到都来气。你爸当时就想打电话去他们公司问问,被我拦住了。”
林晓低头吃菜。那八百八的事已经过去快一年,母亲提起来还是气得手抖。他正要开口,父亲忽然从电视方向转过头来,说了一句让桌上安静下来的话:“你那前领导,是姓张吧?”
“张经理,怎么了?”
“上个月有人来厂里调我档案。”父亲放下筷子,“说是你们公司做背景调查,问我在职情况、家庭关系,连你妈的单位都问了。我当时没多想,后来想想不对劲。我都退休五年了,他们查我干什么。”
林晓拿筷子的手顿了一下。
“什么时候的事?”
“一个多月前。”
那正是他在技术论坛上发帖的时间。帖子下面有人猜出了他原来的公司,后来几个甲方来咨询时都问过他为什么离开。他没有说过一句原公司的不是,只讲技术规划。
“爸,这事我来处理。他们再联系你,你让他们直接找我。”
“我没搭理他们。”父亲重新拿起筷子,“我就是跟你说一声。背后打探人,这种事不地道。”
母亲在桌下踢了父亲一脚,意思是别在过年的时候说这些。父亲没再说,端起茶杯喝了一口,又把电视音量调大了一格。
饭吃得差不多了。母亲收拾碗筷,小雅起身帮忙,被母亲按回椅子上。林晓靠在椅背上,看着客厅里那台老式挂钟的指针走到八点。窗外的烟花声渐渐密起来,一朵接一朵在夜空中炸开,有红的绿的,绽开之后像一把把展开的伞,慢慢往下落。
小雅走过来,朝他偏了偏头,意思去阳台。林晓起身跟出去。
阳台不大,晾着几件衣服,角落里堆着几个空花盆。夜风带着寒气吹过来,小雅把外套领子紧了紧,靠在栏杆上。对面楼里也是灯火通明,有人在阳台上放小烟花,银色的火星子噼里啪啦往外窜。
“刚才爸说的那事,你别急。”小雅侧过脸看他。
“不急。我大概猜得到是张经理在背后搞小动作,怕我在外面接活影响他们公司。”林晓也靠在栏杆上,两只手插在口袋里,“不过他们查我家人,这事有点过了。”
“你打算怎么办?”
“年后让律师发个函过去,点到为止。不闹僵,也不让他们觉得我好欺负。”林晓顿了顿,“今天不说这个,除夕呢。”
小雅笑了一声,没有再追问。远处又有几束烟花升起来,这次是金色的,哗啦啦散开像垂柳一样挂在天边。她指着那边说:“你看那边,去年三十晚上我们也在这站着,你手机响个不停,是你们工作群里的消息。你一条一条回,我催你三回你才肯进来吃饭。”
“那时候智云系统刚上线,出了点问题。”
“我知道。”小雅转过头来,烟花的光映在她脸上,明明暗暗的,“我想说的是,去年这时候你还在为那八百块年觉得憋屈,一晚上没怎么说话。今天你不一样了。”
“哪里不一样?”
“话多了。刚才跟爸说那两个项目的时候,你眼睛是亮的。”小雅伸手把他外套领子翻正,“林晓,你看,你以前总觉得是别人不给你机会。现在你自己给自己机会了。”
林晓没有接话。他想起来去年那个晚上,他坐在同一个位置,手机屏幕的光照在脸上,一句话说不出来。当时小雅端了杯热水给他,在阳台上陪他站到十二点以后。他没说过谢谢。
“小雅。”他叫她名字。
“嗯?”
“谢谢你相信我。”
小雅没有回答,只把手伸过来,握住他的手。她的手指有点凉,却攥得很紧。夜风把远处烟花的硝烟味吹过来,混着邻居家厨房飘出来的饭菜香。楼下有人在喊孩子回家,声音被风吹得断断续续。
两个人就这样站着,看烟花一朵一朵在天上亮,又一朵一朵暗下去。屋里传来母亲招呼吃汤圆的声音,还有父亲跟谁打电话拜年的笑声。
第二天早上离开的时候,母亲往小雅包里塞了一罐腌好的咸菜和两袋自己灌的香肠,叮嘱他们别老吃外卖。父亲站在门口没出来,只在门里说了句:“好好干,别怕慢。”
林晓回头看了一眼,父亲已经转身回屋了,只留给他一个佝偻的背影。楼下有人在放开门炮,碎红纸屑铺了一地,空气里是硝烟和霜冻混在一起的味道。
车子拐出巷子的时候,小雅从副驾驶的购物袋底下翻出一个红包,打开一看,里面是六千块。母亲的字条夹在钱里,只写了一句:买点好的补补身体。
林晓握着方向盘没说话。小雅把红包收好,看着前方的路,说:“明年过年,咱们给爸妈包个大的。”
“一定。”
车子汇入主路,路两边挂满了红色的灯笼,绵延着一直往市区延伸。前方的路又宽又长,阳光洒在路面上,明晃晃的。
第十八章 迟到的公道
正月初十,林晓收到一条短信,来自区人民法院的电子送达平台。他点开看了两遍,确认自己没有看错——原公司前员工陈工起诉公司拖欠项目奖金一案,已经判决,判决书里有一段关于智云系统署名权的认定。
林晓把手机递给小雅。小雅接过去,看完没有马上说话,只是抬起头看着他,眼神里带着一种确认的意味。
“判决书里写了,智云系统的核心模块开发人员名单缺失,实际开发者和署名者不一致,要求公司限期整改。”林晓的声音很平,像在念一段技术文档,“法院认定了这个事实。”
“那你之前说的署名权,现在有依据了?”小雅问。
“有了。”
小雅把手机还给他,没有多余的话,只问了一句:“要去找律师吗?”
“找。”
正月十二,林晓带着判决书的复印件和整理好的技术档案,来到城西一家律所。接待他的是位四十出头的女律师,姓季,做知识产权和劳动争议两个方向。季律师翻完材料,抬起头,问了一句很实际的话:“你的诉求是什么?”
“两件事。第一,智云系统核心开发者的署名应该体现在项目文档和对外材料里。第二,对应的项目奖金,我应得的部分要拿回来。”
季律师合上文件夹:“署名权这块有判决书做参照,虽然你不是那个案子的当事人,但同一项目的类似事实可以援引。奖金部分需要你提供开发记录、代码提交时间戳、内部沟通记录。你手上有多少?”
“三年内的全部代码仓库提交日志、工作邮件、周报,以及两次线上事故的修复记录。”林晓从包里取出一个移动硬盘放在桌上,“拷贝了一份,都在这里。”
季律师看了一眼硬盘,微微点头:“准备得够充分。这个案子能打。”
三天后,季律师以林晓的名义向原公司发出律师函,要求就署名权及项目奖金进行协商。函件发出的第二天下午,林晓正埋头在工作室写代码,手机亮起来,来电显示是一个陌生号码。他接起来。
“林晓,我是张经理。”对方的声音比年前多了一丝紧绷,“律师函我收到了。公司法务在问,你这是什么意思?”
“函上写得很清楚。署名和奖金,两个诉求。”林晓语气平和,“判决书你也能查到,同一项目的署名问题已经被认定过。我要求同样的处理,合理合法。”
“你当年签过保密协议,也签过职务作品归属协议,公司付了你工资,代码归属和署名都是公司的。”张经理的语速比平时快,显得有些急。
“张经理,协议里关于署名的条款,存在明显不公平的格式条款嫌疑,季律师已经做了审查。”林晓停了一下,“另外,徐明提交的二期代码有严重漏洞,我年前在工作群里指出来过。如果公司想走诉讼,我不介意把技术鉴定报告一并提交。包括智云系统上线后两次故障的根因分析。”
电话那头安静了几秒。
“你这是在威胁公司?”
“我在陈述事实。周工那个案子的判决书里也提到了系统运维风险,你们当时没整改。如果再拖,客户那边的投诉记录会更多。”
张经理的声音低了下去,带着一种压抑的恼怒:“林晓,你以前不是这样的。”
“以前我以为埋头干活就够了。”林晓的声音没有起伏,“现在我知道,该说的话还是要说。”
张经理没有再说什么,挂了电话。
隔了一天,季律师打来电话,说公司法务主动联系了,愿意协商,前提是林晓不对外公开判决书细节,也不在技术论坛上继续讨论此事。季律师问他的意见。
“可以协商。但署名必须体现在项目文档中,更新版本要发给我确认。奖金部分按我的实际贡献核算,不能打折。”
“他们初步提的方案是补发两万,署名加在二期文档的致谢栏。”
“致谢栏不行。核心开发者名单,单独一栏,和徐明原来那个位置并列。奖金按原来项目合同里给核心开发人员的参照标准,再算。”
季律师沉默片刻,语气里带了点笑意:“你比我预想的要清楚规则。”
“以前不清楚,现在学明白了。”林晓说。
两天后,双方在律所见面。公司来了法务和一位人事主管。张经理没来。法务的态度客气里带着公事公办的冷淡,拿出文件一条一条过。林晓逐项确认,在署名条款上反复斟酌用词,最终定稿。奖金核算依据他提供的开发日志和代码提交记录,公司方核算后同意补发六万八,分两笔支付。
签完字,人事主管起身要走,法务留下来,对林晓说了一句:“周工那个案子,你是借了力,但也确实有理。公司法务部年后会启动对智云项目二期的内部审查。”
“那是你们的事。”林晓把文件放进包里。
季律师送他出门,在电梯口说了一句:“你是我见过的当事人里,准备最齐全的一个。证据链完整到对方几乎没有辩驳空间。”
林晓按了电梯按钮:“吃过亏,学乖了。”
“这件事之后,你的法律底子算是打下来了。以后再有人想用协议压你,直接找我。”
电梯门打开,林晓走进去,按了一楼。门关之前,他对季律师点了点头:“会的。”
回到工作室,小雅正对着电脑整理发票,见他进来,抬头问:“成了?”
“成了。署名加在核心开发者名单,奖金补发六万八。”
小雅从椅子上站起来,走到他面前,伸手在他肩膀上拍了拍:“好。晚上加个菜。”
林晓笑了一下,把包放下,坐到自己的工位上。电脑屏幕亮着,IDE里是写了一半的代码。他搓了搓手,手指重新放回键盘上。
手机震了一下,是周总发来的消息:听说你那边的事了。这才叫实至名归。下周我约了个人,做智慧仓储的,可能需要你做技术方案,见面聊。
林晓回了一个字:好。
他把手机扣在桌上,看了一眼小雅。她已经在厨房里叮叮当当地忙开了,抽油烟机响起来,盖过了窗外的风声。代码在屏幕上跳动着一行行新指令,光标停在末尾,有节奏地闪着。
窗外,路边的行道树已经抽出了新芽,嫩绿色的叶子在风里轻轻翻动。阳光从百叶窗的缝隙里斜进来,在地板上画出一排平行的光带。
林晓伸手调了一下百叶窗的角度,光带变宽了一些,把整个工位都兜了进去。
第十九章 再出发
春节的余温还没散尽,街边的红灯笼依旧挂在梧桐枝头,风一吹,穗子轻轻晃。
林晓站在新办公室的落地窗前,手里攥着一块湿抹布。玻璃上还有装修留下的粉尘痕,他擦了两遍,光透进来的时候,终于干净了。这间办公室比之前那个三十平的小隔间大了三倍,贴着浅灰色的墙布,靠窗一排工位,够坐六个人。角落里隔出一间独立的小会议室,门还没装,门框空着,能看见里面摆了一张长桌和几把椅子。
“先装门还是先买饮水机?”小雅从外面搬进来一个纸箱,里面是打印纸和文件夹,额头上沁着一层薄汗。
“门。”林晓把抹布搭在窗台上,走过去接过纸箱,“饮水机明天到货,今天先将就着喝矿泉水。”
小雅拍了拍手上的灰,环顾了一圈,嘴角翘起来:“比原来那个地方敞亮多了。周总那笔尾款到账得真及时。”
“是预付款。”林晓把纸箱搁在墙角,“他新介绍的那个做智慧仓储的客户,合同还没签,先给了三成定金,说让我先把环境弄好。”
“你打算什么时候招人?”
“不急。先把老赵的位置留出来,他下个月退休手续办完就能过来。其他的人,等手头项目排满了再招,养人不是小事。”
小雅点点头,从包里掏出一个牛皮纸信封,递给他:“我昨天去社区医院交了辞职报告。主任挽留了两句,说随时欢迎我回去。”
林晓接过信封,没打开,只是握着,看着她的眼睛:“护士干了八年,真舍得?”
“舍不得。”小雅坦然地笑了笑,“但是这边更需要人。你技术行,跑客户、管账、做后勤这些琐事你不在行。咱俩搭伙,你管代码,我管杂事,正好。”
林晓没再多说什么,把信封塞进抽屉,转身从书包里翻出一卷红纸和一支毛笔。小雅凑过来看:“你还买了这个?”
“老赵说,开张要有开张的样子。”林晓把红纸在长桌上铺开,拿镇纸压住四角。毛笔蘸了墨,他悬腕停顿了一下,脑子里过了一遍词,然后落笔。
上联:踏实做事
下联:坦荡做人
字不算漂亮,但一笔一划有筋骨,墨色匀称,不洇不散。小雅在旁边念了一遍,点头:“好。横批呢?”
林晓放下笔,退后半步端详了一会儿,忽然笑了一下:“问心无愧。”
小雅也笑了,动手帮他把对联翻面,抹上浆糊,两人一左一右贴到门口两侧。横批的红纸稍微窄一点,林晓搬了把椅子踩上去,小雅在下面看着位置。“左边高了。”“现在呢?”“好。”
林晓跳下来,两人并肩站在门口看。走廊里有人推着推车经过,扭头看了一眼对联,又看了一眼门楣上刚挂上去的招牌,念出声:“晓光科技。”
“对。”林晓应了一声。
那人点了点头,走远了。
小雅忽然想起什么,回头往办公室里看:“老赵说几点到?”
“十点。”林晓看了一眼手机,“还有二十分钟。”
话音刚落,走廊拐角处传来一阵脚步声,不快不慢,带着点老年人特有的节奏。老赵出现在门口,穿着一件洗得发白的夹克衫,头发花白但梳得整齐,左手提着一个塑料袋,右手拎着一盆绿植。
“老赵。”林晓迎上去接东西。
老赵把绿植递给他,是一盆绿萝,叶子绿得发亮,藤蔓已经垂下来一小截。“开张要摆绿植,好养活,不用太费心。”老赵换了鞋走进来,四下打量了一圈,脸上露出满意的神色,“这地方不错,比我预想的还宽敞。”
“您那间在里面。”林晓指了指会议室隔壁的小隔间,里面摆了一张桌子、一把椅子、一个文件柜,“等您正式来的时候,电脑和电话都配齐。”
老赵走过去看了一眼,摆摆手:“不用配新电脑,我家里那台笔记本还能用,带过来就行。电话也不用,有事你们直接喊我。”他转过身来,看着林晓和小雅,“我退休了,拿不拿工资无所谓,就是想帮你们跑跑腿、看看合同。干了三十多年技术,别的手艺没攒下,看问题的眼力还在。”
“工资要开的。”小雅接话,“您来就是顾问,按项目分成算,不能白干。”
老赵笑了一声,没再推辞,从塑料袋里掏出一叠文件放在桌上:“这是周总上午传真过来的,智慧仓储那个项目的初步技术需求,让你先看看。他下午两点过来,当面聊细节。”
林晓走过去翻了两页,手指在纸面上划过,眼神渐渐专注起来。这份需求写得比较糙,但核心思路清晰,仓储流程可视化、库存预警、出入库自动化调度,这些模块的技术路径他心里很快就有了大概轮廓。
“能做。”林晓合上文件,“有两个地方需要确认接口协议,下午问清楚就行。”
老赵在椅子上坐下来,看着林晓:“我就知道你会说能做。当年智云系统刚立项的时候,张经理找了三拨外包都没搞定核心算法,你一个人闷头啃了半个月,硬是拿下来了。那时候我就跟旁边人说,这小伙子是干活的人。”
林晓把文件收进文件夹,没有接话。小雅在旁边泡了三杯茶,端过来一人一杯。茶是龙井,清明前的,汤色清亮,叶子在水里缓缓舒展开。
“过去的事不提了。”林晓端起茶杯抿了一口,“往前看。”
老赵点头,没有再追问。
下午两点,周总准时到了,身边还带了一个戴眼镜的中年男人,介绍说是智慧仓储公司的技术总监,姓方。方总监话不多,坐下来就翻开笔记本电脑,对着需求文档逐条问,接口协议、并发上限、数据迁移方案,问得又细又专业。林晓一条一条答,有些地方当场画了架构草图,方总监看了之后点了两次头。
谈了一个多小时,方总监合上电脑,对周总说:“可以。比之前接触的两家都清楚。”
周总笑着拍了拍林晓的肩膀:“我说了,他干活你放心。”
签完意向书,送走两位客户,已经快五点了。小雅在算今天签的合同金额和预付款到账时间,老赵在会议室里整理技术文档。林晓站在门口,看着走廊尽头的窗户。夕阳透进来,把整条走廊染成暖黄色,墙上贴的对联在光影里显得格外醒目。红纸墨字,朴素,但扎实。
“晚上吃什么?”小雅的声音从里面传出来。
“楼下那家面馆吧,庆祝开张。”林晓回头说。
老赵从会议室探出头:“加个醋溜白菜。”
小雅笑起来:“您倒不客气。”
“当顾问的福利。”老赵理直气壮地说。
林晓站在门口,看着他们俩一个翻文件一个算账,忽然觉得这个画面很安静,也很实在。走廊外头,有别的公司下班的人陆续经过,脚步声、说话声、电梯开合的声音混在一起,构成一种日常的、不慌张的节奏。
小雅抬头看见他还站在门口,问他:“发什么呆?”
“没什么。”林晓走回来,把门带上,对联被隔在外面,但字他记得清楚。
横批两个字,刻在心里的那种踏实。
他坐到自己的工位上,打开IDE,手指搭上键盘。屏幕上光标在跳跃,等着他输入第一行代码。这间办公室里的一切都是新的,但有些事情没变,写代码的方式没变,对技术的要求没变,只是从此以后,每一行代码都署自己的名。
窗外的海棠树被风吹了一下,花瓣落了几片,飘到窗台上。小雅起身去关窗户,顺手把那几片花瓣拂掉,动作轻得像没发生过。
老赵从会议室出来,手里拿着打印好的项目排期表,放到林晓桌上:“第一版排期,你看看有没有问题。”
林晓扫了一眼,点头:“可以,就这么干。”
老赵满意地拍了拍桌子,转身去给自己续了杯水。
办公室里安静下来,只有键盘声和偶尔翻页的声音。三个人各据一角,没人说什么豪言壮语,但每个人都在做自己的事。光线从百叶窗的缝隙里斜进来,把三个人的影子拉长在地板上,交叠在一起。
林晓敲完一个函数的最后一行,习惯性地按了保存,然后偏头看了一眼小雅。她正在核对一张发票,眉头微微皱着,握笔的姿势还是当护士时写医嘱的样子,工整、清晰。像是察觉到他的目光,她抬起头,冲他笑了一下。
“干完了?”
“一段。”
“慢慢来。”她把发票收进文件夹,起身去倒水,“晚上时间还长。”
林晓靠在椅背上,望着天花板。日光灯管是新换的,白色的光很均匀,不闪。他想起一年多前那个年会现场,头顶的灯也是这样亮,但那时候他坐在台下,手里攥着八百八的奖金信封,心里一片冰凉。现在这间办公室的灯,也是亮的,却不刺眼了。
他闭上眼睛,又睁开,拿起手机给老赵发了一条消息,虽然老赵就在隔壁。
“明天的客户资料帮我整理一份,我晚上再看一遍。”
老赵在那边低头看手机,回了一个字:“好。”
隔着几米远,两个人没说话,但都笑了一下。
小雅端着水杯走回来,路过林晓背后,停了一步,拿杯子轻轻碰了碰他的肩膀。他没回头,伸手往后拍了拍她的手腕。她没说话,走回自己的位置坐下。窗外天色暗下去,路灯亮起来,整条街的光从窗户涌进来,和室内的灯光融在一起,分不清哪边更暖。
(全文完)
文章虚拟演绎,请勿当真。
热门跟贴