← 倒帶五天

第 6 章:第6章:試探

第6章:試探

星期四晚上十一點,林哲翰還在辦公室。

他坐在方佑廷的位子上——方佑廷十分鐘前才走——看著螢幕上user service的code。回歸測試在半小時前跑完了,全部通過。Tenant isolation沒有問題。JWT沒有問題。Cache沒有問題。

技術上,系統是安全的。

但他知道這不夠。

他打開Slack,看著趙品睿的頭像。灰色,代表離線。他點開對話框,開始打字。

「品睿,demo之前我想跟你談一件事。」

他看了幾秒,然後刪掉。重新打。

「品睿,明天的demo,如果投資方問到技術決策的問題,我希望由我來回答。」

刪掉。再打。

「品睿,我想確認一下明天的分工。技術問題我來回答,商業問題你來回答。」

他看了幾秒,按下送出。

然後他後悔了。

這則訊息太直接了。他在要求趙品睿給他一個角色——技術問題的發言人。在原始時間線,他從來沒有要求過這種事情。所有對外的溝通都是趙品睿負責的。

但他需要這個角色。因為如果投資方問到技術問題,趙品睿會回答——而趙品睿的回答可能會把責任推給方佑廷。

他不能讓這種事情發生。

手機震動了。趙品睿回訊息了。

「好。但不要講太多細節。投資方不需要知道技術細節。」

林哲翰看著這則回覆。

「不要講太多細節。」這句話在原始時間線他也聽過。那是在demo結束之後,趙品睿跟他說的。當時趙品睿的意思是:「你講太多了,讓投資方覺得我們的技術有問題。」

但這次趙品睿是在demo之前說的。這代表什麼?代表趙品睿已經在為demo之後做準備了。不管demo結果如何,趙品睿都已經準備好了一套說法。

林哲翰關掉Slack,靠在椅背上。

他想起一件事。在原始時間線,demo結束之後,投資方問了一個問題:「這個系統的架構是誰設計的?」趙品睿回答:「我們的技術主管林哲翰。」

然後投資方問:「JWT的漏洞是怎麼回事?」趙品睿回答:「這是工程團隊的執行問題,我們已經在處理了。」

「工程團隊」。不是「林哲翰」。不是「方佑廷」。是模糊的「工程團隊」。

然後趙品睿在內部會議上說:「這個code是方佑廷寫的,林哲翰有提醒過他要double check。」

對外,責任是「工程團隊」的。對內,責任是方佑廷的。而林哲翰是「提醒過」的人——不是決策者,不是執行者,只是「提醒過」。

這就是趙品睿的方式。他永遠不會把責任綁在一個具體的人身上——除非那個人需要被犧牲。

林哲翰站起來,走到陽台。

十一月的夜晚很冷。他把手插在口袋裡,看著台北市的夜景。十四樓不算高,但可以看到整個內湖科技園區的燈光。每一盞燈後面都有一個人在加班。

他想起方佑廷問他的問題:「你覺得這份工作有意義嗎?」

他想起自己回答的:「我不知道。」

但現在他知道答案了。

這份工作沒有意義。不是因為工作本身沒有意義——而是因為在這個系統裡,工作的意義被剝奪了。方佑廷寫的code,不是他的code。林哲翰做的決策,不是他的決策。所有東西都是「公司的」、「團隊的」、「品睿的」。

沒有人擁有任何東西。除了責任。責任永遠是某個人的。

他聽到身後有聲音。轉頭,看到陳立偉站在門口,手裡拿著一杯咖啡。

「你還沒走?」陳立偉問。

「等一下。」

陳立偉走過來,站在他旁邊。兩個人沉默地看著夜景。

「你覺得明天會怎樣?」陳立偉問。

「不知道。」

「你覺得品睿會滿意嗎?」

「不滿意。」

陳立偉轉頭看他。「你怎麼知道?」

「因為品睿永遠不會滿意。」

陳立偉沉默了一下。「對。」

他們繼續沉默。

「哲翰,」陳立偉說,「我問你一件事。」

「什麼?」

「你最近是不是在保護方佑廷?」

林哲翰沒有回答。

「我看到了,」陳立偉說,「你幫他修code,你幫他擋問題,你讓他不要碰有風險的模組。你在保護他。」

「是。」

「為什麼?」

林哲翰想了一下。「因為他是我帶的人。」

「就這樣?」

「就這樣。」

陳立偉喝了一口咖啡。「你知道品睿怎麼看這件事嗎?」

「你說。」

「品睿覺得你在收買人心。他覺得你在建立自己的團隊。」

「我沒有。」

「我知道。但品睿不這樣想。」陳立偉停了一下,「我跟你說一件事。我之前待過一家公司,也有一個主管在保護他的人。後來那個主管被開除了。不是因為他做錯了什麼,是因為老闆覺得他在搞派系。」

「你覺得品睿會開除我?」

「我不知道。但我覺得你應該要小心。」

「你之前說過這句話。」

