Mã Nguồn Ngược Dòng Chương 44 / 209

Chương 44 — Cái giá của tiếng vang

Tin nhắn của Khoa đến lúc Hoàng đang chép lại sơ đồ team sáu tháng tới trên mặt sau một tờ giấy nháp.

Điện thoại rung hai lần trên bàn học.

Khoa: mày thấy cái này chưa

Dưới tin nhắn là một đường link Facebook, tiêu đề preview hiện đủ một dòng:

NỢ SỔ — app quản lý tiệm nhỏ đang âm thầm mọc lên khắp Sài Gòn. Ai đứng sau nó?

Hoàng đặt bút xuống.

Phòng anh lúc đó có tiếng quạt bàn quay lạch cạch, tiếng xe máy chạy qua hẻm và tiếng mẹ rửa chén dưới bếp. Trên màn hình laptop, trang spreadsheet còn mở cột “support”, “hạ tầng”, “vận hành”. Ở mép giấy, anh vừa viết xong một dòng: không thể để mọi quyết định kỹ thuật nằm ở mình quá lâu.

Một phút sau, dòng đó trở nên cũ.

Anh bấm vào link.

Bài viết nằm trên một blog công nghệ cá nhân, avatar là hình một chiếc bàn làm việc có laptop và ly cà phê. Người viết có hơn tám ngàn follower. Không phải báo lớn. Không phải cộng đồng developer khép kín. Nhưng ở năm 2014, một bài viết kiểu này đủ để chạy qua cả Facebook của giới startup Sài Gòn trong buổi chiều.

Hoàng đọc tiêu đề lần nữa.

Ai đứng sau nó?

Anh kéo xuống.

Bài viết mở đầu bằng câu chuyện một tiệm tạp hóa ở Bình Thạnh dùng NỢ SỔ để thay quyển vở ghi nợ cũ. Sau đó là một quán cơm ở Gò Vấp, một cửa hàng vải ở Phú Nhuận, rồi nhắc tới vài chủ tiệm nói “đỡ mất công cộng sổ buổi tối”. Người viết không hề phỏng vấn nhóm phát triển. Không có tên Hoàng. Không có tên Khoa. Không có anh Tuấn. VietPath chỉ xuất hiện ở một dòng nhỏ: “thanh toán qua một đơn vị công nghệ tên VietPath”.

Ảnh minh họa là màn hình NỢ SỔ chụp từ điện thoại ai đó. Góc ảnh hơi lệch, ánh đèn huỳnh quang phản lên kính. Danh sách khách nợ đã được làm mờ cẩu thả bằng một lớp bút đỏ trong app chỉnh ảnh.

Hoàng đọc đến đoạn:

Điều thú vị là app này không cố làm phần mềm quản lý doanh nghiệp như các sản phẩm ngoại. Nó bắt đầu từ một việc rất Việt Nam: ghi nợ người quen. Người bán tạp hóa không cần CRM. Họ cần biết cô Sáu còn thiếu bao nhiêu tiền nước ngọt và chú Ba đã trả tiền gạo chưa.

Lần đọc đầu, khóe miệng anh nhích lên.

Người viết hiểu đúng.

Không phải hiểu hết, nhưng hiểu đủ lõi: NỢ SỔ không bán công nghệ, nó bán việc bớt cãi nhau với khách quen vào cuối tháng.

Anh kéo tiếp.

Đoạn giữa bài phân tích vì sao những sản phẩm kiểu này có thể mọc lên từ các hẻm nhỏ trước khi giới startup để ý. Giọng viết hơi phấn khích, có vài chỗ đoán quá tay, nhưng không ác ý. Người viết còn trích lời một chủ quán ăn: “Có đứa nhỏ tới chỉ, xài được nên xài. Không biết công ty nào, miễn đừng mất dữ liệu là được.”

Đứa nhỏ.

Hoàng biết đó là Khoa.

Anh đọc lần hai, chậm hơn.

Niềm vui mỏng dần khi anh thấy cấu trúc bài viết: tất cả đều dẫn về câu hỏi cuối.

