3 điểm bởi GN⁺ 2024-02-12 | 1 bình luận | Chia sẻ qua WhatsApp
  • Một lập trình viên phần mềm bị sa thải vào cuối năm 2023 đã liên hệ với 30 công ty khi tìm việc mới, nhận 8 lời từ chối, 6 nơi không phản hồi và 3 lời mời làm việc, qua đó xác nhận thị trường chặt chẽ hơn dự đoán
  • Các kênh tìm việc chủ yếu là Open to work trên LinkedIn, danh sách các công ty đã quan tâm từ trước và các trang ghép cặp lập trình viên như Demando; việc tìm kiếm vị trí từ xa và các tin tuyển dụng cũ khó có thể tin cậy
  • Quy trình tuyển dụng điển hình kéo dài 4–5 vòng, từ recruiter, manager, phỏng vấn kỹ thuật, bài tập đến phỏng vấn với CTO/nhà sáng lập; các bài kiểm tra code dạng bài tập tốn thời gian hơn rất nhiều so với công ty nói
  • Đã chuẩn bị câu trả lời STAR cho câu hỏi hành vi, snippet code Python·Go, Leetcode, GoLand, ChatGPT, GitHub Copilot..., nhưng trong live coding thì do căng thẳng nên khả năng suy nghĩ kém hơn bình thường
  • Trong một thị trường khó hơn, yêu cầu kinh nghiệm theo ngôn ngữ, phản hồi chậm, việc xác nhận khung lương và điều phối lịch giữa nhiều quy trình là những yếu tố quyết định việc đàm phán offer và lựa chọn cuối cùng

Tình hình ngay sau khi bị sa thải và cách chuẩn bị

  • Cuối tháng 10 năm ngoái, công ty sa thải 17 người, trong đó có 8 lập trình viên
  • Chỉ vài phút sau cuộc gọi Zoom với CEO, toàn bộ quyền truy cập vào tài nguyên công ty bị cắt
    • Không thể push nhiều thay đổi đang làm dở
    • Cũng khó để chào tạm biệt đồng nghiệp một cách đàng hoàng
  • Nhiều đồng nghiệp đã liên hệ qua LinkedIn, một số còn sắp xếp cuộc gọi Zoom để có thể nói chuyện về tình hình và chào nhau
  • Những lần chuyển việc trước đây hầu hết đều diễn ra khi vẫn đang làm và theo ý muốn cá nhân; sau khi hoàn tất trong 3 tháng báo trước tiêu chuẩn ở Thụy Điển thì chuyển sang công ty mới
  • Việc bị chặn truy cập ngay lập tức lại giúp có thể dành toàn bộ thời gian tìm việc trong lúc vẫn nhận lương
  • Vì luôn nghĩ rằng phải có khả năng tìm việc mới bất cứ lúc nào, tác giả duy trì danh sách các công ty muốn làm và giữ quan hệ tốt với các recruiter từng liên hệ trước đây

Các kênh tìm việc

  • Tận dụng LinkedIn

    • Chuyển trạng thái Open to work trên LinkedIn từ “Flexible, I am casually looking” sang “Immediately, I’m actively applying”
    • Giới hạn phạm vi hiển thị cho recruiter thay vì toàn bộ thành viên LinkedIn, và không dùng khung ảnh xanh #OpenToWork
    • Sau khi đổi trạng thái, khoảng tuần đầu tiên mỗi ngày nhận được liên hệ từ khoảng 5 recruiter
    • Chất lượng vai trò tương đương bình thường, nhưng tần suất liên hệ cao hơn nhiều
    • Vừa xem lại danh sách công ty quan tâm, vừa kiểm tra tab Jobs trên trang công ty LinkedIn và trang tuyển dụng của từng công ty
    • LinkedIn tiện ở chỗ có thể xem số lượng ứng viên, thời điểm đăng tin, có người quen trong công ty hay không, và ai là người đăng tin
    • Tìm kiếm bằng từ khóa như “Golang Stockholm”, mục “Recommended for you”, và “Jobs where you’d be a top applicant” của Premium cũng hiển thị được một số tin khá ổn
    • Tính năng tìm kiếm hoàn toàn từ xa của LinkedIn không đáng tin lắm
      • Ví dụ có lẫn cả các vai trò chỉ làm từ xa trong phạm vi Anh
      • Tác giả cho rằng sẽ tốt hơn nếu có thể chia phạm vi như hoàn toàn từ xa trong Thụy Điển, trong EU, hay trên toàn cầu
    • Khó chỉ xem các tin mới nhất vì phải liên tục lướt qua các tin đã xem
    • Sau đó phát hiện ra cách dùng Google, đặt khoảng thời gian là tuần trước và tìm kiểu golang fully remote site:linkedin.com/jobs
    • Đã liên hệ lại khoảng 15 recruiter từng nói chuyện trên LinkedIn trước đây nhưng không có kết quả
    • Cũng có trường hợp gửi InMail cho hiring manager, nhưng không nhận được phản hồi
  • Các trang và cách tìm khác

    • Sử dụng trang ghép cặp lập trình viên-nhà tuyển dụng ở Thụy Điển là Demando
    • Kích hoạt hồ sơ ghi rõ kỹ năng và mức lương tối thiểu mong muốn; sau này đã nhận được một offer từ một công ty liên hệ qua trang này
    • Cũng tìm thấy trên Demando một tin tuyển dụng của công ty khác mà không thấy trên LinkedIn và đã nhận được offer từ đó
    • Có xem nhanh RemoteOK nhưng không tìm được tin nào đáng ứng tuyển, và nhìn chung cảm thấy chất lượng tin thấp hơn LinkedIn
    • Efinancialcareers hầu như không có vai trò hoàn toàn từ xa và cũng khó tìm kiếm
    • Cũng xem thread hàng tháng Who’s hiring của Hacker News nhưng khó tìm được mục liên quan
    • Ngoài ra còn phát hiện cách tìm công ty tương tự bằng Google với các cụm như “competitor to” hoặc “alternative to” cộng tên công ty

