Câu chuyện phỏng vấn - part 1
Thiết kế tính năng cho phép admin tìm ra danh sách top XX sản phẩm được xem nhiều nhất trong 1 khoảng thời gianTìm giải pháp hiện notification cho user trong thời gian thực, ví dụ như status có comment mới, có message gửi đến. Tương tự chức năng của Facebook hay Zalo
Design hệ thống URL Shortener tương tự như tiny URL
Thiết kế autocomplete cho search book giống kiểu lazada hay shopee
Anh A có 10K trong tài khoản, họ xài 2 thiết bị khác nhau để chuyển 10K $ cho 2 người khác nhau cùng một lúc ,Hỏi hệ thống cần xử lí như nào để tránh việc chuyển cho mỗi người 10k $ đều thành công gây thiệt hại tiền cho ứng dụng ?
Ở trên là một vài ví dụ về những câu hỏi phỏng vấn về System Design Interview, apply cho những vị trí như Software Architect, Software Engineer, được các công ty product sử dụng để kiểm tra kiến thức design của ứng viên. Đây là kiểu rất khác so với phỏng vấn banks of questions mà tôi thấy nhiều công ty, ngay cả khách hàng cũng hay xài
Phỏng vấn theo kiểu bộ đề, cái này là cái gì, cái kia là cái gì. Để test kiến thức ứng viên
what’s the IAM System on AWS?
What’s the Security Hub?
How do you think we could integrate AWS Control Tower to Guard Duty?
describe all components on K8s
What’s HPA and how does it work?
How to resolve a version mismatch in terraform?
Những câu hỏi thế này, mấy thánh chứng chỉ rất ưng trym, theo kiểu trúng tủ, vì đôi khi chỉ cần học thuộc lòng lý thuyết là có thể trả lời vanh vách. Nhưng rồi, có tuyển được ứng viên thật sự có kinh nghiệm hay không thì có giời mới biết
Cách phỏng vấn theo kiểu bộ đề như trên cũng đẻ ra nhiều chiêu trò để lách, cheat giúp pass interview như sau.
Cho 1 thanh niên ở level nhàng nhàng đi phỏng vấn trước , người ta gọi là chuột bạch, hay còn gọi là quân xanh quân đỏ. Mục tiêu là lấy được bank of questions, xem context interview thế nào,còn pass failed không thành vấn đề
Sau khi có được bank of questions, mới bắt đầu lập một ban bệ cố vấn, viết sẵn bộ đề câu trả lời, chuẩn bị cho ứng viên tiếp theo, ở level cao hơn, sẵn sàng chiến
Có nhiều trường hợp, khách hàng/công ty lại dùng chung 1 bộ câu hỏi để phỏng vấn các ứng viên khác nhau, chắc để dễ so sánh xem uv nào trả lời xuất sắc hơn thì chọn người đó. Không biết các cụ có nghĩ đến tình huống như trên không
Tất nhiêu kiểu phỏng vấn công nghiệp như trên chỉ phù hợp với những vị trí low level, những dự án outsource tuyển dụng theo kiểu đông quân, lấy thịt đè người, lấy số lượng hơn chất lượng, và cũng chỉ phỏng vấn 1 vòng là chốt kèo. Vì yêu cầu cũng chỉ cần có thế, quan trọng là phải rẻ.
Những vị trí high level như Tech Lead, Architect, Software Engineer thì quy trình duyệt CV, phỏng vấn, câu hỏi cũng khắc nghiệt hơn rất nhiều, đúng kiểu đãi cát tìm vàng.
Duyệt CV
Trực tiếp
Các big tech nhưng FAANG, Grab và những công ty startup cỡ vừa vừa đều có hệ thống tuyển dụng riêng như
grab.careers hay
https://jobs.netflix.com/. Họ post JD lên đó và ứng viên nộp CV online. Như vậy có hàng ngàn công ty thì sẽ có hàng ngàn web tuyển dụng, nếu ứng viên nộp CV kiểu này thì có mà bán nhà, cho nên mới đẻ ra “Job search engine”, nhưng trang web kiểu như Google search nhưng chuyên đi crawl dữ liệu từ các công ty, giúp ứng viên tìm jobs dễ dàng, ví dụ như
https://www.indeed.com/ hay
https://www.get.it/ .
User có thể tìm search đủ thể loại jobs từ remote, full time , part time, theo các tiêu chí khác nhau như DevOps, Cloud, Software engineer etc… Sau đó, Job search engine sẽ redirect bạn đến trang tuyển dụng của công ty để apply CV
Đây là cách tuyển dụng trực tiếp, nếu pass thì ứng viên sẽ trở thành nhân viên của cty luôn, nhận những gói offer package trực tiếp của họ, trả 10 đồng ăn full set 10 đồng
Gián tiếp
Cách thứ hai, đó là một số công ty outsourcing ở Việt Nam trong quá trình sale, câu kéo thì nhận được request từ khách hàng kiểu như cần 10 Dev Java, 5 DevOps với JD abc, xyz. Sau đó đội head hunter mới bắt đầu đi tìm bằng cách scan Linkedin, post quảng cáo Facebook như
Ứng viên nộp CV gián tiếp qua các công ty outsource này, và phỏng vấn với đội tech của công ty đó trước, nếu thấy qualify sẽ make up CV theo template mới rồi gửi sang cho KH phỏng vấn. Nếu pass thì ứng viên sẽ là nhân viên của công ty outsource đó nhưng làm dự án với khách hàng. Khách hàng trả 10 đồng, về ứng viên là 5 đồng, còn lại công ty ăn tiền hồ.
Tất nhiên việc nộp CV trực tiếp sẽ lợi cho uv hơn (không bị húp %) nhưng cơ hội pass CV, phỏng vấn cũng khó hơn rất nhiều lần. Nhất là trong thời đại IT đi xuống, nhà nhà người người bị dắt mũi bởi những bài báo kiểu như lương IT trăm củ, kĩ sư AI thu nhập 1 tỉ / tháng, rồi đổ xô đi học IT, dẫn đến CV, nhân lực thừa mứa, đông số lượng nhưng kém chất lượng. Những big tech có thể nhận được cả triệu CV / năm trong khi nhu cầu tuyển chỉ 0.1 0.2%, họ sàng lọc CV vô cùng khắt khe. Từ việc check xem background educaton, học mấy trường làng, không tên tuổi là next, rồi đến xem kinh nghiệm làm việc, skill trong CV … đúng kiểu đãi cát tìm vàng
Nhiều công ty khỏi cần rep, có công ty văn minh hơn thì rep theo kiểu văn mẫu như
We have reviewed your application, but have not selected it for further consideration at this time.
“You CV is not meet our qualification etc…”
Thế nên những CV viết ẩu, cụt ngủn, số năm kn ít, học trường làng, xác định là tạch ngay từ gửi xe
Và chỉ có thể mong kiếm jobs từ CV gián tiếp ở các công ty outsource, do số lượng tuyển dụng đông, yêu cầu thấp, duyệt CV, phỏng vấn cũng dễ dàng hơn. Vì đội head hunter cũng không có nhiều background về tech, chủ yếu là đọc CV rồi xem có câu từ nào giống với JD không là forward luôn cho đội dự án để lấy KPI.
Tất nhiên thì tiền nào của nấy.
Làm bài Test
Cái này thì tuỳ, một số công ty nếu thấy CV ngon có thể setup phỏng vấn luôn, tuy nhiên cũng có 1 vài công ty sẽ gửi 1 bài test để chấm điểm. Họ xài một số platform để test như
https://codeaid.io hay https://coderpad.io/Việc kiểm tra bài test được các platform làm hoàn toàn tự động và generate ra kết quả luôn sau khi ứng viên submit code.
Ví dụ một bài test cho candidate DevOps là viết bộ deployment manifest cho một web app nodejs, bao gồm dockerfile, k8s manifest, test suites etc…
Submit code lên là platform tự build docker file, chạy manifest deploy, rồi run test suites, rồi sau đó chấm điểm them barem như build dockerfile successfully thì 10 điểm, chạy manifest deploy đủ số lượng pod running thì 20 điểm…
Chốt kèo candidate đạt đủ số điểm tiêu chuẩn thì hẹn phỏng vấn không thì next
Coding interview
Phỏng vấn coding kiểu leetcode, interviewer cho một vài coding problem và yêu cầu ứng viên làm trong xx thời gian, thích viết bằng ngôn ngữ nào cũng được. Ứng viên share screen để trình bày, có công ty thì xài Google Doc, IDE online compiler hoặc xịn như Meta thì xài
coderpaid.ioĐề dễ hay khó thì tuỳ yêu cầu của từng công ty. Mục tiêu là test tư duy thuật toán, cấu trúc dữ liệu và giải thuật nhiều hơn là test syntax coding. Cái này, bạn này hay chơi leetcode nhiều là có ưu thế.
Nhìn chung là tay code, miệng nói ý tưởng về thuật toán.
Món coding interview này giúp phát hiện ra ứng viên nào code nhiều, làm nhiều với ứng viên nào chỉ chém gió là chính, sàng lọc được khá kĩ. Tuy nhiên pv thế này hay áp dụng cho role Dev, Software architect còn phỏng vấn DevOps, system admin, những vị trí thiên về quản lý hệ thống hơn code thì sẽ có những điều chỉnh. Ví dụ như sẽ test viết code IaC để tạo resource ABC, XYZ, hoặc phân tích code snippset này làm việc gì, có issue ra sao …Tóm lại gì thì gì thì vẫn là coding hết
Đã có thi thì sẽ có lò luyện, nhiều sách vở như Cracking coding interview, rồi leetcode, codesignal, codelearn ra đời giúp bạn luyện skill coding, giúp tăng khả năng vượt qua vòng coding này. Thật sự là có học có hơn
Đã qua cái thời IT là vua của mọi nghề, khi số lượng quá nhiều, vượt qua nhu cầu tuyển dụng thì mọi thứ sẽ trở nên khó khăn hơn trước
Bài sau sẽ chia sẻ về System Design interview
0 Nhận xét