「因為是真的。」

陳立偉把咖啡喝完,把紙杯揉成一團。「我走了。明天見。」

「明天見。」

陳立偉走了。林哲翰一個人站在陽台上。

他想起陳立偉說的話。在原始時間線,陳立偉從來沒有跟他說過這些。不是因為陳立偉不知道,是因為陳立偉選擇沉默。

但這次陳立偉說了。這代表什麼?代表他的改變確實影響了其他人。

或者代表陳立偉也在改變。


林哲翰回到位子上,關掉電腦。

他走出辦公室,搭電梯下樓。警衛老張在打瞌睡,聽到聲音抬頭看他一眼,又低下頭。

他走到停車場,騎上自己的機車。十一月的夜晚很冷,他沒有穿外套,風灌進衣服裡,但他沒有加速。

他沿著民權東路騎,經過大直橋,沿著延平北路騎。他不知道自己要去哪裡。他只是需要移動。

他想起母親。她現在應該睡了。她每天早上五點起床,四點半就會醒來。她做清潔工做了二十幾年,膝蓋早就壞了。醫生說要換人工關節,她一直說「再等等」。

他知道她在等什麼。她在等他結婚。她說她要在還能走的時候參加他的婚禮。

他想起方佑廷。這個24歲的年輕人,第一份工作,把林哲翰當師父。他不知道五天之後他會失去這份工作。他不知道他會在LinkedIn上寫那段話。

他想起自己。30歲,技術主管,月薪八萬,股票選擇權價值大約兩百萬——如果公司拿到A輪。如果拿不到,那些選擇權就是廢紙。

他需要公司拿到A輪。他需要那筆錢。母親的膝蓋不能再等了。

但如果公司拿到A輪的代價是方佑廷被開除,那這個代價是什麼?

他不知道。

他把機車停在河濱公園旁邊,走下來。淡水河在夜色中很安靜,水面反射著城市的燈光。他站在河邊,點了根菸。

他不抽菸。但今天他需要。

他想起一件事。在原始時間線,demo結束之後,他回到辦公室,坐在位子上,看著方佑廷的背影。方佑廷正在修一個bug,完全不知道十分鐘前他在會議上說了什麼。

那時候林哲翰想過一件事:他可以去跟方佑廷說對不起。他可以告訴方佑廷,他在會議上說的不是真的。他可以幫方佑廷寫一封推薦信。

但他沒有。

他選擇了沉默。

然後方佑廷被叫進趙品睿的辦公室。然後方佑廷出來了,臉很白。然後方佑廷開始收拾東西。然後方佑廷走了。

林哲翰坐在位子上,看著方佑廷走出公司的門。他沒有站起來。他沒有說再見。

他抽了一口菸,嗆到了。他咳了幾聲,把菸丟掉。

他不能再讓這種事情發生。

但他還不知道該怎麼做。


他回到家的時候已經凌晨一點。他躺在床上,看著天花板那道裂紋,想著明天的demo。

在原始時間線,demo在下午兩點開始。投資方來了三個人——一個合夥人、一個技術顧問、一個分析師。他們坐在會議室裡,許湘芸操作筆電,趙品睿負責簡報。

前半段很順利。登入、對話、資料查詢,所有功能都正常。

然後技術顧問問了一個問題:「你們的系統怎麼處理高並發?」

趙品睿看了林哲翰一眼。林哲翰回答:「我們用了lock-free的cache設計,五百並發下平均回應時間三百毫秒。」

技術顧問點點頭。「那tenant isolation呢?在高並發下還能保證嗎?」

「可以。我們跑過壓力測試。」

「能現場測一下嗎?」

趙品睿的表情變了一下。在原始時間線,林哲翰記得趙品睿的眼神——不是擔心,是計算。他在算如果現場測了,出問題的機會有多大。

「可以,」林哲翰說。

然後他們測了。然後系統出了問題。不是JWT的問題——那個已經修掉了。而是另一個問題:在高並發下,session管理的邏輯有bug,導致兩個不同租戶的session被合併了。

這個問題是方佑廷寫的。不是因為他粗心,而是因為他在趕工的時候,複製了一段舊的code,那段舊的code沒有考慮到多租戶的情況。

在原始時間線,這個問題在demo現場被發現。技術顧問的臉色變了。投資方的合夥人皺了眉頭。趙品睿沉默了五秒,然後說:「這是我們正在處理的問題之一。我們的工程團隊已經在修復了。」

「工程團隊」。

然後在內部會議上,趙品睿說:「這個session管理的code是方佑廷寫的。林哲翰有提醒過他要double check。」

林哲翰閉上眼睛。

他需要確保這個問題不再發生。但他已經沒有時間了。

他拿起手機,打開Slack,傳了一則訊息給方佑廷。

「明天早上早一點來。我有東西要給你看。」

方佑廷沒有回覆。他應該睡了。

林哲翰把手機放在床頭櫃上,閉上眼睛。

他還有幾個小時。

3646 字 •