Quản lý hồ sơ ứng tuyển và trải nghiệm phản hồi

  • Mọi recruiter đều yêu cầu CV dù thông tin gần giống hồ sơ LinkedIn
  • Khi ứng tuyển trực tiếp vào công ty, đa số cũng yêu cầu CV, và nhiều nơi còn đòi thư giới thiệu
    • Các thư giới thiệu đã viết được lưu lại, rồi khi nộp đơn mới thì sao chép bản cũ giống nhất để chỉnh sửa
  • Để quản lý các đơn ứng tuyển, tác giả tạo một bảng Excel ghi tên công ty, ngày ứng tuyển, recruiter hoặc người phụ trách, cùng ghi chú chung
    • Tổng cộng có 30 mục, nhưng không phải tất cả đều trở thành hồ sơ ứng tuyển chính thức
  • Trong số các công ty đã ứng tuyển, 6 nơi hoàn toàn không phản hồi
    • Một số tin tuyển dụng đã cũ hơn một tháng
    • Nếu tin tuyển dụng không còn hiệu lực thì theo tác giả nên gỡ xuống
  • Nếu chưa từng tiếp xúc với ai trong công ty thì việc không phản hồi không quá nghiêm trọng, nhưng im lặng sau phỏng vấn khiến hình ảnh công ty xấu đi
    • Có một công ty nói sẽ sắp xếp phỏng vấn với manager sau buổi nói chuyện ban đầu với recruiter, nhưng rồi mất liên lạc
    • Hai tuần sau gửi email vẫn không ai trả lời; chỉ đến khi lại thêm 2 tuần nữa và gửi rằng mình không còn hứng thú thì mới nhận được lời xin lỗi hời hợt

Công cụ trả phí và tài liệu chuẩn bị

  • Đã trả tiền LinkedIn Premium trong một tháng nhưng thấy ít hữu ích hơn kỳ vọng
    • Không chắc có xem thêm được ai đã vào profile hay không, và giá trị cho tìm việc khá hạn chế
    • Cũng gửi vài InMail nhưng không giúp được nhiều
    • “Jobs where you’d be a top applicant” cũng không mang lại giá trị quyết định
    • Sau một tháng thì hủy, và trước khi hủy có nhận được lựa chọn gia hạn thêm 2 tháng với giá 1 tháng
  • Vì đang tìm việc Go nên đã trả phí giấy phép GoLand trong 2 tháng để luyện tập trong môi trường quen thuộc
  • Cũng thử GitHub Copilot, nhưng không dùng nhiều để chắc chắn rằng trong phỏng vấn có thể chứng minh mình tự code
  • Gói ChatGPT đang có sẵn hữu ích trong việc nhanh chóng tạo khung cơ bản cho những gì cần làm ở nhiều bài test dạng bài tập
  • Bản trả phí của Leetcode đáng dùng cho việc chuẩn bị phỏng vấn vì có thể xem lời giải
  • Một công ty dùng bài test IQ của Alva Labs, nên đã mua Alva Logic Cram Course của 12minprep để luyện
    • Nhờ luyện trước nên cảm thấy làm bài test tốt hơn nhiều

Thị trường khó hơn và yêu cầu kinh nghiệm theo ngôn ngữ

  • So với 10 năm trước, tác giả cảm thấy thị trường tuyển dụng lập trình viên hiện nay rõ ràng khó hơn
  • Vẫn có nhiều tin có thể ứng tuyển, nhưng số ứng viên cho mỗi vai trò có vẻ nhiều hơn trước
    • Trong các tin trên LinkedIn có hiển thị số ứng viên, nhiều tin cho thấy hơn 100 người đã ứng tuyển
  • Số lượng công ty không phản hồi ngay cả với những vai trò mà tác giả nghĩ mình phù hợp cũng là bằng chứng cho thấy thị trường khó hơn
  • Yêu cầu kinh nghiệm với ngôn ngữ cụ thể ngày càng tăng
    • Trước đây, tác giả từng bắt đầu các công việc viết bằng Python hay Golang mà không hề có kinh nghiệm trước với chính ngôn ngữ đó, và vẫn nhanh chóng đạt năng suất
    • Tác giả cho rằng nhiều ngôn ngữ mệnh lệnh khá giống nhau nên có thể thích nghi
    • Nhưng nhiều recruiter truyền đạt rằng phía công ty tuyển dụng đưa ra yêu cầu cứng là 2–3 năm kinh nghiệm với một ngôn ngữ cụ thể

Quy trình phỏng vấn và cách chuẩn bị

  • Quy trình và gánh nặng lịch trình

    • Quy trình tuyển dụng điển hình gồm 4–5 buổi phỏng vấn
      • Phỏng vấn ban đầu với recruiter
      • Phỏng vấn với hiring manager
      • 1–2 vòng phỏng vấn kỹ thuật
      • Bài test dạng bài tập hoặc live coding
      • Tùy trường hợp có thêm phỏng vấn với product manager, CTO hoặc nhà sáng lập
    • Các vai trò từ xa được thực hiện qua Zoom, Meet hoặc Teams
    • Các vị trí tại Stockholm phần lớn muốn phỏng vấn trực tiếp
    • Chỉ một buổi phỏng vấn trực tiếp cũng chiếm nửa ngày vì thời gian đi lại
    • Ngược lại, phỏng vấn từ xa có thể xếp nhiều buổi trong một ngày
    • Phỏng vấn trực tiếp có lợi thế là cảm nhận được con người đối diện và không khí văn phòng rõ hơn
  • Câu hỏi hành vi và chuẩn bị kỹ thuật

    • Tác giả có sẵn một tài liệu Word tên Interview Tips để ghi lại những điều cần xem trước khi phỏng vấn
    • Lần này bổ sung thêm mục Behavioral Questions để chuẩn bị cho các câu như “hãy kể về lúc bạn bất đồng với đồng nghiệp”
    • Chuẩn bị câu trả lời theo khung STAR: Situation, Task, Action, Result, Reflection
    • Xem danh sách câu hỏi Rock the Behavioral Interview của Leetcode và ghi ra các ví dụ có thể dùng
    • Lần này không có buổi phỏng vấn nào bị trượt vì câu hỏi hành vi
    • Cũng ghi các snippet code ngắn bằng Python và Go vào tài liệu
      • Mục đích là để nhanh chóng nhớ lại các mẫu và thành ngữ phổ biến
      • Tất cả snippet đều được chạy thử để kiểm tra không có lỗi và có kèm đầu ra liên quan
    • Cũng xem video của Gergely Orosz: Confessions from a Big Tech Hiring Manager: Tips for Software Engineering Interviews
    • Tác giả rút ra rằng trong phỏng vấn kỹ thuật, việc thể hiện sự tò mò, tinh thần hợp tác và biết đặt câu hỏi là rất quan trọng

