2 điểm bởi GN⁺ 2025-08-07 | 1 bình luận | Chia sẻ qua WhatsApp
  • Phần mềm Claude Desktop của Anthropic được phát hiện là sử dụng thư viện mô phỏng nhập liệu mã nguồn mở enigo do tôi phát triển
  • enigo chạy được trên Windows, macOS, BSD và Linux cùng nhiều hệ điều hành khác, và được tận dụng như một thành phần cốt lõi trong Claude Desktop dựa trên Electron
  • Tôi đã gửi hồ sơ ứng tuyển cho Anthropic, nhưng nhận được thông báo từ chối do đội ngũ thiếu nhân sự
  • enigo được cấp phép MIT, ai cũng có thể dùng miễn phí; vì vậy tôi không có lợi ích tài chính trực tiếp, chỉ có được một phần danh tiếng
  • Dù đã 'trao tay chân' cho Claude, tôi vẫn bày tỏ sự hụt hẫng vì lại bị từ chối trong quy trình tuyển dụng

Lời mở đầu

Vào tháng 10 năm 2024, Anthropic đã giới thiệu tính năng "Claude Computer Use". Tính năng này cho phép AI điều khiển máy tính, ví dụ như làm việc sao chép dữ liệu từ trình duyệt web sang bảng tính. Là người duy trì một thư viện cho việc điều khiển máy tính, tôi rất quan tâm đến cách Anthropic triển khai và muốn học hỏi từ đó. Tính đến tháng 3 năm 2025, Anthropic là một trong những công ty dẫn đầu ngành AI với định giá hơn 60 tỷ USD.

Thư viện enigo và Claude Desktop

Tôi phát hiện Anthropic đang dùng thư viện enigo do tôi phát triển trong phiên bản desktop của Claude. Việc xác minh việc dùng enigo trên phiên bản Claude Desktop macOS có thể làm như sau.

$ 7z x Claude.dmg
$ perl -nle 'print $& while /.{0,67}enigo.{0,30}/g' Claude/Claude.app/Contents/Resources/app.asar.unpacked/node_modules/claude-native/claude-native-binding.node

Ví dụ đầu ra:

  • /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/enigo-0.2.1/src/macos/macos_impl.rs
  • Có thể xác nhận theo cách tương tự rằng Claude dành cho Windows cũng đang dùng enigo

enigo có các điểm sau:

  • Hỗ trợ nhiều nền tảng như Windows, macOS, BSD, Linux (wayland, X11, libei)
  • Được viết bằng Rust, nên có an toàn bộ nhớhiệu năng nhanh
  • Không cần quyền root
  • Được tải xuống hơn 300.000 lần trên crates.io và đạt hơn 1200 sao trên GitHub
  • Mô phỏng nhập liệu là lĩnh vực khá khó vì sự khác biệt đầu vào giữa các hệ điều hành và tài liệu tham chiếu còn hạn chế
  • Thực chất là thư viện Rust gần như duy nhất hiện có có mô phỏng nhập liệu đa nền tảng

Mã nguồn mở và cấu trúc bồi hoàn

enigo được phát hành theo giấy phép MIT, nên ai cũng có thể dùng miễn phí. Không nhận được bất kỳ khoản bồi hoàn tiền tệ trực tiếp nào từ doanh nghiệp hay người dùng. Đổi lại, nhận lại là sự nhận diện trong cộng đồng như số sao trên GitHub và số lượt tải trên crates.io.

Ứng dụng Electron, và nghịch lý không có Linux

Claude Desktop là sản phẩm dựa trên Electron, nhưng chính thức chỉ hỗ trợ macOS và Windows. Dù lợi thế lớn của Electron là khả năng đa nền tảng, Claude Desktop vẫn không có bản Linux. Trong cộng đồng người dùng, mọi người đã thử triển khai lại cho Linux bằng cách dùng mã Stub. (Ví dụ: claude-desktop-linux-flake v.v.)
Điều đáng chú ý là, mặc dù enigo thực tế có hỗ trợ Linux, vẫn phải dùng cách tiếp cận vòng vèo như vậy.

Kinh nghiệm ứng tuyển Anthropic và bị từ chối

Qua người quen, tôi biết Anthropic đang tuyển một vị trí phát triển tính năng mới chưa công bố trong đội phát triển Claude Desktop. Vì nhóm này dùng enigo rất cốt lõi, tôi nghĩ mình phù hợp và nộp đơn.

  • Theo email phản hồi tự động, họ cho biết đang thiếu người để xem xét thêm hồ sơ ứng viên
  • Sau vài tuần, tôi nhận email thông báo từ chối ứng tuyển

