Chương 2: Thứ Sáu
Sáng thứ Sáu, Duật tới công ty lúc tám giờ kém mười, tầng sáu một tòa nhà văn phòng trên đường Bạch Đằng, nhìn ra sông Hàn. Thẻ ra vào của anh vẫn quẹt được. Tài khoản máy tính thì không. Màn hình báo: tài khoản đã bị tạm khóa, liên hệ quản trị hệ thống.
Phòng họp nhỏ đã có ba người. Anh Quyết. Chị trưởng phòng nhân sự. Và giám đốc điều hành, ông Trần Viết Ân, người Duật chỉ gặp mỗi năm một lần ở tiệc tất niên.
Trên màn hình chiếu là trang lịch sử mã nguồn. Commit gộp của bản 3.8.1. Tác giả: Lâm Duật. Trong đó, đoạn mã kiểm tra khóa chống trùng bị gạch đỏ, xóa.
– Em giải thích đi. – Ông Ân nói. Giọng ông không gắt. Giọng của một người đã quyết định xong.
Duật nhìn màn hình. Anh hiểu ngay chuyện gì xảy ra, và hiểu luôn vì sao trên màn hình lại có tên anh. Công ty dùng kiểu gộp toàn bộ một yêu cầu hợp nhất thành một commit duy nhất trước khi đưa vào nhánh chính. Commit gộp lấy tên người mở yêu cầu làm tác giả. Ba tuần trước, Duật mở yêu cầu hợp nhất cho tính năng mã giảm giá. Sau đó, có người khác đẩy thêm vào nhánh đó một thay đổi nhỏ, gỡ bỏ đoạn kiểm tra trùng. Khi gộp lại thành một, mọi thứ mang tên anh.
– Dạ. Em không gỡ đoạn đó. – Anh nói. – Đoạn đó em viết. Ba tuần trước, trong buổi họp chuẩn bị bản 3.8.1, anh Quyết yêu cầu gỡ vì gọi thêm một lần kiểm tra làm mỗi đơn chậm khoảng ba trăm mili giây, khách hàng muốn demo màn hình thanh toán thật nhanh. Em không đồng ý. Em có ghi lý do vào phần bình luận của yêu cầu hợp nhất.
– Bình luận nào? – Anh Quyết hỏi.
Duật nhìn anh. Anh Quyết ba mươi tám tuổi, người đã kèm Duật từ hồi anh mới ra trường, người từng chở anh đi ăn mì Quảng ếch lúc hai giờ sáng sau một đêm sửa lỗi. Anh Quyết không nhìn lại.
– Em không vào được hệ thống, – Duật nói, – nhưng anh mở yêu cầu hợp nhất số bốn trăm mười hai giúp em.
Chị nhân sự bấm. Trang mở ra. Phần bình luận có mười một dòng, toàn chuyện đặt tên biến, chuyện sửa lỗi chính tả. Không có dòng nào về khóa chống trùng.
Duật nhớ rõ mình đã viết, bằng tiếng Việt, gần như nguyên văn: không được gỡ kiểm tra khóa chống trùng, khi mạng chậm khách sẽ bấm lại và bị trừ tiền hai lần. Và nhớ rõ câu trả lời bên dưới: cứ gỡ cho kịp demo, có gì anh chịu.
Người có quyền quản trị dự án thì xóa được bình luận. Anh Quyết có quyền đó.
Ba tuần trước, buổi họp chuẩn bị bản 3.8.1 diễn ra lúc chín giờ tối trong phòng họp này, hộp cơm gà xối mỡ nguội trên bàn. Phía khách hàng muốn màn hình thanh toán phải bấm là xong ngay trong buổi trình diễn với ban giám đốc của họ. Anh Quyết mở biểu đồ thời gian phản hồi, khoanh tròn đúng ba trăm mili giây của bước kiểm tra trùng.
– Cái này bỏ được không? – Anh hỏi.
– Bỏ được. – Duật nói. – Nhưng bỏ thì đêm nào mạng chậm, khách bấm hai lần là bị trừ hai lần. Mình nhanh hơn ba trăm mili giây, khách mất tiền thật.
– Đêm nào mà mạng chậm? Mình có bộ cân bằng tải rồi.
– Đêm khuyến mãi, anh.
Anh Quyết cười, vỗ vai anh, nói thằng này lo xa. Cuộc họp kết thúc ở đó. Không ai ghi biên bản. Duật về nhà, mở yêu cầu hợp nhất, viết bình luận. Anh viết vì anh biết, trong nghề này, cái gì không viết ra thì coi như chưa từng nói.
Giờ thì cái anh viết ra cũng biến mất.
Chị nhân sự đẩy về phía Duật một tờ giấy in sẵn. Bản tự kiểm điểm. Nội dung: do sơ suất cá nhân, tôi đã gỡ bỏ cơ chế kiểm tra trùng lặp, gây thiệt hại cho khách hàng. Tôi tự nguyện chấm dứt hợp đồng lao động, đồng ý bồi thường theo quy định của công ty.
– Chiều thứ Hai, phía chuỗi nhà thuốc sang họp. – Ông Ân nói. – Họ yêu cầu người chịu trách nhiệm kỹ thuật có mặt. Em ký tờ này, rồi em dự họp, em xin lỗi họ. Công ty sẽ lo phần còn lại, không làm khó em chuyện bồi thường. Em còn trẻ, nghề này rộng.
Duật cầm tờ giấy. Ngoài cửa kính, một chiếc tàu du lịch đang chạy chậm trên sông Hàn, khách đứng chụp ảnh cầu Rồng.
– Em không ký. – Anh nói, đặt tờ giấy xuống. – Em không gỡ đoạn mã đó, nên em không viết là em gỡ. Người lao động có quyền không ký đơn xin nghỉ việc. Nếu công ty muốn kỷ luật em thì làm theo đúng thủ tục, có biên bản, em được trình bày. Còn buổi họp chiều thứ Hai, em xin dự. Không phải để xin lỗi. Để giải thích cho họ chuyện gì đã xảy ra với ba nghìn bốn trăm mười hai giao dịch, và hoàn tiền thế nào cho đúng. Cái đó em làm được, công ty cần em làm.
Ông Ân nhìn anh khá lâu.
– Em dự. – Ông nói. – Nhưng em nói gì trong đó là em chịu.
Chiều thứ Sáu, Duật ngồi ở quán cà phê muối gần nhà trọ, không có máy tính công ty, không có tài khoản. Anh có một cuốn sổ và một cây bút. Anh ngồi viết lại toàn bộ cách đối soát giao dịch trùng, chỉ bằng trí nhớ về cấu trúc dữ liệu: ghép theo số đơn, theo thời điểm, theo mã giao dịch phía ngân hàng trả về, tách ra những cặp có cùng đơn hàng, cùng số tiền, cách nhau dưới sáu mươi giây. Hoàn lại giao dịch sau, giữ giao dịch trước. Cẩn thận với những khách thật sự đặt hai đơn giống nhau. Cẩn thận với những giao dịch mà ngân hàng đã tự đảo.
Bảy giờ tối, có người nhắn tin. Ngô Ny, cô lập trình viên mới vào làm được tám tháng, ngồi bàn cạnh anh.
"Anh Duật. Em xin lỗi. Hôm đó anh Quyết bảo em đẩy thay đổi đó vào nhánh của anh, nói là anh đồng ý rồi, chỉ đang bận. Em không đọc bình luận. Em sợ lắm."
Duật đọc tin nhắn hai lần. Rồi anh trả lời:
"Không phải lỗi em. Em đừng nói gì với ai cả. Thứ Hai em cứ đi làm bình thường."
Anh không chụp màn hình tin nhắn đó.
Thứ Bảy, anh về quê ở Điện Bàn, phụ ba tưới mấy luống rau muống sau nhà. Ba anh làm thợ hồ cả đời, không biết lập trình là gì, chỉ hỏi một câu khi thấy anh ngồi im ở bậc thềm:
– Mày làm sai hay người ta làm sai?
– Người ta, ba.
– Vậy thì mày đi họp. – Ông nói, rồi đưa anh cái thau. – Mà đi họp thì nói cái việc, đừng nói cái người.
Tối Chủ nhật, Duật ngồi trên bờ kè biển Mỹ Khê tới mười một giờ, đọc lại từng trang trong cuốn sổ. Anh nghĩ tới chuyện nhắn Ny, xin cô đứng ra làm chứng. Có cô, mọi chuyện sẽ nhanh hơn. Nhưng cô mới vào nghề tám tháng, còn hai năm hợp đồng, và người cô phải tố là trưởng nhóm của chính cô. Anh gấp sổ lại.
— Hết chương 2 —

🏙️ Đô thị & làm giàu
🏙️ Đô thị & làm giàu
🏙️ Đô thị & làm giàu
🏙️ Đô thị & làm giàu🎧 Nghe
🏙️ Đô thị & làm giàu
🏙️ Đô thị & làm giàu