Chương 92 — Đũa dừng giữa chừng
Mùi khói dầu từ cái chảo gang to bên hông quán phả thẳng vào bàn ăn.
Quán cơm niêu gần ngã tư Thành Thái lúc tám giờ tối vẫn ồn. Tiếng muỗng đĩa đập nhau chan chát, tiếng người gọi món, tiếng quạt gió công nghiệp rít vù vù như tiếng cánh quạt máy bay sắp cất cánh. Ở đây không có máy lạnh, chỉ có hơi ẩm bốc ra từ mặt đường nhựa sau trận mưa rào ban chiều và mùi nước mắm kho tộ quánh lại trên mặt bàn gỗ chưa lau sạch.
Khoa gác chân lên thanh ngang dưới ghế, tay cầm ly trà đá gõ lộc cộc vào thành.
“Trâm nó khôn,” Khoa nói, giọng hơi khan vì cả chiều phải gọi điện chăm sóc mấy chủ tiệm sau khi deploy. “Chị Bảy đang cằn nhằn vụ cái app đổi giao diện, nó không cãi. Nó chạy mua ổ bánh mì nóng, kẹp thêm miếng chả, đem qua đưa tận tay. Chị Bảy cắn một miếng, nuốt chưa trôi là hết giận.”
“Nói láo,” Minh ngồi đối diện, vừa gỡ xương con cá lóc kho vừa nói, mắt không ngẩng lên. “Người ta giận vì app lỗi, chứ đâu phải vì đói.”
“Mày không hiểu,” Khoa chỉ ngón tay đầy dầu mỡ về phía Minh. “Bụng đói thì đầu nóng. Bụng no rồi thì nói cái gì cũng dễ lọt tai. Trâm nó học kinh tế ra nhưng nó biết bán hàng hơn cả tao. Để mai tao kêu nó mua cho mày ổ bánh mì chả, coi mày có bớt cằn nhằn chuyện database migration không.”
Minh dừng đũa, nhìn Khoa.
“Tôi không cằn nhằn. Tôi ghi lỗi.”
“Thì cũng vậy.” Khoa cười hà hà, quay sang Hoàng. “Hoàng, mày thấy sao? Tao tính tháng sau tăng lương cho con bé. Nó làm bán thời gian nhưng ca kíp đàng hoàng, không trốn giờ.”
Hoàng không nhìn Khoa. Anh đang dầm miếng cà pháo vào chén nước mắm ớt.
“Hỏi Phương Anh,” Hoàng nói. “Tiền nằm bên đó.”
Phương Anh ngồi bên phải Hoàng. Cô đang múc canh chua ra từng chén nhỏ, động tác đều, không vội, muỗng canh không chạm vào thành gốm tạo ra tiếng động. Cô đặt chén canh trước mặt Minh, rồi đến Khoa, cuối cùng là Hoàng.
“Trâm có trong bảng đề xuất tăng lương tháng mười rồi,” Phương Anh nói, tay lau ngón trỏ dính chút nước canh vào tờ khăn giấy. “Khoa không cần nhắc. Nhưng tăng bao nhiêu thì phải coi số lượng ticket nó xử lý trong tuần này. Quy trình mới chạy, lỗi người dùng tự gõ sai mật khẩu nhiều hơn lỗi server. Trâm nó gánh hơn nửa.”
“Thấy chưa?” Khoa đắc ý nhìn Minh. “Tiền tươi thóc thật.”
Minh không cãi nữa. Anh gắp một miếng lòng cá bỏ vào miệng, nhai chậm rãi. Không khí giữa hai người họ — và cả năm người — đã khác hẳn cái đêm ba giờ sáng lạnh ngắt hai tuần trước. Không có cái gắt của sự nghi ngờ, cũng không có cái gượng của những người buộc phải ngồi chung bàn. Họ giống một nhóm người đi làm về, đói bụng, thèm một bát cơm nóng và vài câu chuyện vô thưởng vô phạt để xả bớt cái đầu đầy code và số liệu.
Nhịp sống của NỢ SỔ đang tự chạy. Không có Hoàng đứng sau đẩy, nó vẫn chạy.
Hoàng gắp miếng cà pháo bỏ vào chén. Vỏ cà giòn, cắn nghe một tiếng rắc nhỏ.
Anh nhìn Minh. Minh đang lướt điện thoại bằng tay trái, tay phải vẫn cầm đũa. Cứ sau mỗi ba miếng cơm, Minh lại liếc màn hình một lần. Hoàng biết Minh đang kiểm tra log. Thói quen đó Hoàng cũng từng có khi còn một mình ôm server. Bây giờ anh đã buông được nó ra một nửa. Code đã lệch khỏi đầu anh, nhưng hệ thống vẫn sống.
“Minh,” Hoàng gọi.
Minh ngẩng lên. “Hửm?”
“Cái library Typedi hôm qua. Nếu mình muốn inject service vào controller mà không qua container global thì làm sao?”
Minh dừng nhai. Anh nhìn Hoàng, ánh mắt có chút ngạc nhiên của một người thợ lành nghề khi thấy ông chủ hỏi về công cụ.
“Dùng scoped container,” Minh nói, giọng điềm tĩnh hơn. “Mỗi request tạo một instance riêng. Nhưng NỢ SỔ chưa cần tới mức đó. Chừng nào mình làm cái module báo cáo đa chi nhánh cho chuỗi tiệm lớn thì mới cần. Anh đọc docs tới đoạn đó rồi hả?”
“Mới đọc lướt,” Hoàng nói thật. “Thấy cú pháp lạ nên hỏi.”
“Cú pháp của TypeScript nó vậy. Anh viết PHP quen thì nhìn sẽ thấy nó rườm rà, nhưng viết quen tay sẽ thấy nó chặt chẽ hơn nhiều.” Minh gắp thêm miếng cá. “Hôm nào rảnh em chỉ cho vài chỗ refactor bên branch của em. Nhìn sạch hơn code cũ nhiều.”
“Ừ,” Hoàng gật đầu. “Hôm nào rảnh.”
Khoa chen ngang: “Nói chuyện người ta đi hai cha. Cơm nước mà cũng lôi code vô. Phương Anh, đầu tuần sau tao đi Đồng Nai nha.”
“Làm gì?” Phương Anh hỏi.
“Chăm mấy mối cũ bên đó. Có hai tiệm tạp hoá lớn ở Trảng Bom muốn mở thêm tài khoản phụ cho nhân viên kho. Tao đi ký giấy tờ luôn.”
“Đi bằng gì?”
“Xe máy. Đi sớm về tối, không tốn tiền khách sạn đâu.”
“Lấy hóa đơn xăng về,” Phương Anh nói, mắt vẫn nhìn chén cơm. “Không có hóa đơn tôi không duyệt chi.”
“Biết rồi, bà cô.” Khoa tặc lưỡi.
Hoàng nghe họ nói, ngực nhẹ đi một chút. Tiền Series A đã về, văn phòng mới đã thuê, quy trình đã chạy. Mọi thứ đang diễn ra đúng như những gì một founder mơ ước. Không có incident. Không có khủng hoảng. Chỉ có một bữa tối bình thường ở quán cơm niêu bình dân.
Cho đến khi Phương Anh đặt chén canh xuống bàn.
Cô dịch ghế sát lại gần Hoàng thêm một chút. Tiếng chân ghế gỗ miết trên sàn gạch xi măng nghe rít một tiếng dài, nhưng bị tiếng cười hô hố của Khoa bên kia bàn át đi. Khoa đang kể cho Minh nghe vụ chú Thanh bán sắt nhắn tin không dấu chấm.
Phương Anh không nhìn Hoàng. Cô nhìn cái niêu đất rỗng giữa bàn.
“Quy trình mới chạy tốt,” cô nói, giọng rất khẽ, vừa đủ để hai người nghe giữa tiếng ồn của quán.
“Ừ,” Hoàng đáp, tay vẫn cầm đũa gắp rau muống. “Mọi người làm tốt.”
“Deployment hôm qua không có lỗi nào phát sinh trên production. Minh test staging kỹ. Khoa test khách cũng kỹ.”
“Tôi biết.”
“Nhưng đêm incident hai tuần trước thì không.”
Hoàng dừng đũa.
Đầu đũa tre chạm vào đĩa rau muống xào tỏi, giữ nguyên ở đó. Anh không ngẩng lên ngay. Mùi tỏi phi thơm nồng xộc thẳng vào mũi, nhưng trong một khoảnh khắc, Hoàng cảm thấy như mình đang ngửi thấy mùi máy lạnh cũ rè rè ở văn phòng lúc ba giờ sáng.
“Đêm đó anh quyết định rollback trong mười phút,” Phương Anh nói, giọng cô đều, phẳng, không có một gợn cảm xúc nào của sự tra hỏi. “Minh nói nếu anh tin anh ấy, anh ấy sẽ fix được trong hai mươi phút. Sau đó mình kiểm tra lại root cause, đúng là lỗi chỉ nằm ở phần đồng bộ dữ liệu của ba khách hàng đầu tiên. Nếu để Minh fix, hệ thống sẽ chạy tiếp mà không mất dữ liệu của bốn mươi bảy người dùng khác.”
Hoàng rút đũa về, đặt chéo lên miệng chén cơm.
“Lúc đó rủi ro quá lớn,” anh nói, giọng thấp tương đương cô. “Tôi phải chọn phương án an toàn nhất.”
“Đúng. Đó là cách giải thích sau khi mọi chuyện đã xong.” Phương Anh quay sang nhìn anh. Đôi mắt cô trong suốt, phản chiếu ánh đèn neon vàng vọt của quán cơm. “Nhưng lúc anh đưa ra quyết định, anh không có dữ liệu đó. Anh chưa chạy staging test cho phần rewrite. Anh không biết lỗi cụ thể nằm ở đâu. Anh chỉ biết có bốn khách hàng gọi điện báo mất dữ liệu.”
Hoàng im lặng.
“Anh biết nó sẽ xảy ra, đúng không?”
Câu hỏi buông ra nhẹ như một sợi chỉ, nhưng Hoàng cảm thấy như có một bức tường vừa sụp xuống giữa hai người.
Anh nhớ lại đêm đó. Log lỗi hiện màu đỏ. Trâm gọi điện báo chị Bảy tạp hoá nổi giận. Khoa hoảng. Minh đòi fix. Còn anh — anh mở Hệ thống. Hệ thống không cho anh câu trả lời, nhưng trong đầu anh, một ký ức từ năm 2026 hiện lên: những incident migration kiểu này luôn dẫn đến việc hỏng database schema nếu không rollback ngay lập tức. Đó không phải là suy luận của năm 2015. Đó là kinh nghiệm xương máu của mười năm sau, của những hệ thống lớn hơn NỢ SỔ gấp trăm lần mà anh từng chứng kiến.
Nhưng anh không thể giải thích điều đó cho Phương Anh.
Anh không thể nói: Tôi đã thấy những hệ thống lớn hơn vỡ nát vì cố hotfix trên production.
Anh không thể nói: Tôi biết Minh giỏi, nhưng tôi cũng biết lịch sử phát triển phần mềm mười năm tới nói rằng anh ấy sai trong trường hợp này.
“Tao đoán,” Hoàng nói, anh dùng lại đại từ xưng hô cũ để tạo khoảng cách. “Đêm đó tao lo quá nên đoán.”
Phương Anh nhìn anh. Không có một thoáng nghi ngờ nào hiện ra trên mặt cô, chỉ có một sự bình tĩnh đáng sợ của một người đã ngồi xem tất cả các quân bài được lật lên trên bàn.
“Anh đoán đúng nhiều lần quá,” cô nói.
“Đoán thì có lúc đúng lúc sai.”
“Không.” Phương Anh lắc đầu, giọng cô vẫn khẽ nhưng từng chữ rõ ràng như tiếng búa gõ vào đinh. “Một người không đoán đúng liên tục nếu không có lý do. Anh đoán đúng vụ cổ phiếu năm 2014. Anh đoán đúng hướng đi của SaaS cho SME trước khi Sổ Mây ra mắt. Anh đoán đúng vụ bài hát của nhóm Lâm sẽ có người nghe ở Singapore. Và đêm đó, anh quyết định rollback ngay lập tức, chấp nhận mất lòng tin của Minh để giữ cho database không bị hỏng schema — thứ mà ba ngày sau Minh mới phân tích ra là nếu hotfix thì sẽ bị ghi đè dữ liệu.”
Cô dừng lại một nhịp, nhìn vào bàn tay Hoàng đang siết chặt cây đũa tre.
“Anh không đoán, Hoàng. Anh biết.”
Hoàng cảm thấy cổ họng mình khô khốc. Tiếng ồn xung quanh bỗng nhiên lùi xa, chỉ còn tiếng quạt công nghiệp kêu ù ù bên tai.
Anh nhớ đến tờ giấy nháp Phương Anh bỏ quên trên bàn học lớp 10 năm đó. Tờ giấy có vẽ sơ đồ dòng tiền của ba mô hình kinh doanh, và góc dưới ghi dòng chữ bằng bút chì: NỢ SỔ — ai đứng sau cái này?
Anh nhớ đến sân thượng khách sạn Bencoolen lúc sáu giờ sáng ở Singapore. Gió mát, thành phố sáng dần, và cô hỏi: Anh có sợ không còn cái gì dẫn đường anh nữa không?
Phương Anh không phải là Khoa. Khoa nhìn kết quả và tin vào thiên tài của bạn mình. Phương Anh không phải là Minh. Minh nhìn vào kỹ thuật và tin vào logic của codebase. Phương Anh nhìn vào con người Hoàng. Cô nhìn vào khoảng trống giữa những gì anh có thể giải thích và những gì anh thực sự quyết định.
“Tao phân tích nhiều,” Hoàng nói, câu trả lời cũ kỹ mà anh từng dùng với Khoa. “Tao đọc tài liệu nước ngoài nhiều.”
“Tài liệu nước ngoài nào chỉ cho anh biết database migration của NỢ SỔ sẽ hỏng schema vào lúc ba giờ sáng ngày thứ Ba?”
Phương Anh hỏi ngược lại. Câu hỏi không có cạnh sắc, không có sự giận dữ. Nó chỉ là một câu hỏi logic của một người làm tài chính khi thấy một khoản doanh thu không rõ nguồn gốc trong sổ sách.
Hoàng im lặng.
Lần này, anh không cãi. Anh biết nếu mình càng cố vẽ ra một lời giải thích hợp lý, anh sẽ càng lộ ra nhiều kẽ hở trước mắt cô. Với Phương Anh, im lặng đôi khi lại là cách tự vệ duy nhất.
Khoa bên kia bàn bỗng đập tay xuống bàn cái rầm.
“Đậu hũ chiên sả ớt ngon quá tụi bây! Ăn lẹ đi chứ nguội hết.”
Minh gắp miếng đậu hũ cuối cùng bỏ vào chén của mình.
“Anh Khoa ăn ba miếng rồi. Em ăn một miếng thôi.”
“Thì mày chậm chân chịu thiệt.” Khoa cười lớn, rồi nhìn sang Hoàng và Phương Anh. “Hai đứa bay nói chuyện gì mà thì thầm như bàn mưu tính kế vậy? Lại tính cắt ngân sách xăng của tao hả?”
“Không,” Phương Anh quay lại, mặt cô đổi tone ngay lập tức, tự nhiên đến mức Hoàng phải giật mình. “Tôi đang nói Hoàng duyệt chi tiền mua bánh mì cho Trâm. Khoa lo ăn đi.”
“À, cái đó duyệt gấp nha Hoàng!” Khoa nháy mắt.
Hoàng gật đầu gượng gạo. Anh cầm đũa lên, gắp một miếng rau muống bỏ vào chén cơm đã nguội lạnh. Vị tỏi phi lúc nãy thơm phức giờ ăn vào miệng chỉ thấy đắng và dai.
Bữa ăn tiếp tục thêm mười lăm phút. Khoa vẫn là người nói nhiều nhất, kể về những chủ tiệm ở Bình Thạnh nay đã biết dùng app để đối chiếu công nợ cuối tháng thế nào. Minh thỉnh thoảng thêm vào một vài câu về việc tối ưu hóa giao diện cho người lớn tuổi. Phương Anh thỉnh thoảng phụ họa, thỉnh thoảng nhắc Khoa chuyện hóa đơn.
Tất cả đều bình thường.
Tất cả đều giống một startup đang lớn lên mỗi ngày bằng sức lao động của những con người bằng xương bằng thịt.
Nhưng Hoàng biết, cái bình thường đó từ nay đã có một vết nứt.
Chín giờ tối, họ đứng dậy thanh toán.
Khoa và Minh đi trước ra lấy xe. Khoa còn cố tình nẹt pô chiếc Wave cũ để chọc Minh. Minh đeo balo đi bộ ngược hướng để bắt xe buýt về quận 5. Trâm đã về từ trước.
Hoàng dắt chiếc xe máy cũ của mình ra khỏi bãi xe quán. Phương Anh đứng bên cạnh, đợi taxi. Đường Thành Thái lúc này đã lên đèn, dòng xe cộ trôi đi dưới ánh đèn đường vàng nhạt, khói xe bay lảng bảng trong không khí ẩm ướt.
Chiếc taxi của Phương Anh trờ tới. Cô không mở cửa ngay.
Cô đứng quay lưng lại với ánh đèn xe, nhìn Hoàng. Bóng cô trải dài trên mặt đường nhựa còn ướt nước mưa.
“Hoàng,” cô gọi.
“Hửm?” Hoàng tay vẫn giữ ghi-đông xe.
“Tôi không cần anh nói hôm nay,” Phương Anh nói, giọng cô nhỏ nhưng rõ hơn tiếng còi xe ngoài đường. “Nhưng một ngày anh sẽ phải chọn: tin tôi đủ để nói, hay giữ nó cho đến khi nó phá nát tất cả.”
Hoàng nhìn cô.
Dưới ánh đèn đường, khuôn mặt cô nửa sáng nửa tối. Không có sự đe dọa trong mắt cô. Chỉ có một sự cảnh báo lạnh lùng của một người đã phân tích đủ để biết có thứ gì đó không khớp trong cái công thức mang tên Nguyễn Minh Hoàng.
“Tôi đi đây,” cô nói, rồi mở cửa xe bước vào.
Chiếc taxi lăn bánh, hòa vào dòng xe cộ đông đúc hướng về phía quận 10.
Hoàng đứng lại một mình bên lề đường.
Anh nhìn theo đuôi xe taxi cho đến khi hai cái đèn đỏ phía sau biến mất sau ngã tư. Anh cúi xuống nhìn bàn tay mình. Bàn tay của một cậu thanh niên mười tám tuổi, da ngăm, đầy vết chai vì gõ phím và dắt xe.
Anh có tất cả.
Tiền Series A. Văn phòng mới. Một team đang tự chạy.
Nhưng anh cũng đang giữ một quả bom hẹn giờ trong đầu, và dây ngòi nổ đầu tiên vừa được Phương Anh chạm vào.
Hoàng nổ máy xe. Tiếng pô xe vang lên giòn giã trong đêm Sài Gòn ồn ã. Anh chạy xe về hướng Bình Thạnh, gió đêm phả vào mặt lạnh ngắt, nhưng trong đầu anh, câu hỏi của Phương Anh vẫn chạy đều như một vòng lặp không có điều kiện dừng.
“Anh biết nó sẽ xảy ra, đúng không?”
“Anh không đoán, Hoàng. Anh biết.”
Anh chạy qua cây cầu sắt cũ. Dưới sông, nước đen ngòm trôi đi lững lờ, phản chiếu những ánh đèn xanh đỏ của thành phố đang lớn lên mỗi ngày. Một thành phố đang đi vào tương lai của nó, còn anh thì đang đi ngược lại.
Và lần đầu tiên, anh nhận ra con đường đi ngược này cô đơn hơn anh tưởng. Pitches, code, term sheets — tất cả đều có thể chia sẻ.
Chỉ có tương lai là anh phải ôm một mình. Cho đến khi nó vỡ ra.