Hiện chưa rõ đội ngũ nào đứng sau NỢ SỔ. Nếu đây là dự án thử nghiệm của VietPath, nó cho thấy một hướng đi khá khôn: thay vì nhảy vào fintech lớn, bắt đầu từ dòng tiền rất nhỏ của tiểu thương. Nếu là một nhóm độc lập, câu hỏi càng thú vị hơn: ai đang âm thầm đi trước một ngách mà nhiều người bỏ qua?

Bên dưới, comment bắt đầu chạy.

Nguyễn T.: app này nhìn quen quen, hình như thấy chị bán tạp hóa gần nhà xài.

Duy dev: VietPath pivot hả ta?

Mai Anh: ai làm UX vậy, hơi xấu nhưng dễ hiểu.

Tùng: Có link đăng ký không?

Hoàng chuyển sang dashboard.

Số đăng ký dùng thử hôm nay: 27.

Anh nhớ buổi sáng mới là 9.

Điện thoại rung tiếp.

Khoa: đọc chưa?

Hoàng: rồi

Khoa: bài này ở đâu ra vậy? tao không nói chuyện với ai hết nha

Hoàng: họ phỏng vấn chủ tiệm

Khoa: giờ sao

Hoàng nhìn lại tiêu đề bài viết. Câu hỏi kia nằm ngay phía trên ảnh chụp màn hình.

Hoàng: theo dõi trước. đừng trả lời public

Khoa: tao có nên nhắn mấy khách cũ nói đừng comment lung tung không

Hoàng gõ “có”, rồi xóa.

Nếu bảo khách im, chuyện nhỏ thành chuyện lớn. Nếu không nói gì, bài viết tự chạy theo hướng của nó.

Hoàng: không. ai hỏi thì nói đang dùng tốt hay chưa tốt thật như bình thường. đừng nói ai đứng sau

Khoa trả lời bằng một sticker mặt méo, rồi thêm:

Khoa: mày coi số đăng ký đi

Hoàng nhìn dashboard.

29.

Khi anh chuyển tab, số nhảy lên 30.

Trong ngực anh có một nhịp đập mạnh. Không phải sợ. Chưa phải. Đó là phản ứng cơ thể khi một con số vượt khỏi đường dự phóng anh vẽ bằng tay đêm qua.

Anh mở Google Analytics, rồi mở log ứng dụng. Lượng truy cập tăng rõ từ link Facebook. Nhiều người vào trang chủ, bấm đăng ký dùng thử, bỏ dở ở bước tạo tiệm, rồi quay lại. Server vẫn ổn. CPU hơi cao nhưng chưa đáng báo động.

Anh tựa lưng vào ghế.

Ở góc phải màn hình, khung chat hỗ trợ hiện thêm hai câu hỏi từ người lạ.

“App có dùng trên điện thoại Nokia được không em?”

“Đăng ký có mất tiền liền không?”

Hoàng trả lời câu thứ nhất bằng mẫu có sẵn: cần trình duyệt web trên điện thoại có internet; điện thoại phổ thông không hỗ trợ. Câu thứ hai: dùng thử miễn phí, sau đó 150 nghìn mỗi tháng nếu tiếp tục.

Dưới bếp, mẹ gọi:

“Hoàng, ăn cơm chưa con?”

“Dạ chút nữa!”

Anh vẫn nhìn dashboard.

31.

32.

Sài Gòn ngoài cửa sổ tối dần, hẻm lên đèn vàng. Mùi cá kho từ bếp đi lên cầu thang, trộn với hơi nóng của laptop. Hoàng đóng bớt một tab, mở thêm trang quản trị server.

Bài blog không phải báo chí chính thống. Không có danh nghĩa. Không có kiểm chứng từ team.

Nhưng nó có một thứ nguy hiểm hơn: nó giống lời kể của người dùng.

Và lời kể của người dùng đi nhanh hơn mọi kế hoạch marketing.

Hai mươi bốn giờ sau, số đăng ký mới là 143.