Trải nghiệm phỏng vấn và coding test

  • Phỏng vấn thông thường

    • Trong các vòng đầu, tác giả công khai rằng mình bị sa thải khỏi công việc trước vì công ty cần cắt giảm chi phí
    • Có vẻ việc nói ra điều đó không gây bất lợi
    • Khi nói chuyện với recruiter hoặc manager, vì đã rất rõ mình muốn công việc gì và điểm mạnh của bản thân là gì nên không bị căng thẳng
    • Với các phỏng vấn kỹ thuật không phải code, nếu là công nghệ quen thuộc thì cũng không thấy áp lực; chỉ có một lần thất bại
    • Trong một câu hỏi về việc nên đặt timeout kết nối cơ sở dữ liệu là bao nhiêu, tác giả đưa ra con số quá lớn, và câu trả lời đó dẫn đến bị loại
  • Bài test dạng bài tập

    • So với lần phỏng vấn gần nhất vài năm trước, số lượng bài test dạng bài tập đã tăng lên
    • Loại bài test này ít căng thẳng hơn live coding nhưng tốn thời gian hơn rất nhiều
    • Dù công ty nói gì đi nữa, tác giả cho rằng mỗi bài đều mất ít nhất 6 tiếng
    • Với công ty, yêu cầu bài tập sớm là chi phí thấp; nhưng với người tìm việc, đó là khoản đầu tư thời gian lớn với kết quả chưa chắc chắn
    • Tổng cộng đã làm 5 bài test dạng bài tập
      • 2 bài Java
      • 2 bài Python
      • 1 bài Go
    • Tác giả xem khoảng 1,5 bài là thất bại
    • Ở bài Go, tác giả nộp một lời giải chạy được nhưng không có test
      • Dù không phải yêu cầu ghi rõ, tác giả cho rằng lẽ ra nên thêm test
      • Tác giả cũng cảm thấy chưa rõ liệu bài đó có được chạy lặp lại hay không, nhưng việc không thêm caching để cải thiện tốc độ cũng trở thành lý do thất bại
    • Ở một bài khác, các test sẵn có đều qua nhưng test ẩn lại lộ ra 2 lỗi liên quan đến đầu vào rỗng
      • Tác giả cho rằng nếu là công việc thực tế thì đã tự viết thêm test
      • Cuối cùng vẫn nhận được offer từ công ty đó, nên tính là nửa thất bại
  • Live coding

    • Trong live coding, do căng thẳng nên tác giả cảm thấy đầu óc chỉ hoạt động khoảng 50% so với bình thường
    • Trong đợt này có 3 bài live coding qua và 2 bài trượt
    • Trường hợp trượt đầu tiên là bài viết một chương trình cờ vua bị giới hạn
      • Chỉ cần hỗ trợ 2 loại quân, nhưng vẫn phải có cấu trúc dự án, mô hình dữ liệu, nước đi hợp lệ và test
      • Thời gian nộp là trong 2 tiếng nên rất gấp
      • Phần lớn đã chạy được, nhưng không hoàn thiện toàn bộ chức năng và phần code di chuyển còn lỗi
    • Ở một trường hợp trượt khác, các test trong repository mã khởi đầu do công ty chuẩn bị không chạy được, và việc cấu hình môi trường cũng mất thời gian
      • Tác giả phải hỏi khá nhiều về cách logic nên hoạt động, và cuối cùng thời gian bị kéo dài quá mức
    • Tất cả các bài live coding đều dùng IDE trên máy cá nhân và chia sẻ màn hình qua Zoom

Đàm phán lương và lựa chọn

  • Ban đầu có vài lần phỏng vấn bị hủy vì đưa ra mức lương quá cao
  • Sau đó tác giả đổi sang cách cho biết mức lương trong 4 năm gần đây để gián tiếp truyền đạt kỳ vọng
    • Nếu công ty nói không thể trả đến mức đó, tác giả trả lời rằng hiện đang thất nghiệp nên không có mức tối thiểu tuyệt đối và còn tùy đề xuất
    • Cách này giúp tiếp tục đi trong quy trình và mở ra cơ hội dẫn tới đề xuất tốt hơn về sau
  • Sau khi nhận offer đầu tiên, việc đàm phán trở nên dễ hơn
  • Khi hỏi về khung lương của vai trò, tác giả ngạc nhiên vì khá thường xuyên nhận được câu trả lời
    • Điều này hữu ích vì có thể từ chối sớm những công ty thấp hơn mức chấp nhận được
  • Có một công ty rất thích nên tác giả không hỏi trước về lương, rồi sau nhiều vòng phỏng vấn và bài tập lại nhận một offer rất thấp
    • Tác giả cho rằng mình đã lãng phí thời gian vì không xác nhận trước
  • Cảm nhận về mặt bằng lương lập trình viên ở Stockholm cũng trở nên tốt hơn
    • Ở Thụy Điển thường nghĩ theo lương tháng
    • Cũng phải tính xem có bao gồm đóng góp hưu trí hay không; đa số là có và ngầm cộng thêm 10–15%
    • Mức lương rất trung bình cho lập trình viên là khoảng 55K~65K SEK mỗi tháng
    • Mức trên 80K SEK mỗi tháng khó hơn nhưng không phải là không thể ngay cả trong thị trường chặt chẽ
    • Ngoài lương, có công ty còn đưa ra option, equity hoặc bonus
  • Khi chọn cuối cùng, ngoài lương còn cân nhắc độ thú vị của sản phẩm và công ty, ngôn ngữ sẽ dùng, những gì có thể học được và đồng nghiệp

