地铁口的夜风带着江面潮气,像一层看不见的冷膜覆在皮肤上。苏沂抱着纸箱,雨水顺着纸箱棱角滴落,在脚边积成深色的小洼。人群从他两侧涌过,伞沿碰撞,溅起细碎水珠,也溅起隐约的嗤笑与议论。那些声音像细小的玻璃珠,滚进他耳里,叮当作响,却撞不出血痕。他垂着头,目光落在纸箱里那盆发黄的绿植上——叶片软塌,却固执地朝着灯光方向弯曲,像不肯死去的念头。
被辞退的第三日,他仍住在城中村的握手楼里。楼梯窄得只容一人,墙面剥落,露出灰黑的砖芯。房间不足十平米,一张折叠床,一台二手笔记本,一盏冷白台灯,便是全部家当。夜里,隔壁传来婴儿的啼哭与锅铲碰撞的脆响,混着潮湿霉味,从门缝钻进来,像某种顽强的生命,在逼仄里也要扎根。他却不再觉得难熬,反而在这种拥挤里寻到一点安稳——至少,这里不需要解释,不需要“团队纯净”,也不需要面对江殷隐那双结冰的眼睛。
第四日清晨,他在楼下豆浆铺排队。店铺极小,只容得下一张长桌,几个年轻人围着一张A3纸讨论,声音压得很低,却掩不住兴奋。纸上画着简易框架图,箭头与方框交错,像一张尚未成形的网。苏沂本没在意,直到听见“前端可视化”几个字,他的指尖无意识地动了动,像惯常敲击键盘那样,在空气中敲下一串无形的代码。讨论的人群里,一个穿灰色连帽卫衣的男生抬头,目光与他短暂相接,又迅速滑开,像两艘夜航的船,在黑暗里交换了一次灯光。
第五日,他在同一间豆浆铺再次遇见那人。男生把A3纸卷成筒,随意夹在腋下,却在一瞬间滑落,图纸摊开在苏沂脚前。苏沂弯腰拾起,目光掠过纸上密密麻麻的批注,心跳突然加快——那是他熟悉的领域,是他曾熬夜啃过的技术,是他被辞退时被迫放弃的战场。男生接过图纸,低声道谢,声音却带着掩不住的倦意:“谢了,折腾一晚上,还是跑不通。”苏沂犹豫片刻,还是开口:“把数据源换成WebSocket,再用增量渲染,会轻很多。”话音落下,他自己也怔住——原来那些代码,那些公式,早已刻进他的骨血,只需一个契机,便会自己长出翅膀。
男生的眼睛亮了一下,像灰烬里突然跳起的火星。他自我介绍,姓林,单名一个“野”字,去年毕业,曾在大厂做后端,因不愿通宵调参而辞职,如今带着两三好友,想做一个“让数据自己说话”的小公司。他说得很快,却条理清晰,像一条在暗处潜伏已久的河,终于找到出口。苏沂听着,胸口某处被悄悄点燃,火势很小,却足以照亮荒芜。他没有提及自己被辞退的过往,也没有提及江殷隐的名字,只是简单地说:“我懂一点前端,如果缺人,可以试。”林野点头,笑意从眼角漫开,像春夜第一朵桃花,不惧寒风。
第七日,他走进那间租借的民房。客厅被改成办公区,四张二手桌子拼成口字形,墙角堆着纸箱,里面装着二手显示器与网线。窗帘半旧,阳光透进来,落在地板上,像一片被揉皱又摊开的金箔。林野把一台笔记本电脑推到他面前,屏幕亮着,代码停在报错行,红色波浪线像细小的火焰。苏沂坐下,指尖落在键盘上,敲击声响起的那一刻,他听见自己血液流动的声音——原来他从未真正离开,只是被暂时的黑暗遮住了眼。那一夜,他敲到凌晨三点,报错一行行消失,屏幕最终亮起干净的界面,像雨后初晴的天空。他靠在椅背上,听见林野和同伴压抑的欢呼,听见自己心脏有力的跳动,听见远处传来第一声鸡鸣,像为新生的黎明吹响号角。
第八日,公司名字被钉在门上——“野火数据”,木牌极小,字迹却倔强。林野说,野火虽小,却能燎原。苏沂站在门前,看着那三个字,忽然想起那盆被雨水打湿的绿植,想起它固执朝向灯光的模样。原来他亦是野火,只需一星火种,便可重新燃烧。他开始习惯在清晨七点抵达办公室,习惯在豆浆铺买两杯豆浆,一杯给林野,一杯给自己;习惯在深夜十一点离开,灯光把影子拉得很长,像一条不肯弯曲的线。他不再去回想那座写字楼十九层的落地玻璃,不再去回想江殷隐转身时肩角落下的雪,不再去回想“团队纯净”四个字如何将他推入深渊。他只是不停地写代码,一行又一行,像在为过去的自己刻碑,又像在为未来的自己铺路。
四月,产品雏形完成,林野带着他和同伴去海边路演。海风很大,吹得展板猎猎作响,吹得他们的声音断断续续,却吹不灭他们眼底的光。演示完毕,一个小型风投公司表示愿意试投,金额不大,却足以让他们租下一间真正的办公室,买下新的电脑,印下自己的名片。那天晚上,他们坐在海边的堤坝上,喝啤酒,吃烤串,笑声被海浪打碎,又重新拼合。林野举杯,对他说:“欢迎回家。”苏沂愣住,随即笑了,眼眶却悄悄发热。他想起四年前那个站在火车站台的自己,想起那盆被雨水打湿的绿植,想起那些被撕碎又重来的草稿纸,原来都是为了抵达此刻——在陌生的城市里,与陌生却相契的人,一起点燃一堆小小的火。
五月,办公室搬进一栋老厂房的顶层,屋顶是斜的,雨天会传来细密的敲击声,像无数细小的手指在敲门。白天,阳光透过天窗落在地板上,形成一块块明亮的光斑,像散落的金币。夜晚,城市的灯火从四面窗户涌进来,像一片倒置的星空。苏沂的工位靠窗,他习惯在深夜停下敲击,抬头看远处那条缓缓流动的江,江面灯火摇曳,像被风吹皱的锦缎。他忽然想起江边的那个雨夜,想起自己抱着纸箱坐在长椅上的狼狈,想起雨水落在江面的涟漪,想起那些被灯火撕碎的倒影。原来他早已走出那条潮湿的巷子,只是脚步太轻,连自己都未曾察觉。
六月,产品正式上线,用户增长缓慢却稳定,后台数据像春潮,一点点上涨,一点点照亮他们的脸。林野把第一批用户留言打印出来,贴在墙上,五颜六色的便签像一面温暖的旗。苏沂每天清晨都会去看那些留言,有人感谢他们让数据变得生动,有人夸赞界面简洁得像晨风,也有人提出苛刻的修改意见。他一一记下,像农夫在田埂上插下秧苗,等待它们在自己的掌心里抽穗、灌浆、结实。他开始习惯在深夜与代码对话,习惯在凌晨两点的便利店买一杯热牛奶,习惯在屋顶看第一缕晨光把城市的轮廓勾勒成金色。他不再去回想那些被否定的日子,不再去回想那些被误解的时刻,不再去回想那些被雨水打湿的夜。他只是不停地写,一行又一行,像在为过去的自己刻碑,又像在为未来的自己铺路。
七月,风投的第二笔资金到账,公司从四个人扩展到十个人,再从十个人扩展到二十个人。办公室变得热闹,键盘声、讨论声、笑声此起彼伏,像一片蓬勃的森林。苏沂的职位从“前端工程师”变成“技术合伙人”,名片上的字烫金,却轻得像一片羽毛。他开始习惯在会议上发言,习惯在路演时微笑,习惯在深夜与投资人讨论商业模式,习惯在凌晨两点走出办公室,看城市的灯火一点点熄灭,像潮水退去的海滩。他开始习惯被称呼“苏总”,习惯在电梯里与陌生人交换名片,习惯在深夜的出租车上听电台主持人谈论“野火数据”的崛起。他却依然会在某些瞬间失神——在地铁口看见穿深灰色西装的背影,在会议室听见相似的嗓音,在深夜的代码里看见一行熟悉的注释。那些瞬间像细小的针,轻轻一刺,就涌出暗红的血,却不再疼得钻心,只是隐隐地、钝钝地提醒他:有些人出现,是为了陪你走一段路,然后各自走向不同的方向;而你要做的,不是站在原地等待,而是继续向前,哪怕前路茫茫,哪怕孤身一人。
八月的一个夜晚,公司举办小型庆功会。灯串挂在屋顶,像一片倒置的星空。同事们举杯欢笑,林野站在人群中央,像一棵挺拔的树。苏沂端着一杯啤酒,站在角落,看同事们欢笑,看灯串闪烁,看城市的灯火从四面窗户涌进来,像一片倒置的星空。他忽然想起四年前那个站在火车站台的自己,想起那盆被雨水打湿的绿植,想起那些被撕碎又重来的草稿纸,想起那些被雨水打湿的夜。原来他早已走出那条潮湿的巷子,只是脚步太轻,连自己都未曾察觉。他举杯,一饮而尽,酒水冰凉,却浇不灭胸腔里那团小小的火。他知道,那团火名为“野火”,名为“未来”,名为“自己”。
夜渐深,灯串一盏盏熄灭,同事们三三两两离去,屋顶只剩他和林野。林野把最后一罐啤酒抛给他,罐身冰凉,却烫得他指尖发颤。林野说:“接下来,要去更远的地方。”苏沂点头,拉开拉环,酒水泡沫涌出,像一场小小的雪崩。他仰头饮尽,酒水冰凉,却浇不灭胸腔里那团小小的火。他走到屋顶边缘,看城市的灯火从四面涌来,像一片倒置的星空。他忽然笑了,笑得极轻,却极真。因为他知道,他已经找到了自己的方向,哪怕前路茫茫,哪怕孤身一人,他也会继续向前,一步一步,走向属于自己的光亮。
风从屋顶掠过,带着一点潮湿的咸味,像一层看不见的膜,却再也裹不住他。他站在灯火之上,站在星空之下,站在属于自己的方向之上。他知道,前方还有很长的路要走,还有很多代码要写,还有很多夜晚要独自熬过。可他也知道,他已经不再是那个抱着纸箱、坐在雨里茫然无措的少年。他的心里有一团火,名为“野火”,名为“未来”,名为“自己”。那团火很小,却足以照亮一条野路,足以温暖一段旅程,足以点燃一个黎明。
于是,他转身,走向更深的夜,也走向更亮的光。