Nếu ứng tuyển thành công:

  • Tôi muốn phát triển sâu hơn các tính năng tương tự như Computer Use trong Claude Desktop
  • Đặc biệt, tôi có chuyên môn để đóng góp cho nỗ lực mang Claude Desktop sang Linux
  • Có thể giúp cho enigo trưởng thành hơn và nâng cao độ hoàn thiện của dự án

Kết luận và cảm nghĩ

enigo được chọn dùng trong Anthropic Claude Desktop khiến tôi rất tự hào. Đồng thời, tôi cũng thấy mình được giải trí khi một công ty tận dụng 'tay chân' do tôi tạo ra lại từ chối trong quy trình tuyển dụng. Cuối cùng, tôi còn đùa rằng giờ đây mình đã an toàn trước Roko's Basilisk (kịch bản trừng phạt của AI siêu AI trong tương lai).

1 bình luận

 
GN⁺ 2025-08-07
Ý kiến trên Hacker News
  • Mình là một tác giả blog, cảm ơn vì đã giới thiệu; nếu có điều gì thắc mắc thì cứ hỏi bất cứ lúc nào, và mình cũng muốn nghe thêm phản hồi về bài viết. Đây là một trong những bài đầu tiên của mình nên muốn viết tốt hơn.
    • Nên chuyển giấy phép sang AGPL hoặc 'custom license (cần liên hệ khi có thỏa thuận thanh toán)', và nên thêm link đến lý do. Nếu không dùng các giấy phép có tính lan truyền kiểu GPL, sẽ xảy ra chuyện doanh nghiệp chỉ thu lợi từ devs mã nguồn mở mà không trả lại gì cho họ. Linh hồn của GPL là dành cho con người chứ không phải cho doanh nghiệp ("ba luật sư đội áo trenchcoat"). Công ty đánh giá code của dev đủ tốt để dùng cho enterprise rồi lại bỏ rơi tác giả. Bản thân mình cũng đã chọn quản lý tất cả dự án bằng AGPL; nếu cần điều kiện đặc biệt thì cứ liên hệ.
    • Tò mò không biết Claptrap đã cảm thấy thế nào trong chuyện này (video trên YouTube), thật sự trân trọng công sức của bạn. Bị từ chối là đáng tiếc, nhưng nó gợi cho mình nhớ tới câu chuyện dev của Homebrew từng bị Google từ chối (liên kết liên quan).
  • Muốn chúc mừng vì làm một công việc quá tốt. Thực tế có rất nhiều nhà phát triển OSS có câu chuyện giống nhau; mình cũng từng có trải nghiệm Mojang dùng engine voxel của mình.
  • Vì bài này đang tạo tiếng vang trên HN, nên mình hy vọng một ngày nào đó người phụ trách của Anthropic đọc được và xin lỗi thật lòng, rồi đưa ra offer tuyển dụng — một cái kết đẹp. Mình chúc sẽ có kết quả tốt, cầu mong vũ trụ phù hộ.
  • Mình tò mò liệu nếu chuyển sang AGPL thì có thể nhận được nhiều phần thưởng, được công nhận và có cơ hội việc làm hơn không.
  • Mình biết từ giới thiệu của một người bạn rằng tại Anthropic đang có vị trí mở cho nhóm triển khai tính năng mới riêng tư của Claude Desktop bằng enigo, nên đã nộp hồ sơ. Email trả lời tự động nói họ chỉ liên hệ ứng viên đỗ qua vòng đầu, và sau vài tuần không có hồi âm nên mình đoán là họ đã tuyển người khác. Thành thật mà nói, từ 10 năm trước mình hầu như không apply trực tiếp vào các công ty lớn vì thường không nhận phản hồi nào cả. Chỉ duy nhất ngoại lệ là JaneStreet: chỉ cần viết ngắn về lĩnh vực mình quan tâm là họ phản hồi ngay. Tuy nhiên, nếu có giới thiệu qua bạn bè thì lấy phỏng vấn tại Google hay Apple chắc chắn dễ hơn nhiều.
    • Trong suốt sự nghiệp, mình đã qua 6 công ty nhưng chưa bao giờ nhận phản hồi khi nộp đơn trực tiếp trên website; luôn phải có người thật giới thiệu vào. Mình cũng khuyên nên đi theo cách đó ở đây. Anthropic cũng không có lý do gì để không tận dụng được người giỏi như bạn. Nếu có thể, kết nối qua bạn của bạn rồi hẵng chuyển sang nói chuyện qua điện thoại.
    • Điều thú vị là JaneStreet là ngoại lệ: nếu một công ty chọn OCaml làm ngôn ngữ chính thì có vẻ họ tận dụng rất tích cực mọi cách để thu hút dev.
  • Nếu hỏi tại sao không trả tiền, vì dev đã tự làm sẵn chức năng bạn cần hoàn toàn miễn phí rồi. Việc phớt lờ anh ấy dường như cũng không giúp nâng cao uy tín của công ty.
    • Mình muốn đề xuất một license mới: nếu họ không tuyển dụng dev này mà kiếm hơn 100 triệu USD doanh thu/năm, thì với dự án dùng bởi công ty của bạn sẽ phải thu phí thương mại tương đương tổng đãi ngộ của một Director hoặc Principal Engineer quản lý hơn 50 người theo mức lương cao nhất theo thành phố. Với OSS có nhiều tác giả, khoản phí sẽ chuyển về quỹ vận hành dự án. Với các dự án lõi như ffmpeg mà big tech dùng rộng rãi, mức này có thể lên đến hàng triệu USD, mà vẫn rẻ hơn nhiều so với tự phát triển.
    • Nếu công ty tuyển trực tiếp anh ấy:
      • việc giao task sẽ dễ xác định hơn
      • bạn có được đảm bảo rằng anh ấy thực sự yêu thích công việc này và đủ năng lực
      • bạn sở hữu được đầu ra của anh ấy để lấy lợi thế cạnh tranh
      • chi phí thêm gần như không đáng kể
    • Hiện giờ dự án này là sở thích của mình và còn khá nhiều bug; không có nguồn thu nên không thể tăng thời lượng đầu tư. Nếu được tuyển, mình có thể tập trung toàn bộ vào bugfix và tiến độ sẽ nhanh hơn rất nhiều.
    • Nếu công cụ này thực sự là trọng tâm của công ty, vì sao không tuyển dev có kinh nghiệm nhất trong mảng này? Hơn nữa, khi công việc được mở tuyển riêng cho chính dev này thì càng phải làm vậy. Nếu đối thủ tuyển được anh ấy và chiếm lĩnh công nghệ thì sẽ tạo khoảng cách lớn; dù công cụ có không như kỳ vọng, công ty vẫn được lợi thêm một kỹ sư giỏi.
    • Vì công ty có thể để anh ấy triển khai đúng tính năng ưu tiên của mình; lý do phần lớn công ty tuyển trực tiếp tác giả OSS cũng là như vậy.
  • Nếu tác giả xin một lời giới thiệu trực tiếp đến bạn của bạn, có thể sẽ đạt kết quả tốt hơn thay vì đi qua quy trình apply thông thường; thực ra đấy là hiện thực văn hóa tuyển dụng ngành IT.
    • Mình cũng nghĩ vậy. Nếu OP biết sớm rằng thư viện mình viết đang được Claude dùng, đăng bài blog sớm và khiến cộng đồng HN, Reddit chú ý, có thể sẽ tạo ra nhiều mối quan hệ dẫn đến cơ hội tuyển dụng; kể cả không phải Anthropic thì đối thủ khác vẫn có thể quan tâm.
    • Cuối cùng, nếu bạn thuộc nhóm quen biết, thực tế đó cũng không tệ, thậm chí an toàn hơn. Tuyển chỉ bằng hồ sơ và vài giờ phỏng vấn là một canh bạc lớn; kể cả không đạt kỳ vọng ban đầu, việc sa thải không phải lúc nào cũng dễ.
    • Từ trải nghiệm ở Anthropic và OpenAI, giới thiệu nội bộ gần như không phải tiêu chí quan trọng. Người thực sự được tuyển thường khá junior, tất cả ứng viên đều phải giải bài test Python cơ bản mức junior mới ra trường (1-2 năm kinh nghiệm) ở vòng đầu; nếu không viết đúng ngay thì loại luôn, không thảo luận thêm. Cách này cực kỳ bất lợi cho senior, khác với Meta. Meta sẽ đặt câu hỏi sâu hơn với senior, và có manager tham gia phỏng vấn. Quy trình của Anthropic gần như khuyến khích việc loại bỏ senior theo kiểu nghiệp dư; dù có quen ai đó, vượt qua coding test vẫn là quan trọng.
  • Nói thật, mình nghĩ rồi sẽ tới lúc việc chọn license không còn nhiều ý nghĩa. Nếu big tech thèm một OSS, họ có thể bắt agent viết lại theo phong cách "War and Peace"; gần đây còn có vụ Cheatingdaddy/Pickle sao chép nguyên si mà không rewrite.
    • Bạn đã từng thử để AI làm một dự án phức tạp từ A đến Z chưa?
    • Có bằng chứng gì cho thấy big tech thực sự làm kiểu copy rồi đổi style này không, và liệu họ có thể dựa vào góc hợp pháp không? Dù đào tạo AI có thể được xem là fair use, AI không phải chiếc hộp ma thuật xóa bản quyền.
    • Nếu kỹ thuật đó khả thi, chi phí phát triển thư viện sẽ giảm mạnh và maintainer OSS cũng có thể tạo ra nhiều thứ hơn mà không tốn công sức quá nhiều.
  • Đây là ví dụ rất điển hình của lối tuyển dụng mùa hè 2025: rất có thể CV và cover letter của bạn không được đọc và bị lọc tự động. Câu "team không còn thời gian xem thêm đơn" nghe có vẻ rất đúng: họ không hề làm gì cả, tới mức không nhận ra vị trí và ứng viên có hợp nhau hay không.
    • Mình thấy trả lời "chúng tôi chưa xem hồ sơ" còn gây hy vọng hơn, vì sẽ có thêm cơ hội thử nhiều phiên bản CV.
    • Từ góc nhìn Anthropic, việc họ nhận hàng đống đơn toàn cầu có thể hợp lý; đây là công ty cực kỳ hot nên có thể có hàng chục nghìn ứng viên, cộng thêm truyền thông luôn nhắc hợp đồng 100 triệu USD cho một AI talent nên cấu trúc ứng tuyển càng nặng nề.
    • Một xu hướng tuyển dụng khác trong ngành AI mùa này là Mark Zuckerberg ném hơn 100 triệu USD cho các dev nổi tiếng; OP chỉ cần thêm "tác giả thư viện tương tác máy tính của Anthropic" vào profile LinkedIn, chắc hẳn sẽ đầy gara xe Ferrari.
    • Mình nghĩ thời điểm đóng góp OSS có ý nghĩa để rồi được tuyển vào các tech hãng hot đã đi xa rồi. Nếu không có ai trong nội bộ recommend thì dù bạn viết toàn bộ phần lõi, nhà tuyển dụng vẫn không để ý. Giờ thì mình không còn muốn đầu tư thời gian vào OSS nữa: còn nhà, hóa đơn cần trả và không muốn biến thời gian của mình thành tài sản cho big tech rồi bị phản bội; không xem đó là khoản đầu tư tốt, và đôi lúc thấy buồn vì thế giới đã đổi.
    • Anthropic là công ty AI nên chắc phải dùng AI lọc CV; nhưng việc bỏ qua người giỏi như vậy cho thấy bộ lọc CV bằng AI của họ cũng chẳng hữu ích.
  • Có phải còn do vấn đề địa lý không? Anthropic đặt tại San Francisco còn tác giả ở Munich nên có thể họ hiện chưa muốn tuyển ngoài Mỹ; xét bối cảnh visa Mỹ thì khả năng đó khá cao.
    • Công ty mình nhỏ hơn nhiều nhưng vẫn tuyển nhân sự ở nhiều nước, không nhất thiết phải có văn phòng vật lý; mình nghĩ phần lớn quốc gia không ràng buộc điều đó.
    • London cũng tương tự.
  • Mình nghĩ tuyển dụng IT hiện rất mâu thuẫn: công ty không tuyển ai thiếu project trong portfolio, nhưng chỉ cần được vài sao trên GitHub là họ đã dùng sản phẩm đó cho mục tiêu công ty rồi và nói "không hứng thú tuyển", thành ra rất hụt hẫng.
    • Có vẻ mình đang tự biện minh cho hành trình xin việc khó khăn bằng những kịch bản như vậy trong đầu.
    • Riêng mình, mình còn đã dọn sạch portfolio và chỉ nhấn mạnh kinh nghiệm thì kết quả lại tốt hơn hẳn.
  • Mình không chắc mình có đúng hay không, nhưng nghĩ rằng dev độc lập dùng license OSS quá hào phóng là không ổn. Công ty dùng miễn phí và không đóng góp; nếu không có phần mềm đó họ đã phải thuê dev hoặc outsource rồi, nhưng nhờ OSS họ tiết kiệm nhân sự nên làm giá trị kỹ sư của big tech giảm. Chưa có dữ liệu cho thấy việc đăng OSS rồi chuyển thành được tuyển dụng.
    • Mình đồng ý. Nếu thật sự muốn làm OSS vì tâm hồn trong sáng, thì giấy phép kiểu bắt buộc mở như GPL mới đúng; nếu không thì chấp nhận việc cung cấp miễn phí cho các big tech giàu có mà không kỳ vọng gì, vì điều khoản bản quyền cũng không có điều khoản đảm bảo trả công cho tác giả.
  • Khi đọc phần 'tác giả biết vị trí mở của Anthropic qua bạn của bạn', thay vì viết cover letter nộp thì đáng lẽ nên gặp trực tiếp, ngồi cà phê và nói chuyện như bạn; trong tuyển dụng, yếu tố then chốt là chứng minh 'chúng ta muốn làm việc cùng nhau', không phải chỉ đủ điều kiện apply.
    • Chiến lược quan trọng là làm sao để tên mình không lọt vào hàng đợi ứng tuyển chính thức, buộc HR phải tự xem xét nội bộ bằng tay. Nếu họ cần bạn, họ sẽ chủ động liên hệ trước, và nhờ đó bạn có thể bỏ qua quy trình tuyển dụng phiền toái.