Dashboard Lúc 2 Giờ Sáng
Dòng lỗi thứ 47 trong ngày.
TypeError: Cannot read properties of undefined (reading 'embeddings')
Tôi nhìn dòng code, nhìn đồng hồ góc màn hình: 1:48 AM. Nhìn lại dòng code. Lỗi nằm ở lớp xử lý ngôn ngữ tự nhiên thứ 3, nơi mô hình AI Copilot chuyển câu hỏi tiếng Việt thành vector. Vấn đề: tiếng Việt có thanh điệu, và mô hình đang đối xử với "bán" và "bàn" như cùng một từ.
Hai tuần debug. Vẫn chưa xong. Nếu đây là con người, tôi sẽ nói: "Bạn cần nghỉ ngơi." Nhưng đây là mã nguồn. Mã nguồn không mệt. Tôi thì có.
Văn phòng tầng 20 lúc 2 giờ sáng trông khác hẳn ban ngày. Đèn chính đã tắt, chỉ còn đèn bàn tôi và ánh sáng xanh từ hai màn hình. Máy lạnh tự tắt từ 10 giờ tối, không khí hơi oi. Ngoài cửa kính, Sài Gòn vẫn thở – đèn Bitexco đã tắt, nhưng hàng ngàn ô cửa nhỏ vẫn sáng, những người khác cũng chưa ngủ.
Tôi uống hết ngụm cà phê lạnh cuối cùng trong ly. Ly thứ 3. Hoặc thứ 4. Tôi đã ngừng đếm từ 11 giờ tối.
Bình thường tôi thích giờ này. Không Slack, không meeting, không ai gõ cửa. Chỉ có tôi và code. Đơn giản. Có lỗi thì sửa. Sửa xong thì chạy. Chạy được thì triển khai. Không có biến số cảm xúc.
Gần đây "không có biến số cảm xúc" bắt đầu trở thành câu tôi tự nhắc mình thay vì sự thật.
Tôi đẩy ghế ra, đứng lên, cầm ly đi xuống pantry tầng 19 lấy nước. Thang máy không chạy giờ này nên phải đi cầu thang. Bước chân vang trên bậc bê tông, tiếng duy nhất trong toàn bộ tòa nhà.
Xuống đến tầng 19, mở cửa.
Đèn pantry sáng.
Tôi dừng lại.
Đèn pantry không bao giờ sáng lúc 2 giờ sáng. Tôi biết vì tôi ở lại khuya ít nhất 3 lần mỗi tuần, và pantry luôn tối.
Tiếng máy pha cà phê kêu. Tiếng nước chảy. Tiếng ai đó hít sâu rồi thở ra, kiểu người vừa làm việc liên tục 5 tiếng không nghỉ.
Tôi bước vào pantry.
Lâm An Hạ đứng trước máy pha cà phê, tóc buộc đuôi ngựa xộc xệch, áo sơ mi nhàu, chân đi dép lê – không phải giày búp bê ban ngày. Trước mặt cô, laptop mở trên quầy, Google Sheets bảng tính dày đặc con số, và 3 ly giấy đã uống xong xếp hàng bên cạnh.
3 ly. Cô cũng uống 3 ly.
An Hạ quay lại. Mắt cô hơi sưng, kiểu mắt nhìn màn hình quá lâu. Cô nhìn tôi. Tôi nhìn cô. 2 giây.
– Anh cũng chưa về à?
Giọng cô khác. Không sắc. Không phòng thủ. Hơi khàn, mệt, giống giọng người nói chuyện với chính mình hơn là nói với đối thủ.
– Chưa. Debug AI Copilot. – Tôi giơ ly rỗng. – Lấy nước.
– Máy pha cà phê vẫn chạy. – Cô nghiêng đầu về phía máy. – Ly thứ 4 của tôi.
– Ly thứ 4 lúc 2 giờ sáng thì gọi là nghiện, không phải năng suất.
– Anh uống mấy ly?
– Ba. Hoặc bốn.
– Vậy chúng ta đều nghiện.
Cô dùng "chúng ta". Không phải "cô và tôi". Không phải "hai bên". "Chúng ta." Tôi biết đó chỉ là cách nói. Nhưng lúc 2 giờ sáng, não tôi xử lý ngôn ngữ kém hơn bình thường.
Tôi bước đến bồn rửa, rửa ly, rót nước lọc. An Hạ vẫn đứng đó, đợi cà phê chảy, hai tay ôm khuỷu tay. Ánh đèn pantry trắng, không tình cảm, kiểu đèn được thiết kế để không ai muốn ở lại lâu. Nhưng chúng tôi đang ở lại.
– Cô chạy campaign gì mà khuya vậy?
– Chiến lược thay thế nhà cung cấp. Cái mà anh phát hiện ra tuần trước. – Cô nhìn tôi, không né. – Tôi phải xây lại toàn bộ kênh tiếp thị qua người ảnh hưởng từ đầu. Nhà cung cấp mới, quy trình kiểm tra mới, KPI mới. Xóa sạch rồi làm lại.
– Có cần tôi chạy HyperScan kiểm tra nhà cung cấp mới không?
Câu đó ra khỏi miệng trước khi tôi kịp nghĩ.
Tại sao tôi đề nghị giúp đối thủ? Đây là cuộc chiến KPI. Cô mạnh hơn thì tôi khó thắng hơn.
An Hạ nhìn tôi. Hơi ngạc nhiên. Rồi góc miệng cô nhếch lên, nửa cười nửa không.
– Cảm ơn. Nhưng tôi tự kiểm tra được. – Ngừng. – Mà nếu tôi cần, tôi sẽ hỏi.
"Tôi sẽ hỏi." Không phải "tôi không cần." Cô để cánh cửa hé.
Cà phê xong. An Hạ rót vào ly giấy, thêm đá từ ngăn đá nhỏ. Ly thứ 4, đá, lúc 2 giờ sáng. Tôi rót nước lọc. Cả hai đứng trong pantry, dựa quầy, im lặng.
Lần đầu tiên chúng tôi ở trong cùng một phòng mà không có khán giả. Không có CEO ngồi đầu bàn, không có Vy Vy ghi chép, không có Kiến Phong nhìn sang. Chỉ có hai người, hai ly, và tiếng máy lạnh không chạy.
– Tôi hỏi thật nha. – An Hạ nói, nhìn ly cà phê thay vì nhìn tôi. – Tại sao anh làm AI?
– Vì tôi giỏi.
– Ai cũng nói vậy. Tôi hỏi thật mà.
Cô hỏi thật. Lúc 2 giờ sáng, không ai đủ sức giả vờ.
Tôi im. 5 giây. Uống một ngụm nước.
– Năm 2017. Tôi đang ở Singapore, năm hai đại học. Đọc một bài nghiên cứu tên "Attention Is All You Need". Của nhóm Google Brain.
– Tôi biết bài đó. Transformer.
Cô biết. Tất nhiên cô biết. Cô đọc paper nghiên cứu của tôi, cô sẽ đọc paper gốc.
– Đọc xong, tôi ngồi trong thư viện NUS đến 3 giờ sáng. Không phải vì khó hiểu. Mà vì lần đầu tiên tôi thấy tương lai rõ ràng đến mức có thể chạm được. Cơ chế attention giải quyết vấn đề mà cả ngành nghiên cứu mấy chục năm không xong. Và tôi nghĩ: nếu AI làm được điều này, thì 10 năm nữa, thế giới sẽ khác hoàn toàn. Và tôi muốn là người xây thế giới đó.
Im lặng.
An Hạ nhìn tôi. Ánh mắt cô khác hẳn. Không phải ánh mắt đối thủ, không phải ánh mắt đồng nghiệp. Ánh mắt của người vừa thấy thứ gì đó bất ngờ.
– Mắt anh vừa sáng lên.
– Gì?
– Lúc anh nói về bài nghiên cứu đó. Mắt anh sáng lên. – Cô uống một ngụm cà phê. – Ban ngày anh không bao giờ như vậy.
Cô nhận ra. Không ai nhận ra. Gia Hân từng nói: "Anh nói về AI nhiều hơn nói về em." Nhưng cô ấy không bao giờ nói "mắt anh sáng lên" – cô ấy nói "anh bị ám ảnh."
Khác nhau. Hoàn toàn khác nhau.
Tôi không biết nói gì. Lần đầu tiên trong rất lâu.
– Còn cô? – Tôi hỏi ngược. – Tại sao làm growth?
An Hạ cười. Không phải cười sắc sảo như trong phòng họp. Cười mệt, thật, kiểu cười lúc 2 giờ sáng.
– Vì tôi thích biến thứ không ai biết thành thứ ai cũng biết.
– Nghe giống marketing.
– Marketing là nói cho người ta biết sản phẩm tồn tại. Growth là làm cho sản phẩm không thể không tồn tại trong đời họ. Khác nhau.
Cô nói câu đó bằng giọng bình tĩnh, nhưng mắt cô sáng. Giống tôi lúc nãy.
– NexaVN. – Tôi nói. Nhẹ. Không phải hỏi, mà là nói ra để cô biết tôi biết.
An Hạ im. Tay cô siết ly cà phê chặt hơn.
– Anh biết chuyện đó.
– Tôi tìm hiểu. Sau meeting OKR tuần đầu.
– Và anh nghĩ gì?
Cô hỏi thẳng. Không vòng vo. Lúc 2 giờ sáng, An Hạ không có lớp giáp nào.
– Tôi nghĩ cô xây NexaVN từ 0 lên 2 triệu người dùng trong 8 tháng. Và người ta lấy đi thành quả đó. – Tôi nhìn cô. – Và tôi nghĩ cô ở đây vì cô muốn chứng minh lần đó không phải lỗi của cô.
Im lặng. Dài. Tiếng đồng hồ pantry kêu tích tắc. Tiếng xe máy xa xa ngoài đường.
– Tôi không muốn nói về NexaVN. – An Hạ nói, giọng nhẹ nhưng rõ. Ranh giới.
– Được.
Không hỏi thêm. Tôi biết ranh giới. Tôi cũng có ranh giới.
2 giờ 20.
Chúng tôi rời pantry, cầm ly, đi ra khu vực làm việc tầng 19. An Hạ ngồi xuống bàn mình, bật laptop. Tôi đứng giữa lối đi, nên đi lên tầng 20, nhưng chân không bước.
– Cô có muốn xem thứ gì đó không?
An Hạ ngẩng lên.
Tôi không biết tại sao tôi nói câu đó. Nhưng đã nói rồi.
– Xem gì?
– Sài Gòn từ tầng 20. Lúc 2 giờ sáng.
Trần Kha Minh. Mày vừa rủ đối thủ lên phòng mày lúc 2 giờ sáng. Đây là ý tưởng tệ nhất kể từ khi mày từ chối Google DeepMind.
An Hạ nhìn tôi. 3 giây. Rồi đóng laptop.
– Được.
Tầng 20. Phòng làm việc của tôi. Cửa kính từ sàn đến trần, nhìn ra toàn bộ quận 1. Lúc ban ngày, view này bị che bởi ánh nắng và tiếng ồn. Lúc 2 giờ sáng, nó hiện ra hoàn toàn.
Sài Gòn nằm dưới chân. Không phải Sài Gòn ban ngày – ồn ào, kẹt xe, mồ hôi. Sài Gòn lúc này yên tĩnh, phát sáng, những con đường như mạch máu chạy qua cơ thể thành phố. Bitexco tối, nhưng dải đèn đường Hàm Nghi vẫn kéo dài đến chân trời. Vài chiếc xe máy chạy lẻ loi.
An Hạ đứng cạnh tôi, trước cửa kính. Im lặng.
Không phải im lặng khó chịu. Không phải im lặng tính toán. Im lặng của hai người cùng nhìn một thứ đẹp mà không cần bình luận.
Tôi đứng ở đây mỗi đêm. Nhưng hôm nay khác. Hôm nay có ai đó đứng cạnh.
– Đẹp. – An Hạ nói, giọng nhẹ. Nhìn ra ngoài, không nhìn tôi.
– Ừ.
– Anh nhìn cái này mỗi tối?
– Mỗi tối tôi ở lại khuya.
– Tức là mỗi tối.
Cô đúng.
– Sài Gòn lúc 2 giờ sáng trông giống dashboard. – An Hạ nói, hơi cười. – Mỗi cái đèn là một data point. Mỗi con đường là một user flow. Cái thành phố này chạy 24/7, không bao giờ tắt.
Cô nhìn thành phố bằng con mắt growth strategist. Tôi nhìn nó bằng con mắt kỹ sư. Khác góc. Nhưng cùng nhìn.
– Cô Lâm.
– Gì?
– Tôi nghĩ debate hôm trước, cô đúng 60%.
An Hạ quay sang, nhướn mày.
– 60%?
– Growth quan trọng. Nhưng product-led growth chỉ hoạt động khi sản phẩm đủ tốt. Cô đúng về hướng, tôi đúng về thứ tự.
– Vậy anh thừa nhận tôi đúng 60%.
– Tôi thừa nhận dữ liệu cho thấy cô đúng 60%.
An Hạ cười. Thật. Tiếng cười nhỏ, mệt, nhưng thật.
– Anh biết không, anh là người đầu tiên thừa nhận tôi đúng mà vẫn giữ được mặt lạnh.
– Tôi không giữ mặt lạnh. Đây là mặt bình thường của tôi.
– Đó chính là vấn đề.
Cô đang trêu tôi. Lâm An Hạ, 2 giờ sáng, mệt, tóc xộc xệch, đang trêu tôi. Và tôi không ghét điều đó.
Tôi không ghét điều đó.
Im lặng. Cả hai nhìn ra Sài Gòn. Gió nhẹ từ hệ thống thông gió rì rào.
Rồi An Hạ đứng thẳng, đặt ly xuống bàn tôi.
– Tôi về. Sáng mai còn họp 8 giờ.
– Grab lúc này chắc phải đợi lâu.
– Tôi đặt rồi. 7 phút nữa.
Cô đặt Grab trước khi nói về. Nghĩa là cô đã quyết định về từ trước. Nghĩa là cô kiểm soát thời gian ở đây. Cô ở lại vừa đủ lâu.
An Hạ cầm laptop, khoác túi. Đi đến cửa. Dừng lại.
– Chúc ngủ ngon, đối thủ.
Rồi cô đi.
Tiếng dép lê trên sàn gạch, tiếng cửa cầu thang khép lại. Im lặng.
Tôi đứng trước cửa kính, nhìn xuống. 5 phút sau, một chiếc xe trắng dừng trước tòa nhà. An Hạ bước ra, tóc bay nhẹ, lên xe. Xe chạy, rẽ phải vào đường Hàm Nghi, biến mất sau khúc cua.
Hương chanh và cỏ vetiver.
Từ lúc nào tôi biết mùi nước hoa của cô?
Tôi quay lại bàn. Ngồi xuống. Mở laptop. Dòng lỗi vẫn nằm đó: TypeError: Cannot read properties of undefined.
Nhưng đầu tôi không ở dòng lỗi. Đầu tôi ở chỗ khác.
"Mắt anh vừa sáng lên."
Không ai nói câu đó với tôi. Bao giờ. Ba tôi nói: "Lần sau phải hơn nữa." Gia Hân nói: "Anh bị ám ảnh." Đồng nghiệp nói: "The Machine." Thành Dương nói: "Tốt lắm, tiếp đi."
Không ai nói: "Mắt anh sáng lên."
Như thể điều đó là tốt. Như thể bị ám ảnh bởi thứ mình yêu là đẹp chứ không phải lỗi.
Tôi mở nhật ký kỹ thuật. Gõ:
Bài học: tiếng Việt cần tokenizer riêng cho thanh điệu. Mô hình hiện tại xử lý sai. Cần rebuild lớp 3.
Sai lầm: ở lại quá khuya, năng suất giảm sau 1 giờ sáng.
Biến số mới:
Tôi nhìn dòng thứ ba. Lần trước tôi viết "Lâm An Hạ". Xóa rồi viết lại. Xóa rồi viết lại.
Lần này tôi gõ: "Hương chanh và cỏ vetiver."
Xóa.
Gõ lại: "2 giờ sáng."
Xóa.
Gõ: "Lâm An Hạ, mắt sáng lên khi nói về growth."
Để nguyên.
Biến số mới. Lần này, tôi không muốn tìm mô hình dự đoán. Tôi chỉ muốn thêm dữ liệu.
Tôi đóng laptop. Đứng lên. Lần đầu tiên trong 2 tuần, rời văn phòng lúc 2 giờ rưỡi sáng – sớm hơn bình thường.
Bước ra ngoài, Sài Gòn im. Hẻm nhỏ cạnh tòa nhà, mấy con mèo hoang đuổi nhau. Xe máy thưa thớt. Tôi đi bộ về The Marq, 10 phút, gió đêm thổi qua.
Hôm nay tôi không sửa được lỗi. Nhưng tôi tìm được thứ khác.
Vấn đề là: tôi không biết đó là bug hay feature.