Hai đứa con, ba startup, một giọng nói
Chuyện người sáng lập Keebye: luồng việc song song rủi ro cao, em bé dưới sáu tháng tuổi và sản lượng tăng theo số lane được điều khiển bằng giọng nói.
Mọi công cụ tôi từng làm ra đều bắt đầu từ một tình huống khẩn cấp của cá nhân. Tình huống khẩn cấp của Keebye có hai cái tên, và một trong hai chưa đầy sáu tháng tuổi.
Đây là hoàn cảnh mà app ra đời. Tôi làm việc với những startup rủi ro cao, nơi hơn $1M đã được đầu tư và việc giao hàng đúng hẹn là quan trọng. Không phải một startup: vài cái, song song, mỗi cái có codebase riêng, thứ tự ưu tiên riêng, và cái “việc này cần xong từ hôm qua” của riêng nó. Công việc đó không đến theo một hàng đợi gọn gàng. Nó đến dưới dạng những lane: một cuộc migration ở lane này, một lượt review ở lane kia, một bản mổ xẻ sự cố ở lane thứ ba, và mỗi lane một kênh Slack đang đầy dần ở phía sau.
Rồi chúng tôi có đứa con thứ hai.
Ai từng bế một đứa trẻ sơ sinh đang ngủ đều biết cái vật lý rất riêng của nó: bạn có một tay, may ra. Về mặt chức năng, bạn là một lập trình viên một tay trong nhiều giờ liền. Trong khi đó các lane không dừng lại. Agent đã refactor xong và đang chờ chỉ đạo. Câu hỏi của khách hàng kia đang nằm đó và già đi. Thông lượng gõ phím của bạn — cái thứ mà toàn bộ sản lượng của bạn âm thầm đi qua — vừa bị cắt hơn một nửa.
Phép toán đã vỡ
Lời hứa của các agent lập trình AI là có thật. Claude Code thật sự sẽ thực hiện một lượt refactor nhiều tệp trong lúc bạn làm việc khác. Chạy hai hay ba lane và trên giấy tờ, bạn đang vận hành ở một bội số nào đó của chính mình. Ai đang đuổi theo sản lượng 10x cũng đã đọc bài chào hàng này.
Nhưng cái bội số đó có một mẫu số mà chẳng ai nhắc tới: mỗi lane chỉ tiến lên nhờ ngôn ngữ tự nhiên do bạn tạo ra. Prompt, lệnh đổi hướng, bản review, câu trả lời. Nếu việc tạo ra thứ ngôn ngữ đó đòi hỏi hai tay rảnh và một cú chuyển ngữ cảnh trọn vẹn vào đúng cửa sổ, thì các lane của bạn chẳng hề song song — chúng đang bị chia lát thời gian qua một điểm nghẽn duy nhất. Thêm một lane là thêm chi phí điều phối, cho đến khi cái “bội số” lặng lẽ biến thành gánh nặng.
Tôi cảm nhận được điểm nghẽn đó bằng cơ thể. Tôi có sẵn chỉ dẫn tiếp theo đã thành hình đầy đủ trong đầu — “hoàn tác thay đổi schema, giữ lại việc đổi tên API, chạy lại migration” — và nó cứ nằm đó, xếp hàng sau một đứa bé, một cái bánh mì, hoặc chính đôi tay tôi đang dở việc ở một lane khác. Ý nghĩ thì tức thì. Việc chuyển giao mới là nút thắt cổ chai.
Bạn không cần đôi tay 10x. Bạn cần một kênh đầu ra thứ hai.
Vì sao các công cụ có sẵn không hợp
Tôi đã thử các công cụ đọc chính tả — có những cái tốt, và chúng tôi nói thẳng điều đó trong các trang so sánh. Nhưng yêu cầu của tôi được nhào nặn bởi đúng cái ngày tôi vừa mô tả, và ba trong số đó hóa ra là không thể thương lượng.
Nó phải chạy được trong terminal. Các lane của tôi sống trong iTerm2 và tmux, thường là qua SSH. Cách chèn văn bản bằng dán qua clipboard hỏng đúng ở những chỗ đó. Tôi cần thứ có thể gõ ra — những cú nhấn phím mô phỏng, được điều tiết nhịp để terminal theo kịp.
Nó phải chạy cục bộ. Những thứ tôi đọc ra là phần ruột gan của công ty người khác: sản phẩm chưa công bố, những quyết định sát với nhà đầu tư, những cuộc thảo luận về bảo mật. “Chúng tôi gửi âm thanh lên đám mây, nhưng có trách nhiệm” là một câu trả lời ổn với nhiều người dùng. Nó không thể là câu trả lời của tôi. Việc chuyển giọng nói thành văn bản phải chạy trên phần cứng của chính tôi, có thể chứng minh được, với Wi-Fi tắt nếu cần.
Nó phải vô hình. Không cửa sổ app, không chế độ phải bước vào. Giữ một phím, nói, thả ra, biến mất. Một công cụ đòi hỏi cái lane của riêng nó thì đã đi ngược lại mục đích.
Nên tôi tự làm. Keebye là một app macOS gốc nhỏ nằm trên menu bar — dùng Tauri, nên nó nhẹ — và giữ đúng hình dáng đó: giữ ⌘ phải, nói, và câu chữ rơi vào ô nhập liệu có thể chỉnh sửa đang focus. Các model chạy trên máy (một mặc định tinh chỉnh cho tiếng Anh, một engine 25 ngôn ngữ tùy chọn, hoặc engine gốc của Apple), offline sau lần tải đầu tiên, dọn dẹp theo quy tắc kèm bước trau chuốt bằng LLM cục bộ tùy chọn, một từ điển cho vốn từ của dự án, lịch sử chỉ gồm văn bản tự xóa sau 30 ngày, và không có telemetry. Đó không phải những tính từ trên tờ rơi quảng cáo; đó là danh sách yêu cầu viết ra từ cái ghế sofa đó, với đứa bé đó.
Điều gì đã thật sự thay đổi
Tôi muốn cẩn thận ở chỗ này, vì những câu chuyện người sáng lập rất dễ trôi vào hư cấu. Tôi sẽ không đưa cho bạn một con số phần trăm cải thiện; tôi chưa bao giờ đo, và tôi cũng sẽ hoài nghi con số của bất kỳ ai.
Điều tôi có thể kể là cảm giác của những ngày làm việc bây giờ. Cái chỉ dẫn đã thành hình nhưng chưa chuyển giao được thì gần như biến mất: khi một lane cần chỉ đạo, tôi nhìn vào nó, giữ phím, và nói ra. Những câu trả lời cho con người — mấy tin nhắn Slack từng nằm già đi hàng giờ vì trả lời chúng nghĩa là bỏ dở một lane — giờ đi ra trong những khoảng trống, nói vào bất kỳ cửa sổ nào đang focus. Và những giờ chỉ có một tay thôi là những giờ chết. Một số chỉ đạo hiệu quả nhất tôi đưa ra diễn ra khi đang đứng, đi tới đi lui, bế một đứa nhỏ đang ngủ.
Những giới hạn trung thực vẫn còn đó. Đọc chính tả không nghĩ thay bạn; một prompt lí nhí, nửa vời sẽ cho ra kết quả lí nhí, nửa vời, dù bạn nói hay gõ. Keebye là phần mềm đang trong giai đoạn truy cập sớm với những chỗ thô ráp mà điều đó hàm ý. Và giọng nói là phần bổ sung cho đôi tay, không phải vật thay thế — tôi vẫn gõ rất nhiều, chỉ là nó không còn là điểm hỏng duy nhất cho tất cả các lane cùng lúc.
Luận điểm, nếu có một luận điểm
Các cuộc bàn luận về lập trình viên 10x luôn hình dung một người gõ nhanh hơn. Cái thật sự đã đến thì lạ hơn: một người chỉ huy — vài lane bán tự trị, mỗi lane đang chờ một câu nói. Trong thế giới đó, đòn bẩy của bạn không phải số từ mỗi phút. Nó là việc bạn chuyển giao ý định tới đúng cái lane đang cần nó rẻ đến mức nào, trong bất kỳ tình huống thể chất nào bạn đang ở.
Với tôi, kênh rẻ nhất hóa ra là cái tôi vẫn luôn có sẵn.
Nếu những ngày làm việc của bạn trông giống thế này, phần chi tiết về quy trình nằm ở Điều khiển Claude Code bằng giọng nói, và nếu tiếng Anh không phải ngôn ngữ bạn nghĩ bằng nó, hãy đọc vì sao đọc chính tả không nên chỉ có tiếng Anh. Keebye đang trong giai đoạn truy cập sớm cho macOS; hãy bắt đầu bản dùng thử miễn phí bên dưới. Nó được xây trong đúng cái hoàn cảnh mà nó phục vụ: một tay bận, các lane vẫn chạy.
Một tay bận. Các lane vẫn chạy.
Hãy bắt đầu bản dùng thử miễn phí nếu ngày làm việc của bạn cũng có nhiều lane đang chạy hơn số tay sẵn có — đầy đủ tính năng, 14 ngày, không cần thẻ.
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
Đọc tiếp
Một giọng nói, mười lane: một ngày đọc chính tả
Một ngày chạy nhiều lane startup song song trông ra sao khi bàn phím thôi là kênh đầu ra duy nhất. Người sáng lập kể lại, theo từng giờ.
Đọc nhận xét code review bằng tiếng của bạn
Code thì bằng tiếng Anh. Nhận xét của bạn thì không cần. Cách đọc nhận xét bằng một trong 25 ngôn ngữ ngay trên máy, và vì sao ghim ngôn ngữ lại quan trọng.
Đọc prompt cho các agent song song, lane này qua lane khác
Chạy hai ba agent lập trình cùng lúc thì soạn prompt thành nút thắt. Quy trình dùng giọng nói để nạp việc cho các lane song song mà không rời lane đang làm.