Khoa nhắn lúc 12 giờ 17 trưa, đúng giờ Hoàng đang ở căn tin trường, trước mặt là dĩa cơm sườn nguội một nửa.

Khoa: wtf mày ơi

Kèm ảnh chụp màn hình dashboard từ tài khoản hạn chế của Khoa. Số người đăng ký hôm nay đã vượt 80 trước giờ ăn trưa.

Hoàng cầm điện thoại dưới mép bàn, ngón tay dính chút nước mắm từ muỗng.

Bên kia bàn, hai đứa cùng lớp đang cãi nhau chuyện đội nào thắng trong trận bóng chiều. Tiếng muỗng inox gõ vào khay, tiếng ghế kéo, tiếng cô bán căn tin quát “lấy nước thì đứng né ra” làm mọi thứ rất bình thường. Quá bình thường so với đường biểu đồ đang dựng đứng trong điện thoại anh.

Hoàng: tao thấy

Khoa: vui không

Hoàng nhìn chữ “vui” trên màn hình.

Một phần anh muốn trả lời có. Một phần khác đã mở log lỗi bằng trình duyệt điện thoại, zoom vào những dòng status code gần nhất.

Tỷ lệ request chậm tăng.

Một số truy vấn trang danh sách nợ mất hơn ba giây. Vài request timeout ở bước tạo cửa hàng mẫu. Chưa sập, nhưng hệ thống bắt đầu thở nặng.

Hoàng: vui sau. mày để ý tin nhắn khách cũ giúp tao

Khoa: sao

Hoàng: nếu họ báo chậm thì gửi tao ngay

Khoa không gửi sticker nữa.

Khoa: oke

Tiết Lý chiều hôm đó dài hơn mọi khi. Hoàng ngồi hàng giữa, mắt nhìn bảng nhưng đầu chia thành nhiều luồng: bài blog đang tăng share; số đăng ký mới; server đang chịu tải; người dùng cũ có thể bị ảnh hưởng; Khánh muốn thấy tỉnh tự nhiên; Hệ thống đang chờ 2/3 hay không.

Thầy giảng về điện trở mắc song song. Phấn trắng kêu sột soạt trên bảng.

Hoàng chép ba dòng công thức để tay không trống. Điện thoại trong túi rung một lần. Anh không lấy ra.

Rung lần nữa.

Rồi lần thứ ba.

Khi trống tan học vang lên, anh đi thẳng ra cầu thang thoát hiểm sau dãy lớp, nơi ít học sinh qua lại, mở điện thoại.

Ba tin nhắn từ Khoa.

Khoa: anh Hải Bình Dương nói app chậm lúc nhập nợ

Khoa: cô Hạnh Gò Vấp bảo quay vòng vòng không lưu được

Khoa: chị Bảy hỏi hôm nay sao vô không được. bả hơi quạu.

Hoàng đọc tin thứ ba lâu hơn hai tin trước.

Anh Hải Bình Dương là dữ liệu. Cô Hạnh Gò Vấp là cảnh báo. Chị Bảy tạp hóa là nguồn gốc của toàn bộ sản phẩm này trong đầu anh, dù chị không biết.

Nếu chị Bảy phải quay lại quyển vở vì NỢ SỔ chậm đúng lúc có khách đứng chờ, mọi dòng tăng trưởng trên dashboard đều mất nghĩa trong vài phút đó.

Anh gọi Khoa.

Đầu dây bên kia bắt máy sau một hồi chuông.

“Ê, tao đang ngoài đường.”

“Chị Bảy nói sao?” Hoàng hỏi.

“Bả nói sáng giờ bấm vô danh sách nợ lâu quá, có lúc trắng màn hình. Khách hỏi tiền thiếu, bả mở không ra, phải lục sổ cũ. Bả hỏi có phải tụi mình bỏ app rồi không.”

Hoàng nhắm mắt một giây. Cầu thang có mùi bụi, mùi sơn cũ và mùi mồ hôi học sinh vừa chạy qua.