Kết quả cuối cùng và những điều rút ra

  • Có một công ty tiến triển rất tích cực, thậm chí yêu cầu 2 người tham chiếu, nhưng ngày hôm sau lại chọn ứng viên khác
    • Tác giả thất vọng vì đã làm mất thời gian của 2 người tham chiếu
  • Việc tìm việc rốt cuộc khá giống trò chơi số lượng
    • Dù thất bại ở nhiều buổi phỏng vấn, chỉ cần một công ty thành công là đã có thể có việc mới
  • Cuối cùng tác giả có 3,5 offer để cân nhắc
    • Một công ty chưa đưa ra offer chính thức nhưng có vẻ chắc chắn sẽ thấp hơn hai offer đã có, nên được tính là nửa
  • Tác giả cố điều phối để quy trình của nhiều công ty kết thúc vào những thời điểm gần nhau
    • Chẳng hạn trì hoãn một số buổi phỏng vấn hoặc sắp xếp một số buổi sớm nhất có thể
  • Có nhiều offer giúp vị thế đàm phán tốt hơn nhiều, và cuối cùng tác giả nhận được vị trí senior developer tại Swissblock với cả công việc thú vị lẫn mức lương tốt
  • Tìm việc mới là một khối lượng công việc rất lớn, đến cuối tuần vẫn còn việc phải chuẩn bị nên khó mà nghỉ ngơi
  • Nếu tính cả 4–5 vòng phỏng vấn, bài tập, nghiên cứu công ty, điều phối lịch và cả bị từ chối thì có thể mất vài tháng
  • Khó tự đánh giá kết quả phỏng vấn, và tác giả thường ngạc nhiên mỗi khi bị loại
  • Có những đồng nghiệp cũ để cùng trao đổi về quá trình tìm việc là một trợ giúp rất lớn
  • Recruiter phản hồi nhanh rất quan trọng để xây dựng sự tin tưởng với công ty
  • Khi đồng nghiệp bị sa thải, việc liên hệ qua LinkedIn hay kênh khác để chào tạm biệt có ý nghĩa rất lớn với người trong cuộc

