Đặt chân đến Singapore
Đây là lần đầu tiên mình đến Singapore. Mọi thứ trông thật hiện đại và sạch sẽ. Sau khi dạo quanh sân bay Changi với một sự trầm trồ thán phục thì mình bắt đầu di chuyển về khách sạn. Đó là khách sạn 5 sao InterContinental ở Singapore. Facebook đúng là rộng rãi đối với ứng viên đi phỏng vấn.
Khách sạn nằm rất gần văn phòng Facebook, chỉ tầm 10 phút đi bộ là tới. Mình dành ngày đầu tiên để đi tham quan Singapore cùng với vợ, chủ yếu cũng chỉ đi lòng vòng khu vực quanh khách sạn. Mình rất ấn tượng với mức độ phát triển của Singapore. Đường phố thì rộng, sạch sẽ và toàn thấy xe hơi. Mọi thứ di chuyển rất trật tự, không có hỗn loạn hay ồn ào náo nhiệt. Thậm chí cái biển ghi tên đường thôi cũng làm mình ngạc nhiên, bởi nó rất to và sạch nữa.
Ngày hôm sau, mình ăn sáng rồi đi bộ tới văn phòng của Facebook. Mình đến đó vào lúc 8 rưỡi sáng. Mình đưa hộ chiếu cho bên tiếp tân. Chị ấy đưa cho mình một cái thẻ khách để mang lên cổ. Sau đó chị dẫn mình đến thang máy và bấm nút số tầng dùm mình luôn.
Bước ra khỏi thang máy, mình nhìn thấy một cái logo lớn của Facebook. Mình biết là mình đã tới đúng chỗ rồi. Một nhân viên Facebook chào và dẫn mình đến quầy đăng ký. Tại đây, mình phải điền các thông tin cá nhân và ký vào một cam kết “Không tiết lộ thông tin” (NDA, or Non-disclosure Agreement). Điều đó có nghĩa là mình sẽ không được phép kể cho ai về các câu hỏi trong buổi phỏng vấn ngày hôm nay cũng như những thông tin quan trọng về sản phẩm của Facebook mà mình có thể nhìn thấy khi đi lại xung quanh văn phòng. Bởi vậy cho nên mình sẽ không thể chia sẻ cho các bạn cụ thể từng câu hỏi được, nhưng mình tin là mình có thể chia sẻ về trải nghiệm phỏng vấn nói chung.
Sau khi ký cam kết NDA, mình ngồi chờ trên ghế sô-fa ở khu vực tiếp khách của công ty. Mình cũng gặp một số ứng viên khác nữa, đa số là người Ấn Độ. Bọn mình nói chuyện làm quen được một chút. Sau đó, một nhân viên Facebook mời mọi người vào một phòng họp lớn. Rồi họ bắt đầu trình bày về lịch trình của ngày hôm nay. Nó như thế này:
- Bạn sẽ có 4 vòng phỏng vấn diễn ra liên tục (từ 9 rưỡi sáng cho tới 1 rưỡi chiều), mỗi vòng 45 phút, sẽ có nghỉ 15 phút giữa mỗi vòng.
- Bạn chỉ cần ngồi yên trong một phòng, người phỏng vấn sẽ đi ra và đi vào để phỏng vấn bạn.
- Nếu bạn cần đi vệ sinh thì bạn phải nhờ một bạn điều phối viên (coordinator) để dẫn bạn đi.
- Công ty sẽ không hỗ trợ bữa trưa. Sau khi hoàn thành 4 buổi phỏng vấn thì bạn sẽ rời khỏi văn phòng ngay lập tức.
Sau đó, một bạn điều phối viên dẫn mình đến một căn phòng riêng. Mình chờ ở đó vài phút và rồi buổi phỏng vấn cũng chính thức bắt đầu.
Vòng 1: phỏng vấn giải thuật (Coding/Algorithm)
Một thanh niên trẻ người Mỹ bước vào phòng. Hai anh em giới thiệu bản thân rồi ảnh bắt đầu hỏi một số kiến thức về iOS cơ bản và nâng cao. Sau đó anh ấy tiến tới khu vực bảng trắng và đưa ra câu hỏi giải thuật đầu tiên. Câu này thì không khó lắm. Mình giải được nó tương đối nhanh.
Rồi hai anh em chuyển sang câu tiếp theo. Câu này thì phức tạp hơn một tí. Mình phải mất kha khá thời gian mới tìm ra được đáp án đúng. Mình để ý thấy anh phỏng vấn rất là chăm chú lắng nghe. Ảnh thậm chí còn gợi ý cho mình mỗi khi mình đi chệch hướng. Mình giải được câu hỏi thứ 2 trong thời gian cho phép và còn khoảng 5 phút để hỏi ảnh một số câu về Facebook. Sau đó ảnh rời khỏi phòng.
Mặc dù mình không được phép tiết lộ câu hỏi nhưng mình có thể nói là câu đầu tiên thường sẽ giải bằng cách dùng “Dictionary” hoặc “Hashmap”, còn câu thứ 2 thì là về “Tree” và “Recursion”. Độ khó của hai câu rơi vào tầm “Easy” hoặc “Medium” trên Leetcode.
Vòng 2: phỏng vấn sự nghiệp và văn hoá (Career & culture)
Lần này, mình phỏng vấn với một manager. Anh ta tập trung chủ yếu vào kinh nghiệm làm việc của mình, các ứng dụng iOS mình đã làm, các thử thách mình đã vượt qua, một số tình huống giải quyết mâu thuẫn với đồng nghiệp và sếp, v.v. Anh ấy không nói gì nhiều mà để mình dẫn dắt cuộc hội thoại từ đầu đến cuối.
Sau một lúc, ảnh bắt đầu hỏi một câu về giải thuật. Câu này dễ nên mình làm xong rất nhanh. Rồi vòng phỏng vấn kết thúc.
Vòng 3: phỏng vấn về thiết kế hệ thống (Architecture design)
Đây là vòng phỏng vấn khó nhất đối với mình. Mình không những không biết đáp án chính xác mà còn không biết luôn cả cách trình bày thiết kế của mình sao cho dễ hiểu.
Đầu tiên, mình vẽ một số sơ đồ ở mức high-level, gồm nhiều bộ phận cấu thành. Sau đó anh ta hỏi sâu hơn về một bộ phận và yêu cầu mình viết một số code interface cơ bản. Mình càng giải thích thì ảnh càng hỏi sâu hơn và sâu hơn, cho đến khi vấn đề rõ mồn một mới thôi. Sau đó 2 anh em chuyển sang nói tới bộ phận tiếp theo trong hệ thống. Rồi cứ thế tiếp tục cho đến khi trình bày hết tất cả các bộ phận.
Tiếc là mình không được phép tiết lộ câu hỏi. Tuy nhiên, mình nghĩ là nó xoay quanh những kiến thức rất là nền tảng: (mình xin phép không dịch do những bạn làm lập trình nhìn sẽ hiểu)
- How to design a network layer.
- How to cache data on mobile.
- How to handle lazy loading on a list.
- How to perform pull to refresh and load more mechanism in a list.
- How to handle heavy image loading.
- How to communicate with the backend in terms of requests/responses to support this design.
- etc.
Đây là vòng phỏng vấn mà mình cảm thấy kém tự tin nhất.
Vòng 4: phỏng vấn giải thuật (Coding/Algorithm)
Cũng giống vòng 1. Mình gặp một số khó khăn khi giải nhưng vẫn hoàn thành 2 câu hỏi trong thời gian cho phép.
Kết thúc buổi phỏng vấn onsite
Sau khi xong vòng phỏng vấn thứ 4, bạn điều phối viên đi vào phòng và tặng mình một món quà. Đó là một cái túi vải có in hình logo Facebook trên đó. Bên trong thì có một cuốn sổ nhỏ, một cây bút bi và vài viên kẹo. “Ngọt ngào quá. Cám ơn bạn.”, mình cười.
Sau đó mình rời khỏi văn phòng. Mình không thể nói là mình rất tự tin với buổi phỏng vấn vừa rồi nhưng mình tin là mình thể hiện cũng tương đối tốt, ít nhất là theo phán xét của mình. Mình quyết định sẽ xoã và cười hí hửng trên đường đi về khách sạn. Mình rất hào hứng muốn kể cho vợ nghe về trải nghiệm phỏng vấn vừa rồi.
Kết quả phỏng vấn
Một tuần sau buổi phỏng vấn onsite, mình không nghe ngóng được thông tin gì từ chị nhân sự của Facebook. Mình đoán chắc là họ cần phải phỏng vấn hết tất cả ứng viên trước khi đưa ra quyết định cuối cùng. Mình tin là mình rồi cũng sẽ đậu thôi.
Một tuần nữa trôi qua, vẫn không thấy tin tức gì. Mình bắt đầu lo lắng. Mình không nghĩ là họ cần nhiều thời gian như vậy để đánh giá kết quả. Do đó, mình gửi mail cho chị nhân sự để hỏi thăm tình hình.
Hôm sau, chị hồi âm:
“Chào Hoàng. Cám ơn em vì đã dành thời gian để đến phỏng vấn với Facebook ở Singapore. Chị rất vui được nói chuyện với em, các anh chị kỹ sư khác cũng vậy. Nhưng thật không may, bọn chị không thể đưa em tới bước tiếp theo được. Mặc dù vậy, chị hy vọng rằng em đã có một buổi gặp gỡ thú vị với các kỹ sư iOS và hiểu hơn nhiều về cuộc sống và công việc ở Facebook. Chị chúc em những điều tốt đẹp nhất. Cám ơn em và hãy bảo trọng.”
Mình không thể tin vào những gì mà mình đang thấy nữa. Mình thấy rợn sống lưng. Hai tay run run.
Mình thất bại rồi.
Mình đã trượt phỏng vấn Facebook trong khi trước đó mình cứ ngỡ là sẽ có khả năng đậu khá cao. Mình đã để vụt mất “Giấc mơ Mỹ”. Mọi viễn cảnh tương lai mà mình vẽ lên trong đầu như tan thành mây khói. Mình cảm thấy thất vọng tràn trề.
“Có nhầm lẫn gì không ta? Biết đâu mấy anh phỏng vấn đưa nhầm nhận xét (feedback) của người khác, hay là có sai sót gì đó trong quy trình phỏng vấn?”
Mình cố tìm một lý do để thuyết phục bản thân rằng đây không phải là sự thật. Nhưng mình không thể.
Đó chính là hiện thực. Và mình phải chấp nhận nó.
Sau vài giờ, mình bắt đầu bình tĩnh lại một chút, mình nhận ra rằng không có ai để mà đỗ lỗi ở đây cả. Mình phỏng vấn không tốt thì rớt thôi. Đơn giản mà. Đây có thể là một bài học cho mình.
Sau đó, mình gửi một email nữa để cám ơn chị nhân sự và cũng để hỏi về một số đánh giá chi tết về buổi phỏng vấn của mình.
Một ngày sau, chị chia sẻ các feedback với mình. Chị thật là tử tế.
“Chào Hoàng. Thật không may, bởi vì luật nhân sự ở Mỹ nên chị không thể tiết lộ toàn bộ feedback của buổi phỏng vấn được. Tuy nhiên, chị có thể chia sẻ với em một số điểm sau đây:
- Bọn chị muốn thấy em giải quyết vấn đề nhanh, hiệu quả, và không có lỗi (bug). Mặc dù em có thể đưa ra được giải pháp đúng, nhưng vẫn còn khá chậm và không có thời gian để tối ưu giải pháp của mình.
- Ở vòng phỏng vấn về thiết kế hệ thống, bọn chị không thấy được một hệ thống hoàn chỉnh có thể chạy được. Có nhiều lỗi có thể tránh được nhưng em vẫn mắc phải trong buổi phỏng vấn.
Chị hy vọng là những điều này có thể giúp ích cho em. Chị cũng mong là kết quả không như thế này, nhưng dù sao thì chị cũng rất vui được nói chuyện với em. Cám ơn em vì đã dành thời gian cho buổi phỏng vấn.”
Thật là mở rộng tầm mắt. Mình cứ tưởng mình phỏng vấn cũng tốt, ai dè hoàn toàn không phải vậy. Mình thậm chí còn là một ứng viên yếu so với những người khác.
Rút kinh nghiệm sau thất bại
Mình bắt đầu nhìn lại từng vòng phỏng vấn, từng câu hỏi một. Mình nhận ra mình đã làm sai khá nhiều.
Đây là những điều mà mình học được:
- Việc nói to lên suy nghĩ của mình trong lúc giải quyết vấn đề là rất tốt. Tuy nhiên, mình phải biết cân bằng giữa “sự rõ ràng” và “thời gian”. Nếu mình không nói, người phỏng vấn sẽ không biết mình đang nghĩ gì. Nhưng nếu mình nói quá nhiều thì nó cũng làm mình chậm đi và sẽ không đủ thời gian để tối ưu giải pháp hoặc là đi tới câu hỏi thứ ba (mình cứ nghĩ là chỉ có 2 câu hỏi ở mỗi vòng giải thuật).
- Cho ví dụ để kiểm tra lại code vào khúc cuối là rất tốt. Nhưng mình nên làm nhanh và thông minh hơn. Chứ không thì người phỏng vấn sẽ nghĩ mình là “chậm tiêu”.
- Mình không chuẩn bị nhiều cho các câu hỏi về thiết kế hệ thống. Đây là một sai lầm lớn. Mình cứ nghĩ là mình có thể tuỳ cơ ứng biến để thiết kế ra được một hệ thống trong buổi phỏng vấn. Nhưng thực tế thì nó phức tạp hơn nhiều và cần phải đầu tư suy nghĩ nhiều hơn nữa. Rất nhiều câu hỏi thiết kế đã được bàn luận đầy ở trên mạng. Mình chỉ cần đọc kỹ và tập luyện thêm một cách nghiêm túc hơn.
- Tiếng Anh của mình ở thời điểm đó chưa tốt lắm. Nó ảnh hưởng nhiều tới sự tự tin và cách mình giải thích vấn đề. Mình nên tập nói tiếng Anh nhiều hơn trước buổi phỏng vấn.
- Và một yếu tố quan trọng nhất, cái mà mình hoàn toàn không ngó ngàng trong suốt quá trình chuẩn bị, đó chính là “tốc độ”. Mình quá tập trung vào “cách giải quyết vấn đề” và “cách giải thích sao cho rõ ràng”, nhưng mình quên mất là phải “giải sao cho nhanh nhất”.
- Ví dụ: thậm chí nếu mình có đưa ra một đáp án tối ưu và giải thích đầy đủ từ đầu đến cuối, nhưng nếu mình mất quá nhiều thời gian cho một câu hỏi dễ như thế này thì đó không phải là một vòng phỏng vấn tốt, đó được xem là “chậm chạp”, phải lẩm bẩm nhiều.
- Đôi khi, người phỏng vấn chỉ muốn ném cho mình một câu hỏi khởi động đơn giản và rồi nhận ra là ứng viên mất khá nhiều thời gian chỉ để giải câu đó, họ xem sẽ rất thất vọng và chán nữa.
- Tóm lại, mình tin rằng chìa khoá thành công cho một buổi phỏng vấn onsite là như sau:
- Sự tự tin.
- Có thể giải quyết được vấn đề một cách chính xác.
- Có thể nói lên được suy nghĩ và trình bày rõ ràng giải pháp của mình.
- Giải bài nhanh nhất có thể.
Giờ nhìn lại, mình vẫn cảm thấy nuối tiếc cơ hội với Facebook. Mình luôn mơ ước được sống và làm việc ở Mỹ từ khá lâu rồi, chắc là từ lúc mình bắt đầu có thói quen đọc sách bằng tiếng Anh.
Tuy nhiên, trải nghiệm phỏng vấn này đã dạy cho mình một bài học vô giá. Mình tin rằng nếu mà mình muốn phỏng vấn lại, mình sẽ biết cách ôn luyện sao cho hợp lý và biết đâu sẽ có kết quả tốt hơn.
Còn bây giờ, mình đang có rất nhiều thứ thú vị muốn làm ở Singapore và mình cảm thấy tràn đầy nhiệt huyết mỗi ngày.
Không quan trọng là mình ở đâu hay mình làm gì, miễn sao mình đi theo tiếng gọi trái tim là được.
Để lại một bình luận