“Không bỏ,” anh nói. “Mày gọi lại nói đang sửa. Xin lỗi giúp tao.”

“Ờ. Còn mấy người mới hỏi quá trời. Tao trả lời không xuể.”

“Ưu tiên khách cũ báo lỗi. Người mới để trễ cũng được.”

Khoa ngừng nửa nhịp.

“Để trễ người mới thì mất đăng ký đó.”

“Mất người mới còn kéo lại được. Mất người cũ vì mình làm họ kẹt trước mặt khách thì khó hơn.”

Đầu dây có tiếng xe tải chạy ngang, át mất vài chữ Khoa nói. Rồi giọng cậu rõ lại.

“Biết rồi. Mày sửa được không?”

“Được.”

Câu trả lời ra nhanh hơn sự chắc chắn thật sự.

Khoa nghe ra, nhưng không chọc.

“Cần tao làm gì?”

“Ghi lại ai bị lỗi, lúc nào, thao tác gì. Đừng bảo họ đăng ký lại. Đừng bảo xóa dữ liệu. Chỉ nói tụi mình đang xử lý.”

“Tụi mình,” Khoa lặp lại, giọng không đùa. “Oke.”

Hoàng cúp máy, bỏ điện thoại vào túi, rồi lấy ra ngay khi nó rung thêm lần nữa.

Không phải Khoa.

Là thông báo từ Facebook: bài blog có một comment mới đang được nhiều người trả lời.

Hoàng mở ra.

Dưới thread có người hỏi “app này có dùng ngoài Sài Gòn được không?”, một tài khoản tên Lâm Đồng Nai trả lời:

Tôi dùng cái này ở Đồng Nai, tiện lắm. Bên tôi làm cửa hàng vật liệu, không phải tạp hóa. Có ông bạn ở Bình Dương chỉ qua.

Hoàng đứng yên trên bậc thang.

Đồng Nai.

Không phải Khoa đi. Không phải anh lên kế hoạch. Không phải chiến dịch thử nghiệm. Từ Bình Dương qua một người bạn ở Đồng Nai, rồi thành một cửa hàng vật liệu đang dùng đủ lâu để comment công khai.

Anh mở dashboard thanh toán, lọc theo địa chỉ tự khai và số điện thoại. Có một tài khoản ở Biên Hòa đăng ký sáu ngày trước, gói dùng thử chuyển sang trả tiền vào sáng nay qua VietPath. Tên cửa hàng không nổi bật trong danh sách vì anh chưa lọc địa lý ngoài các cụm cũ.

Một dòng mờ hiện lên ở rìa tầm nhìn.

Không âm thanh. Không hiệu ứng. Không chúc mừng.

NHIỆM VỤ BƯỚC RA

Tiêu chí người dùng định nghĩa: 3 tỉnh/thành phố ngoài TP.HCM có người dùng trả tiền phát sinh từ mạng lưới tăng trưởng độc lập.

Tiến độ: 2/3

Bình Dương.

Đồng Nai.

Hoàng nhìn con số đó, cảm giác đầu tiên không phải khoái trá.

Là một khoảng trống ngắn giữa hai nhịp tim.

Hệ thống đã cập nhật.

Nghĩa là điều kiện phụ đêm trước không phải lỗi hiển thị. Nó thật sự đo “mạng lưới tăng trưởng độc lập”. Và Đồng Nai, xuất hiện từ một comment của người dùng anh chưa từng gặp, đủ điều kiện.

Điện thoại rung trên tay kéo anh trở lại.

Khoa: thêm 2 người báo chậm. một người nói không tạo tiệm mới được

Hoàng tắt giao diện Hệ thống.

Con số 2/3 còn vương trong mắt, nhưng anh không có thời gian nhìn nó lần thứ hai.

Tối đó, bữa cơm nhà Hoàng diễn ra trong mười hai phút.

Mẹ đặt tô canh rau ngót xuống bàn, nhìn con trai vừa ăn vừa liếc điện thoại.

“Có bài gì gấp hả con?”

“Dạ, con phải sửa một lỗi phần mềm.”