1 bình luận

 
GN⁺ 2024-02-12
Các ý kiến trên Hacker News
  • Là một kỹ sư ML tại FAANG, tôi đã thụ động tìm hiểu cơ hội chuyển việc trong nửa năm qua, nhưng thực tế hoàn toàn không giống quan niệm phổ biến rằng các công ty sẽ kéo đến với cả đống tiền
    Nhờ hồ sơ của mình, tôi nhận được nhiều tin nhắn từ recruiter, nhưng hơn một nửa biến mất giữa chừng trong quy trình; sự quan tâm của recruiter chỉ là một chỉ số phù phiếm để nâng tự trọng nếu nó không chuyển thành offer
    Nhu cầu thì nhiều nhưng tiêu chuẩn tuyển dụng cũng rất cao, các công ty đòi kinh nghiệm đúng với tech stack chính xác họ đang dùng. Có vài framework ML chủ đạo, nhưng nhiều vị trí đã loại tôi chỉ vì tôi chỉ quen một trong số đó; có công ty còn loại vì tôi có 6 năm kinh nghiệm với một công nghệ cụ thể, không đạt yêu cầu tối thiểu 8 năm
    Kết quả đến nay chỉ là 1 lần bị từ chối và 2 offer hạ cấp xuống senior, trong khi mục tiêu của tôi là Staff+. Mức đãi ngộ phần lớn cũng bị chặn trần ở khoảng một nửa tổng thu nhập hiện tại, và chỉ đếm trên đầu ngón tay những công ty có thể trả hơn
    Nhìn chung, thị trường kỹ sư ML khá hơn kỹ sư phần mềm, nhưng hoàn toàn khác thị trường quá nóng giai đoạn 2020–2022

    • Giờ đây danh tiếng FAANG không còn đồng đều nữa
      Kỹ sư Google nhìn chung vẫn được xem là nhân lực cao cấp, kỹ sư Apple cũng có danh tiếng tốt nhưng hiếm khi xuất hiện trên thị trường. Kỹ sư Facebook/Meta thường trên mức trung bình, nhưng có hình ảnh là những người cạnh tranh thăng tiến nội bộ rất quyết liệt
      Nếu tìm việc khó, người ta có thể nghĩ đến khả năng đó là Amazon. Quy trình tuyển dụng ồ ạt rồi đưa vào pipeline PIP của Amazon, ít nhất theo trải nghiệm của tôi, đã làm hỏng danh tiếng của họ; trong vài năm gần đây, các cựu kỹ sư Amazon tôi từng làm việc cùng thường có năng lực dưới trung bình
      Giờ gom chung là “FAANG” không còn mấy ý nghĩa, và kỳ vọng đối với kỹ sư xuất thân từ từng công ty khá khác nhau. Hơn nữa, tất cả đều không còn được chú ý như vài năm trước, và tiêu chí đã chuyển sang yêu cầu khả năng sống sót trong tập đoàn khổng lồ hơn là năng lực kỹ thuật thuần túy
    • Giả định đúng hơn là FAANG ném tiền vào ứng viên ngoài FAANG, chứ không phải chiều ngược lại
      Còng tay vàng là có thật và có chủ đích; cũng không có nhiều công ty có bài toán đủ lớn để biện minh ROI cho mức đãi ngộ ngang FAANG
      Ngoài ra, trong stack nội bộ của FAANG có nhiều công cụ nội bộ xuất sắc mà bên ngoài không có, nên nảy sinh nghi ngờ rằng “người này là chuyên gia thật sự, hay là chuyên gia giỏi dùng stack nội bộ của Google”. Liệu họ có tạo năng suất ngay không, hay trước hết phải xây lại các công cụ đó cũng là một vấn đề
      Ai cũng muốn nói với CEO hoặc nhà đầu tư rằng mình đã kéo được nhân tài FAANG về, nhưng rất hiếm công ty có hầu bao hoặc bối cảnh chính xác để tham gia cuộc đấu giá thật sự
      Năm 2020, khi làm hiring manager tuyển kỹ sư ML, tôi cũng gặp vấn đề này; ở các công ty tầm trung cũng thường có bài toán “rốt cuộc nên dùng kỹ sư ML vào việc gì”. Nếu không phải data scientist hay kỹ sư phần mềm đa năng thì khó tạo ra vai trò ở giữa; và nếu đội dữ liệu không quen với workflow và công cụ engineering, thì ngay cả khi kỹ sư ML xây được một hệ thống được version control và gọn gàng, nó vẫn dễ bị bỏ qua vì không phải KPI
    • Việc học mọi tech stack phổ biến là không thực tế, nhưng khi kỹ sư phần mềm hoặc các kỹ sư khác tìm việc, dành 1–2 tháng để khảo sát và làm quen với toàn bộ bức tranh trong lĩnh vực quan tâm sẽ hữu ích
      Nếu không định làm đúng cùng một việc ở công ty khác, trong phỏng vấn bạn cần chuẩn bị để cả những công nghệ thực ra muốn làm quen sau khi vào công ty cũng trông như mình là chuyên gia. Tùy trường hợp, có thể phải phóng đại kinh nghiệm đôi chút
      Chuyên môn rốt cuộc nên nằm ở cách tư duy hơn là những sự thật biết được, nhưng thị trường tuyển dụng không nhìn như vậy, nên cần sẵn sàng tô vẽ cho tốt rồi sau đó học đêm để bù vào
      Ngoài ra, level không ánh xạ nguyên xi giữa các môi trường. Nếu tìm được việc phù hợp với mình thì có thể đi lên; còn quá ám ảnh với level hoặc đãi ngộ thì ngược lại có thể làm hẹp lựa chọn
    • Tôi không làm ML cũng không ở FAANG, nhưng tình hình đãi ngộ gần đây ở EU cũng tương tự
      Dù cảm thấy mình bị định giá khá thấp so với kinh nghiệm và trách nhiệm, đãi ngộ và phúc lợi trong các tin tuyển dụng gần đây vẫn tệ hại
      Trái với điều thường được nói ở EU, nhiều tin tuyển dụng quảng bá “hybrid” và “linh hoạt”, nhưng đến cuối vòng phỏng vấn mới tiết lộ rằng cần lên văn phòng 3–4 ngày mỗi tuần và họ thích họp trực tiếp vì “hợp tác”
      Dù nói về điều chỉnh theo lạm phát, tiền lương đang đi xuống; EU có cảm giác đang học theo sự quá nóng và bất ổn kiểu Mỹ nhưng lại không bắt kịp mức lương của Mỹ
    • Nếu đang làm ML ở FAANG, tôi tò mò ngoài nhiều tiền hơn thì bạn muốn nhận được gì ở công ty khác
      Ví dụ, khó có thể có được nhiều chip hơn; trong môi trường vốn đã thiếu tài nguyên tính toán, rất có thể bạn sẽ chạy ít thử nghiệm hơn và throughput cũng giảm
  • Tôi nghĩ tình trạng khó tuyển dụng hiện nay ở Mỹ có mặt xấu xa hơn chứ không chỉ đơn giản là các công ty trở nên kén chọn
    Thứ nhất, các công ty Mỹ đang học được cách thuê đội ngũ ở nước ngoài với chi phí thấp hơn. Mỗi tuần tôi nhận nhiều email chào cung cấp đội ngũ Nam Mỹ hoặc Ấn Độ với đơn giá thấp, và ở công ty trước, tôi cũng tận mắt thấy họ cắt giảm mạnh nhân sự Mỹ/Bắc Mỹ và thay bằng đội Ấn Độ chỉ vì tiết kiệm chi phí
    Thứ hai, có vẻ cũng có xu hướng các công ty Mỹ muốn giành lại quyền kiểm soát mà người lao động đã có được trong thời kỳ Covid
    Tôi mới bắt đầu tìm việc mà đã thấy bức bối, gặp đủ chuyện như bị biến mất, không phản hồi, hay “số năm kinh nghiệm chưa đủ so với yêu cầu”. Ví dụ kiểu bắt buộc có 3 năm kinh nghiệm .NET 6

    • Đồng ý. Công ty tôi cũng sa thải công dân Mỹ một cách mất cân đối và ưu tiên tuyển ở Mỹ Latinh
      Hôm nay tôi xem các đối thủ cạnh tranh chính thì thấy một công ty mở hàng loạt việc lập trình ở Mexico, còn công ty khác chủ yếu đang tuyển ở Ấn Độ
      Thứ sẽ lấy đi việc kỹ thuật ở Mỹ không phải ChatGPT mà là các developer rẻ hơn ở những nước khác. Rất nhiều người trong số họ có đủ khả năng tiếng Anh và lập trình, tôi biết vì đã từng làm việc cùng họ
    • Tôi đã nói suốt mấy năm rằng các developer phần mềm ở Bắc Mỹ nên yêu cầu quay lại văn phòng
      Nếu công việc có thể làm từ xa, thì ai đó trên thế giới cũng có thể làm cùng việc đó với chi phí bằng một phần năm
    • Các công ty Mỹ đã biết cách thuê đội ngũ ở nước ngoài với chi phí thấp từ 15–20 năm trước, trong làn sóng outsourcing sang Ấn Độ đầu tiên rồi
    • Giờ đây đây không còn là thuyết âm mưu nữa. Nếu mở danh sách 100 công ty hàng đầu và so sánh khu vực tuyển dụng của 3 năm trước với năm nay, bạn sẽ thấy các khu vực ngoài Mỹ đã tăng lên
  • Trong phần “Các yếu tố cốt lõi của microsite tìm việc”, tôi không làm theo lời khuyên đưa ảnh hồ sơ chuyên nghiệp vào
    Từng làm nhiếp ảnh gia nên tôi học được rằng đứng sau máy ảnh bấm nút vẫn hợp với mình hơn nhiều, và tôi cho rằng trong tuyển dụng ở Mỹ thì không nên có ảnh
    Vì lịch sử phân biệt đối xử kéo dài và những định kiến vẫn còn tồn tại, nếu có thể thì tốt hơn là nên bỏ cả tên, vì tên cũng có thể là manh mối về giới tính, chủng tộc·dân tộc, đẳng cấp caste, nền tảng kinh tế-xã hội
    Ảnh vốn dễ loại khỏi quy trình tuyển dụng và trên thực tế đã từng biến mất ở Mỹ, nhưng các trang kiểu “mạng xã hội” như LinkedIn đã đưa ảnh hồ sơ trở lại hồ sơ xin việc

    • Tác giả không ở Mỹ mà ở Thụy Điển
      Nghe có vẻ lạ, nhưng ở nhiều nước châu Âu, ảnh hồ sơ xuất hiện rất nổi bật trong CV. Khi lần đầu bắt đầu tuyển dụng cho văn phòng EU tôi đã sốc, nhưng ở địa phương thì họ làm như vậy
      Tôi càng ngạc nhiên hơn vì từng nghe nhiều người nói châu Âu đi trước Mỹ về vấn đề phân biệt đối xử, nhưng trên CV thực tế không chỉ có ảnh hồ sơ mà còn ghi cả tình trạng hôn nhân. Khi tôi yêu cầu recruiter địa phương xóa những thông tin đó, tôi bị nhìn như thể mình mới là người kỳ quặc
    • Khi chuyển từ Úc sang Đức tôi cũng ngạc nhiên vì chuyện này, và nó có vẻ như một thông lệ kiểu châu Âu
      Một số người còn ghi “độc thân” hoặc “đã kết hôn” trong CV, nhưng tôi nghe nói dạo này việc đó đang giảm dần
    • Tôi đã đọc bài viết nhưng không thấy nội dung đó. Có lẽ bài đã được cập nhật
    • Khi được đào tạo phỏng vấn, một trong những lý do người ta nhấn mạnh việc đưa CV vào trình phân tích tự động là để loại bỏ ảnh hoặc các thông tin kiểu đó
    • Dù nói ảnh không phù hợp với tuyển dụng ở Mỹ, có lẽ cũng nên đọc lại lời khuyên về trang phục chuyên nghiệp của Don Burleson: https://www.dba-oracle.com/dress_code.htm
      Việc thể hiện ngoại hình gọn gàng, chuyên nghiệp tạo ra khác biệt thực sự với nhà tuyển dụng, và công ty có thể hợp pháp sa thải hoặc không tuyển vì không đáp ứng các tiêu chuẩn như vậy
  • Tôi không nghi ngờ rằng ngay cả với một lập trình viên dày dạn kinh nghiệm như tác giả cũng cần nỗ lực, nhưng 30 đơn ứng tuyển đổi lấy 3 offer là kết quả như mơ
    Phần lớn người mới vào nghề có lẽ phải nộp hơn 100 đơn để có vài cuộc phỏng vấn, và nếu may mắn thì nhận được một offer

    • Tác giả có hơn 30 năm kinh nghiệm và ứng tuyển vào các công việc dưới 100 nghìn đô la một năm
      So với mức trung bình của lập trình viên ở Mỹ, kỳ vọng đó khá khiêm tốn
    • Có vẻ tôi đã may mắn khi bắt đầu chuyển nghề vào năm 2017
      Tôi ứng tuyển 6 nơi, phỏng vấn 4 nơi và nhận được 2 offer; thực chất là junior nhưng lại ứng tuyển vị trí mid-level
      Tôi muốn tin rằng vì số cuộc phỏng vấn ít nên tôi có thể dồn nhiệt huyết và sự tập trung vào chúng, nhưng cũng có thể đó là thiên lệch kẻ sống sót
      Sau đó, qua 3 lần phỏng vấn, tôi nhận được 2 offer tốt, với mức đãi ngộ trên phân vị 50 cho vai trò kỹ sư phần mềm ở Mỹ. Tôi không nghĩ mình đặc biệt thông minh đến mức áp đảo người khác
      Tôi không có năng lượng cho chiến lược ứng tuyển kiểu trò chơi con số, ghét bản thân việc phỏng vấn, và khi live coding thì đầu óc tôi đông cứng. Vì vậy tôi chỉ ứng tuyển vào những nơi tôi thật sự muốn làm, và nơi công ty cũng có vẻ sẽ chào đón một lập trình viên bình thường biết hợp tác tốt
      Tôi có thể thật lòng hứng thú với cả những công việc bình thường, và có quan điểm mạnh nhưng dễ thay đổi. Có lẽ hai điều đó là bí quyết của tôi
    • Để so sánh, khi tìm việc ở Stockholm vào giữa năm 2022, tôi ứng tuyển 12 nơi, nhận được offer từ 5 nơi, và bị từ chối rõ ràng ở 2 nơi
      5 nơi còn lại hoặc là tôi từ chối, hoặc không có thời gian hoàn tất quy trình. Thị trường hiện nay khó tìm việc hơn khi đó rất nhiều
    • Từ góc nhìn của một lập trình viên senior, tôi cũng cảm thấy câu chuyện không khó khăn như tôi dự đoán khi đọc tiêu đề
    • Không biết có phải rất may mắn không, nhưng khi nói chuyện với bạn bè, tôi đã tìm được ba công việc khác nhau nhờ giới thiệu
      Tôi chưa từng thật sự nộp đơn hay phỏng vấn đúng nghĩa, và có cảm giác một ngày nào đó điều này sẽ khiến tôi vấp ngã
  • Bài tập yêu cầu viết trong 2 giờ một chương trình cờ vua giới hạn chỉ hỗ trợ hai loại nước đi không hề dễ
    Tôi từng tự viết chương trình cờ vua, nhưng tôi nghi ngờ liệu trong 2 giờ có thể dựng cấu trúc dự án, mô hình dữ liệu, nước đi hợp lệ và test hay không; kể cả làm được thì có lẽ mã sẽ đầy lỗi

    • Gần đây tôi đã triển khai thứ tương tự, chỉ có nước đi của vua và xe, không đưa cả chiếu hay chiếu hết vào, và ở mức bắt được vua là thắng
      Vậy mà vẫn mất khoảng 2,5 giờ
    • Nếu yêu cầu về chiến lược thấp thì đây có vẻ là bài có thể giải trong 2 giờ
      Nghe như một triển khai khá máy móc và thẳng tuyến
  • Việc tuyển dụng thông thường giờ có vòng đầu với recruiter, phỏng vấn với hiring manager, một hai vòng phỏng vấn kỹ thuật, đôi khi thêm cả phỏng vấn với product manager hoặc CTO/nhà sáng lập, tổng cộng bốn năm vòng thì không còn mới nữa, nhưng vẫn khá điên rồ

    • Công ty chúng tôi cũng từng để mất ứng viên mà sau 1–2 vòng phỏng vấn đã thấy là phù hợp
      Dù vậy vẫn buộc phải trải qua thêm quy trình phỏng vấn kéo dài vài tuần, và việc này không chỉ điên rồ mà còn là lãng phí thời gian và tài nguyên
    • Từ phía ứng viên, đó là một ngày dài nhưng không hẳn là quá khó chịu
      Thứ nhất, nếu đã tới được vòng sàng lọc qua điện thoại thì gần như chắc chắn sẽ nhận được offer, nên chi phí thời gian thực tế không cao như tưởng. Nếu không có sàng lọc qua điện thoại thì chẳng khác gì hiện trạng; nếu có sàng lọc, có thể kiểm tra xem độ trễ của cả cụm phỏng vấn có dài không, nếu quá dài thì rút sớm. 8 tiếng trong một ngày thì ổn, nhưng 8 tiếng trải dài trong 2 tháng khiến việc tìm việc trở nên phức tạp
      Thứ hai, khi có offer cạnh tranh thì chi phí thời gian trở nên khó chịu. Một ngày phỏng vấn để đổi lấy mức lương tăng 40% thì ổn, nhưng dành trọn 5 ngày cho tìm việc là gánh nặng khi số ngày nghỉ có hạn. Tuy nhiên có vẻ khoảng một nửa nhà tuyển dụng không thực sự yêu cầu bằng chứng về offer cạnh tranh, và nếu đưa ra mức đãi ngộ mong muốn XYZ rồi nói rằng nếu họ đáp ứng thì sẽ ký ngay, họ thường bất ngờ cố gắng đáp ứng
      Thứ ba, một buổi phỏng vấn kỹ thuật trung bình có 10–20 phút giải bài kỹ thuật, còn 30–50 phút là thời gian tìm hiểu ứng viên biết gì về công ty và đội ngũ. Công ty mới luôn có rủi ro và thường cố giấu các dấu hiệu xấu ra bên ngoài, nên ngoài việc điều tra nền tảng ban lãnh đạo, nghe góc nhìn hiện tại từ nhiều thành viên trong đội giúp tránh sớm các tình huống có vấn đề
    • Cũng cần nghĩ từ phía những người tuyển dụng
      Nếu chỉ offer cho 1% số ứng viên đã phỏng vấn mà vẫn có 30% thất bại trong thời gian thử việc, thì tuyển dụng là việc cực kỳ tốn thời gian với tất cả mọi người. Người giỏi khó tìm, và việc tốt cũng khó kiếm
    • Cũng không điên rồ đến mức đó. Nếu một số vòng chỉ 30 phút, phỏng vấn kỹ thuật khoảng 60 phút, thì tổng cộng chừng 5 tiếng
      Trước đây phỏng vấn onsite mất một tiếng đi lại hai chiều, tổng cộng sáu tiếng phỏng vấn, còn có cả bữa trưa; các công ty được săn đón còn bắt làm nhiều vòng như vậy. Có trường hợp phải bay từ nơi khác tới
      Tôi cũng có một người bạn đi phỏng vấn Google rồi bị mắc kẹt ở SF 3 tuần vì bão tuyết ở Bờ Đông, kết quả là bị Accenture sa thải
      So với vậy, 4–6 tiếng phỏng vấn được xếp vào thời gian mong muốn, dù chia ra vài ngày, vẫn tốt hơn nhiều
    • Đến mức này chắc còn phải phỏng vấn cả người quản lý tòa nhà nữa
  • Thị trường kỹ sư phần mềm cũng không tốt, nhưng các vai trò hỗ trợ như engineering manager, product manager, designer, developer relations trông còn tệ hơn nhiều
    Quanh tôi, những người này đặc biệt chật vật khi tìm việc, còn developer thì dù tốc độ chậm hơn và phúc lợi kém hơn vẫn tìm được việc. Không biết có phải chỉ quanh tôi mới vậy không

    • Với tư cách nhà tuyển dụng, và qua các ví dụ xung quanh, tôi cũng thấy tương tự
      Nhìn chung đang lan rộng xu hướng quản trị cho rằng có quá nhiều manager, và có những động thái như Instagram xóa toàn bộ vai trò Technical Program Manager
      Ở công ty đầu tiên, khoảng 50% số người bị sa thải thuộc phía “quản lý”. Đội chúng tôi không còn product manager nữa, và được bảo đừng quan tâm tới thiết kế trừ khi là chuyện lớn. Hai vai trò đó thực tế đã được hấp thụ vào team lead, và giờ người này phụ trách mockup cùng các quyết định sản phẩm
      Ở công ty thứ hai, 70% số người bị sa thải thuộc phía quản lý. Một manager từ chỗ phụ trách một đội 5 người thành phụ trách bốn đội tổng cộng 25 người, và cũng mất cả designer lẫn product owner. Giờ các quyết định đó do product owner còn lại hoặc tech team lead đảm nhận
    • Với người có đủ kinh nghiệm, thị trường trông vẫn lành mạnh
      Công ty chúng tôi cũng đang tuyển, và hộp thư của tôi đầy thư từ các công ty tuyển dụng. Đây là xét theo các vai trò product engineering và leadership
      Thị trường lạnh là với junior, và chưa rõ khi nào, bằng cách nào nó sẽ thay đổi
      Nói thêm là theo chuẩn Silicon Valley, và tôi đã không chuyển đi trong thời kỳ đại dịch. Tôi luôn nghi ngờ rằng cuối cùng có thể sẽ thành ra thế này
  • Làm developer phần mềm ngày nay có cảm giác như phải liên tục xử lý đủ thứ nhảm nhí
    Tôi tự hỏi mọi người có ổn không, và thành thật mà nói tôi quá mệt rồi. Tìm việc là hoạt động bào mòn tâm hồn; gửi đơn ứng tuyển chỉ tốn thời gian, phiền phức một cách không cần thiết, giống một vòng lặp kiểu Sisyphus, và tạo cảm giác đang lãng phí đời mình. Nó không giúp học được gì hữu ích, không tạo ra thứ gì thực tế, không cải thiện bất kỳ phần nào của cuộc sống, và cũng có vẻ không có phương pháp tự động hóa nào đã được kiểm chứng
    Tôi không hiểu vì sao developer phải kiệt sức đến vậy. Phải biết Java, JavaScript, Python, Go, các phương ngữ SQL, scripting như bash và awk, ansible, chef, terraform, hàng chục dịch vụ AWS, nhiều database và implementation, các loại lỗ hổng phổ biến, DNS, TCP-IP, HTTP, WebSocket và các giao thức khác, rồi còn như phải đảo ngược cây nhị phân trong môi trường không trọng lực
    Biểu đồ hoạt động GitHub phải trông như ảnh chụp rừng Amazon từ trên không, phải duy trì blog, phát biểu ở hội nghị, thỉnh thoảng viết cả những bài như paper. Vậy mà vẫn chưa đủ; còn phải giỏi đủ loại phỏng vấn: thuật toán và cấu trúc dữ liệu, theo ngôn ngữ, theo framework, pair programming, thiết kế hệ thống, sản phẩm, kiến thức về công ty/ngành, bài tập, thuyết trình kỹ thuật, và phỏng vấn hành vi
    Ngay cả khi vào được công ty lớn và cảm thấy mình đã “thành công”, tôi cũng không hiểu vì sao lại không thể cảm thấy an toàn. Tôi chỉ thở dài tự hỏi tại sao thay vì xây dựng và sửa chữa thứ gì đó, ta phải sống mãi trong chế độ tìm việc

    • Tôi tò mò pipeline tuyển dụng của những nghề thu nhập cao và được ưa chuộng khác như bác sĩ, luật sư, kỹ sư trong các ngành kỹ thuật thực thụ thì như thế nào
      Muốn biết cách này có phải chỉ đặc biệt với developer phần mềm không
  • Việc mọi recruiter đều đòi CV dù thông tin gần như giống hệt trên LinkedIn trông giống như một vật biểu thị sự đồng ý để họ có thể chuyển cho nhà tuyển dụng
    Cảm giác giống câu chuyện khi tới thăm một nền văn hóa xa lạ, ai đó mời trà trong một cái chén lạ, mình uống một ngụm, rồi sau đó người khác nói rằng vừa rồi mình đã kết hôn

    • Vì vậy nên hỏi recruiter xem họ có liên hệ trực tiếp với hiring manager không, hoặc có thuộc công ty đó không
      Rất nhiều recruiter là bên thứ ba, và việc của họ thường chỉ là nhận CV ứng viên rồi chuyển tiếp, trở thành một tầng ngớ ngẩn nữa chẳng khá hơn ứng tuyển lạnh là mấy
      Cũng thường thấy tin tuyển dụng mà recruiter đem tới đã được các công ty bên thứ ba khác đăng lại trên cùng một site, không đổi dù chỉ một chữ trong mô tả công việc
      Một số recruiter còn yêu cầu tài liệu MS Word để dễ xóa thông tin liên hệ và chèn logo của họ vào
    • Lý do có khả năng cao nhất là vì trong hệ thống HR, tải lên file CV là trường bắt buộc
  • Việc một công ty nào đó dùng bài kiểm tra IQ thật thú vị
    Tôi chưa từng gặp chuyện như vậy, nhưng tuần trước tôi thấy một đơn ứng tuyển có bài kiểm tra “tính cách” hỏi liệu bạn có bỏ phiếu cho ứng viên thiên tả hay ứng viên thiên hữu hay không. Đó là một công ty trong lĩnh vực chăm sóc sức khỏe
    Việc GitHub yêu cầu tôi chấp thuận cho họ dùng AI để xem xét hồ sơ cũng khiến tôi khựng lại một chút. Tôi đã không cho phép, và rõ ràng có cảm giác mình bị bất lợi hơn so với các ứng viên khác

    • Việc hỏi bạn có bỏ phiếu cho ứng viên thiên tả hay thiên hữu hay không lẽ ra đã phải là bất hợp pháp theo nhiều cách rồi
      Và tôi nghĩ các bài kiểm tra tính cách nói chung cũng nên bị coi là bất hợp pháp
    • Tôi không nhớ đã thấy ở đâu, nhưng tôi từng thấy một tin tuyển dụng vị trí lập trình viên yêu cầu làm bài kiểm tra MBTI ngay từ đầu
      Chính là bài kiểm tra hỏi các kiểu tính cách như INFJ, INFP. Việc yêu cầu thứ này cho một công việc coding thật sự rất kỳ quặc; tôi cứ tưởng chỉ cần luyện LeetCode là đủ
    • Các bài tập coding hiện cũng gần như bài kiểm tra IQ rồi, nên thay vì cứ phải tạo ra các bài toán coding độc nhất, có khi làm bài kiểm tra IQ lại đơn giản hơn
    • Tôi cứ tưởng bài kiểm tra IQ là bất hợp pháp