Đây là bản ghi chép mình đã sửa lại trong lúc chuẩn bị phỏng vấn kỹ sư phần mềm tại Google, tức kiểu phỏng vấn LeetCode rồi hồ sơ được đưa lên hội đồng tuyển dụng ở chặng cuối. Mình đã đi hết quy trình, từ vòng sàng lọc qua điện thoại, các vòng lập trình, thiết kế hệ thống cho tới hành vi, nên phần dưới có cả chuyện quy trình diễn ra thế nào chứ không chỉ gom câu hỏi.
Nói về phỏng vấn Google thì mỗi người một ý. Có người bảo vệ cách tuyển này, có người ghét cay ghét đắng. Cách mình chọn khá đơn giản: hoặc ngồi than rằng mọi thứ chẳng khác gì xổ số, hoặc chịu khó tìm hiểu xem cỗ máy ấy vận hành ra sao rồi tự ép mình học cho tới nơi.
Google khác một buổi phỏng vấn thông thường ở chỗ này. Ngay cuộc gọi đầu tiên, recruiter nói với mình rằng một người chỉ có ba lần thử trong vòng năm năm, hết ba lần thì họ ngừng nhận. Cả sự nghiệp có ba lượt. Mình kể lại cho một đồng nghiệp cũ, người ấy im khoảng năm giây. Mình hiểu đoạn im lặng đó là: đừng có làm hỏng.
Mình chia ghi chép thành mấy phần:
- Vòng sàng lọc qua điện thoại
- Lập trình
- Thiết kế hệ thống
- Googleyness và Leadership
- Hội đồng tuyển dụng
- Phỏng vấn thử và công cụ mình đã dùng
- Ghép đội
Vòng sàng lọc qua điện thoại
Google làm vòng này trên một Google Doc dùng chung. Không phải IDE, chỉ là một tài liệu chữ trơn, không tô màu cú pháp, cũng chẳng có tự động hoàn thành. Bạn viết code thật ngay trong đó suốt bốn mươi lăm phút, trước mắt một người đang nhìn mình gõ. Mình gặp một bài sliding window và một biến thể của binary search, cả hai đều mức medium.
Ready to ace your next interview?
InterviewMan gives you real-time AI answers during live interviews — undetectable on Zoom, Meet, and Teams.
Try InterviewMan FreeLúc code bình thường, mình hay thử rồi sửa dần. Nhưng với bốn mươi lăm phút, một Google Doc trống trơn và một đôi mắt nhìn từng phím mình bấm, cách ấy không ổn. Giá mà có ai nói trước cho mình vụ Google Doc này.
Còn một chi tiết về quy trình mà mãi sau mình mới biết. Nếu người chấm vòng sàng lọc vẫn phân vân, họ sẽ cho bạn làm thêm một vòng qua điện thoại thay vì loại luôn. Mình biết hai người từng rơi vào trường hợp ấy, một người ở Discord của một coding bootcamp, và cả hai đều qua ở lần thứ hai.
Lập trình
Trước đợt phỏng vấn, mình cày 200 bài LeetCode. Nó giúp ít hơn mức đáng lẽ phải giúp, không phải vì đề Google quá khó.
Chỗ khó nhất ở câu hỏi Google là nhìn cho ra họ đang hỏi gì. Interviewer cố tình nhét thêm ngữ cảnh và những chi tiết đánh lạc hướng. Đồng nghiệp cũ đã cảnh báo đúng chuyện này mà mình không nghe. Có một bài, mình vừa đọc đã chộp lấy một mẫu quen, giải được tám phút mới nhận ra mình đang xử lý một bài khác và phải quay lại từ đầu.
Đề nghe giống hệt bài sliding window mình luyện tối hôm trước. Nhưng không phải. Suốt tám phút đó, interviewer chỉ ngồi im nhìn. Xong buổi, mình gọi cho đồng nghiệp từ bãi đỗ xe. Câu trả lời chỉ có: ừ, đã bảo rồi mà.
Ba điều mình rút ra là:
- Luôn nói thành tiếng điều mình đang nghĩ
- Luyện các bài kết hợp nhiều dạng
- Đừng tin vào việc nhận diện mẫu chỉ vì tối qua vừa gặp một bài na ná
Chuyện nói ra suy nghĩ quan trọng đến mức nhắc lại vẫn chưa thừa. Hội đồng đọc phần interviewer ghi, mà interviewer chỉ ghi được điều bạn đã nói. Mình từng im lặng suốt một bài graph rồi nhận phản hồi rằng lập luận không rõ. Trong đầu mình biết mình đang làm gì, nhưng không ai khác biết vì mình không nói. Đồng nghiệp cũ đọc tập hồ sơ ấy sau đó và bảo: cậu giải được, nhưng họ ghi cứ như cậu đang đoán mò.
Còn bài kết hợp thì Google cho mình graph đi cùng dynamic programming ở một vòng, tree đi cùng hashmap ở vòng khác. Một bài chỉ có binary search hoặc chỉ có BFS gần như chẳng xuất hiện riêng lẻ. Năm trăm bài medium tách từng chủ đề không hữu ích bằng năm mươi bài kết hợp. Mình đã phí ba cuối tuần cày riêng từng mảng rồi mới hiểu ra.
Thiết kế hệ thống
Thiết kế hệ thống chỉ có một vòng, và cả vòng có thể phụ thuộc vào đúng một lựa chọn thiết kế. Người hướng dẫn ôn phỏng vấn của mình gọi đó là điểm mấu chốt. Ban đầu nghe hơi làm quá, cuối cùng người ấy nói đúng. Bài của mình liên quan đến cache invalidation trong một hệ thống phân tán, và mình chỉ còn cách ba mươi giây nữa là không nhìn ra nó.
Bỏ lỡ điểm đó thì cuộc trao đổi chẳng bao giờ đi xa hơn sơ đồ, còn một trong ba lượt thử coi như mất trắng.
Googleyness và Leadership
Googleyness và Leadership nghe có vẻ bí hiểm, thực tế là một buổi phỏng vấn hành vi về xung đột trong nhóm, dự án thất bại và những câu chuyện cho thấy mình biết nhận trách nhiệm. Một interviewer nói với mình rằng có thành viên hội đồng hầu như không đọc phần này trong hồ sơ. Vẫn phải chuẩn bị. Mình đâu được chọn hội đồng nào sẽ đọc hồ sơ của mình.
Hội đồng tuyển dụng
Phỏng vấn ở Google có phần giống xổ số, hội đồng tuyển dụng khiến cảm giác ấy rõ hơn. Bốn hoặc năm kỹ sư chưa từng gặp mình sẽ quyết định kết quả dựa trên các tập ghi chép của những người đã phỏng vấn mình. Người lạ đọc ghi chép của những người lạ khác về mình. Đồng nghiệp mình biết một người đã trải qua quy trình của Google hai lần, mỗi lần gặp một nhóm thành viên hội đồng khác nhau. Kết quả trái ngược hẳn dù phần thể hiện về cơ bản giống nhau.
Phỏng vấn thử
Phỏng vấn thử giúp mình hiểu những chuyện lắt nhắt của quy trình nhiều hơn bất kỳ danh sách câu hỏi nào. Mình nhờ đồng nghiệp cũ đóng vai interviewer rồi hai người chạy trọn từng vòng qua Google Meet.
Đoạn này mình có gian lận một chút. Mình làm ở InterviewMan, nên lúc phỏng vấn thử mình bật công cụ của đội mình đúng như một ứng viên thật sẽ dùng. Nó nghe đề bài qua âm thanh rồi hiện gợi ý về hướng giải trên một lớp phủ chỉ người dùng thấy. Đồng nghiệp dành năm phút tìm nó, từ màn hình mình chia sẻ, thanh dock cho đến bản ghi buổi phỏng vấn, vẫn không thấy gì.
Trong vòng Googleyness thử, công cụ khơi lại từ cuộc trò chuyện một câu chuyện xung đột mà mình đã quên sạch. Đúng kiểu chuyện người ta bảo hội đồng gần như chẳng đọc, nhưng hồ sơ vẫn phải có. Đến buổi thiết kế hệ thống thử, nó chỉ ra một ý về caching, sau đó hóa ra lại chính là điểm mấu chốt của câu hỏi ấy.
Ready to ace your next interview?
InterviewMan gives you real-time AI answers during live interviews — undetectable on Zoom, Meet, and Teams.
Try InterviewMan FreeXét riêng chuyện công cụ, loại chỉ hỗ trợ coding như Interview Coder có giá hai trăm chín mươi chín đô mỗi tháng. Nó lo được ba trong năm vòng rồi để bạn tự xoay xở với thiết kế hệ thống và hành vi. InterviewMan hỗ trợ đủ cả năm vòng với giá mười hai đô mỗi tháng nếu trả theo năm.
Ba tháng chuẩn bị của mình hết ba mươi sáu đô, còn rẻ hơn một tuần dùng Interview Coder. Hiện InterviewMan có năm mươi bảy nghìn người dùng và hơn hai mươi tính năng ẩn, theo những gì mình biết thì chưa ai bị phát hiện.
Ghép đội
Hội đồng gật đầu chưa có nghĩa là đã có offer. Sau đó còn bước ghép đội, cả bạn lẫn hiring manager đều phải đồng ý, và phê duyệt của bạn có hiệu lực khoảng một năm. Thành ra không cần vội. Lời khuyên hay nhất, mà nghe hơi ngược đời, mình nhận được trong suốt quá trình là hãy chờ một đội khiến mình thực sự muốn thức dậy để đi làm.
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.