Ba ngồi đối diện, áo thun còn mùi nắng đường. Ông gắp miếng cá kho, đặt vào chén Hoàng.

“Sửa tới khuya nữa?”

Hoàng cầm đũa. Miếng cá nằm trên cơm, nước kho thấm xuống hạt trắng.

“Chắc vậy ba.”

Ba nhai chậm, mắt nhìn màn hình TV đang phát thời sự nhưng tai để ở bàn ăn.

“Lỗi của người ta hay lỗi của con?”

Câu hỏi làm Hoàng ngẩng lên.

Mẹ cũng nhìn qua.

Hoàng không thể kể server quá tải, query danh sách nợ chưa có index đúng, bước tạo dữ liệu mẫu chạy đồng bộ khiến request treo, và anh đã trì hoãn việc tách job nền vì tuần trước phải chuẩn bị gặp nhà đầu tư.

Anh chỉ nói:

“Lỗi của con.”

Ba gật đầu. Không mắng. Không hỏi thêm tiền. Ông gắp miếng rau, chấm nước cá.

“Vậy sửa cho đàng hoàng. Đừng để người ta chờ.”

Câu đó đi vào Hoàng sâu hơn một lời động viên.

Anh ăn hết chén cơm nhanh hơn mọi ngày, rửa chén của mình dù mẹ bảo để đó, rồi lên phòng.

Laptop mở lại lúc 7 giờ 23.

Dashboard người dùng mới trong 48 giờ: 287.

Năm phút sau: 291.

Một cửa sổ khác là log server. Những dòng đỏ chạy xuống theo từng cụm.

POST /stores/create 504 Gateway Timeout

GET /debts?store_id=... slow query 8120ms

DB connection pool exhausted

Retry payment webhook failed

Hoàng kéo ghế sát bàn, cắm sạc, mở terminal.

Vấn đề không chỉ là CPU. Database bị nghẽn vì những truy vấn anh từng xem là “đủ dùng” khi có vài trăm người. Trang danh sách nợ tải toàn bộ lịch sử thay vì phân trang đúng. Tính năng tạo cửa hàng mẫu cho người mới chạy ngay trong request chính, vừa ghi dữ liệu vừa gửi email hướng dẫn. Khi vài chục người cùng bấm, mọi thứ chen nhau trong một hàng cửa hẹp.

Anh có thể nâng gói server ngay. Việc đó mua được vài giờ.

Nhưng nếu chỉ nâng server, lỗi sẽ quay lại khi bài viết được share thêm một vòng.

Hoàng mở tài khoản hosting, nâng tạm cấu hình. Thẻ thanh toán qua VietPath cần anh Tuấn xác nhận. Anh nhìn đồng hồ: 7 giờ 41.

Anh gọi.

Anh Tuấn bắt máy với giọng có tiếng quán ăn phía sau.

“Gì đó?”

“Server NỢ SỔ quá tải vì bài blog. Em cần nâng gói tạm, chi phí tháng này tăng. Bên VietPath xác nhận giúp em.”

“Bao nhiêu?”

Hoàng nói con số.

Anh Tuấn không hỏi tại sao ngay.

“Gửi link. Anh duyệt trong năm phút.”

“Còn nữa,” Hoàng nói. “Nếu người dùng phản ánh trên bài blog, đừng trả lời về team. Chỉ nói đang tăng tải và xin lỗi.”

“Anh chưa định nói gì.” Tiếng anh Tuấn nhỏ lại, có lẽ anh đứng dậy ra ngoài. “Tệ cỡ nào?”

“Chưa sập. Nhưng khách cũ bắt đầu bị chậm. Chị Bảy không vào được lúc cần tra nợ.”

Đầu dây im vài giây.

Anh Tuấn biết chị Bảy là ai, không phải tên trong cap table, nhưng là một trong những người đầu tiên biến NỢ SỔ từ ý tưởng thành sản phẩm.

“Ưu tiên khách cũ,” anh nói.

“Em đang làm.”

“Có cần anh kiếm người hỗ trợ kỹ thuật tạm không?”

Hoàng nhìn màn hình code. Một đống quyết định nhỏ nằm trong đầu anh: bảng nào thiếu index, route nào cần cache, task nào phải tách nền, đoạn nào sửa nhanh không phá dữ liệu.

Một người lạ nhảy vào bây giờ sẽ cần anh giải thích cấu trúc lâu hơn thời gian tự sửa phần cháy trước mắt.

“Đêm nay không kịp,” Hoàng nói. “Sau đêm nay thì cần.”

Anh Tuấn nghe ra phần sau.

“Gửi anh danh sách việc có thể giao. Sáng mai anh gọi hai người hỏi thử.”

“Dạ.”

“Hoàng.”

“Dạ?”

“Bài blog là tốt. Nhưng đây là cái giá của nó.”

Hoàng nhìn log đỏ thêm một dòng mới.

“Em biết.”

Anh cúp máy.

Năm phút sau, gói server được nâng. CPU hạ xuống. Một phần lỗi giảm. Nhưng truy vấn chậm vẫn nằm đó như cục đá dưới mặt nước.

Hoàng bắt đầu sửa.

Đầu tiên là index cho bảng giao dịch nợ theo store_idcreated_at. Anh viết migration, chạy trên bản staging, kiểm tra thời gian truy vấn giảm từ hơn tám giây xuống dưới nửa giây với dữ liệu giả. Sau đó là phân trang danh sách nợ, chỉ tải ba mươi khoản gần nhất trước, nút xem thêm nằm dưới cùng. Với chủ tiệm, họ cần khoản mới nhất nhiều hơn lịch sử sáu tháng trước.

9 giờ 06, Khoa gửi file ghi chú lỗi.

Không gọn, nhưng hữu ích.

  • chị Bảy: mở danh sách nợ trắng màn hình lúc 15h20, 16h05
  • anh Hải BD: nhập nợ lưu lâu, tưởng mất mạng
  • cô Hạnh GV: tạo khách mới bị xoay vòng
  • tiệm vật liệu Biên Hòa: hỏi có app trên Android không, vẫn dùng web được
  • 12 người mới hỏi giá
  • 5 người hỏi ai làm app

Dòng cuối làm Hoàng dừng tay.

5 người hỏi ai làm app

Anh kéo cửa sổ Facebook sang bên phải. Bài blog đã hơn một trăm share. Comment mới xuất hiện dưới tiêu đề:

Ai làm cái này vậy? VietPath à?

Có founder không, hay project nội bộ?

Bạn nào team này inbox mình với, muốn viết thêm.

Hoàng đóng cửa sổ đó lại.

Không phải bây giờ.

Anh quay về terminal.

10 giờ 18, mẹ gõ cửa.

“Má vô được không?”

“Dạ được.”

Mẹ mở cửa, đặt ly sữa đậu nành còn ấm lên góc bàn. Bà nhìn màn hình đầy chữ trắng trên nền đen, nhìn con trai gõ liên tục, rồi kéo cái khăn trên vai xuống lau tay.

“Đừng thức trắng nghen. Mai còn đi học.”

“Dạ.”

Mẹ chưa đi ngay.

“Lỗi đó… người ta có la con không?”

Hoàng quay sang. Mẹ không hiểu phần mềm, nhưng hiểu chuyện làm cho người khác dùng mà bị lỗi. Ở xưởng may, một đường chỉ lệch cũng có người trả hàng về.

“Có người bực,” anh nói. “Nhưng sửa được.”

Mẹ gật, tin câu sau hơn câu trước vì con nói thẳng câu trước.

“Vậy uống đi. Nóng nguội mất ngon.”

Bà khép cửa lại.

Hoàng cầm ly lên, uống hai ngụm. Sữa đậu nành ngọt, mùi lá dứa rất nhẹ. Anh đặt ly xuống xa laptop, commit đoạn migration đầu tiên.

hotfix: add debt query index and pagination

11 giờ 03, lỗi danh sách nợ giảm.

11 giờ 47, anh tách bước tạo dữ liệu mẫu sang job nền đơn giản. Chưa đẹp, nhưng request tạo tiệm không còn treo. Email hướng dẫn gửi chậm vài phút cũng được, miễn người dùng vào được trang đầu.

0 giờ 26, webhook thanh toán còn lỗi retry. Anh viết thêm cơ chế ghi hàng đợi tạm thay vì gọi lại ngay trong request. Sau này phải làm đúng, có queue riêng, retry có backoff, dashboard cảnh báo. Đêm nay chỉ cần không làm sập luồng chính.

Khoa vẫn nhắn.

Khoa: chị Bảy vô được rồi. bả nói còn hơi chậm nhưng được

Hoàng thở ra qua mũi. Vai anh đau vì ngồi lâu.

Hoàng: nói xin lỗi bả giúp tao

Khoa: tao nói rồi. bả bảo lần sau báo trước. như điện cúp cũng có người la mà còn biết cúp điện

Hoàng đọc câu đó hai lần.

Báo trước.

Một sản phẩm thật không chỉ cần chạy. Nó cần nói với người dùng khi nó không chạy.

Anh mở file ghi chú, thêm một dòng vào đầu danh sách việc ngày mai:

Trang trạng thái / thông báo sự cố cho người dùng cũ.

Rồi thêm dòng thứ hai:

Người kỹ thuật thứ hai. Không trì hoãn.

1 giờ 12.

Bài blog vẫn có comment mới. Dashboard đăng ký dùng thử chạm 302 trong 48 giờ tính từ lúc bài đăng lên. Người dùng hoạt động tăng, số tài khoản trả tiền chưa tăng tương ứng, nhưng phễu đã mở ra theo cách anh không mua, không gọi, không điều phối.

Anh mở Hệ thống lần đầu kể từ chiều.

Giao diện quen thuộc hiện trong tầm mắt, lạnh và sạch.

NHIỆM VỤ BƯỚC RA

Tiến độ: 2/3

Bên dưới, dòng ghi chú nhỏ đã cập nhật:

Khu vực hợp lệ mới: Đồng Nai — nguồn phát sinh: giới thiệu người dùng Bình Dương → người dùng trả tiền Biên Hòa.

Không có phần thưởng. Không có lời khen. Không có câu hỏi vì sao anh mất cả đêm sửa lỗi. Hệ thống đo đúng điều nó cần đo, rồi đứng yên.

Hoàng nhìn nó vài giây.

Nếu là một tháng trước, anh có thể đã ghi ngay vào sổ: 2/3, còn một tỉnh. Có thể đã thấy nhịp sướng rõ ràng khi thanh tiến độ nhích lên.

Bây giờ, cửa sổ log phía sau vẫn còn một cụm đỏ.

GET /dashboard/summary slow query 4312ms

Một tin nhắn hỗ trợ hiện lên ở góc màn hình:

“Em ơi, sao tổng nợ hôm nay hiện chậm vậy?”

Một tab khác vẫn mở bài blog. Dưới tiêu đề, bình luận mới nhất hỏi:

Rốt cuộc ai làm cái app này?

Hoàng đặt Hệ thống sang một bên bằng ý nghĩ, như gạt một tờ giấy khỏi vùng làm việc.

Trước mặt anh là ba cửa sổ.

Dashboard người dùng tăng từng chút một.

Log lỗi còn đỏ.

Thread Facebook nơi người ta đang hỏi tên người đứng sau NỢ SỔ.

Ở mép dưới màn hình, đồng hồ chỉ 1 giờ 18. Hẻm ngoài kia đã yên hơn, chỉ còn tiếng xe khuya lẻ tẻ và tiếng quạt bàn quay lệch trục.

Tiến độ 2/3 nằm trong mắt anh như một con dấu đã đóng.

Nhưng niềm vui không có chỗ ngồi xuống.

Hoàng kéo cửa sổ terminal ra giữa màn hình, đặt tay lên bàn phím, và sửa tiếp.