#72: Xuan Luong

“3 lần phỏng vấn frontend không hỏi gì tới React”

𝐗𝐮𝐚𝐧 𝐋𝐮𝐨𝐧𝐠 - 𝐒𝐭𝐚𝐟𝐟 𝐒𝐨𝐟𝐭𝐰𝐚𝐫𝐞 𝐄𝐧𝐠𝐢𝐧𝐞𝐞𝐫 𝐭𝐚̣𝐢 𝐇𝐨𝐧𝐨𝐫 & 𝐀𝐝𝐦𝐢𝐧 𝐕𝐢𝐞𝐭 𝐓𝐞𝐜𝐡

Hồi trước, ước mơ của mình là đi làm cho một công ty FAANG, nên mình cũng apply khá là nhiều big tech. ****Mình sẽ chia sẻ một số kinh nghiệm người thật việc thật liên quan tới việc phỏng vấn cho vị trí frontend mà không cần biết gì về React.

Disclaimer: tên công ty chỉ là hư cấu. Mọi sự trùng hợp với tên gọi của công ty thật chỉ là ngẫu nhiên.

KARAT

Mình apply cho một công ty pre-IPO chuyên làm cung cấp dịch vụ đi chợ thuê (đối thủ cạnh tranh với Amazon Fresh, DoorDash, và Uber). Vòng phone screen của công ty này được outsource cho một công ty chuyên phỏng vấn hộ tên là Karat.

Mình apply cho vị trí làm fullstack. Interviewer của Karat chia buổi phỏng vấn ra 2 phần: backend và frontend. Phần backend họ hỏi một câu LeetCode khá dễ. Mình làm tầm 20 phút thì xong. Sau đó họ chuyển qua phỏng vấn frontend.

Nội dung phỏng vấn frontend chủ yếu xoay quanh 3 thứ là HTML, CSS, và JavaScript. Phần khởi động là mấy câu hỏi dạng hỏi đáp kiến thức, ví dụ như hỏi bình thường trong file HTML thì include code CSS và code JS như thế nào, kể ra vài cách dùng thẻ meta, etc. Sau giai đoạn hỏi đáp kiến thức khoảng 3, 5 câu gì đó thì interviewer đưa ra một đoạn code HTML xong yêu cầu mình viết code JavaScript (vanilla JavaScript, không có framework hay libraries gì) để thực hiện vài thao tác DOM manipulation, sau đó chuyển qua viết code CSS để configure styling cho cái UI. Phần code được viết trên một cái code editor không có chức năng live UI rendering nên interviewer cũng không expect là code được viết chính xác 100%.

Interview xong thì hai bên chào nhau rồi cúp máy. Vì interviewer cũng không phải là người làm cho công ty mình đang phỏng vấn nên họ nói luôn là không có gì để chia sẻ thêm. Đây là điểm trừ lớn nhất của việc phỏng vấn với Karat. Điểm cộng là nếu bạn phỏng vấn với vài công ty cùng lúc và nếu họ cùng dùng dịch vụ của Karat thì bạn có thể chỉ phải phỏng vấn phone screen một lần là đủ. Lý do là các công ty dùng Karat có option dùng kết quả phỏng vấn của bạn với Karat trước đó để quyết định có cho bạn miễn vòng phone screen hay không.

Mình nhận được kết quả đậu interview sau vài ngày.

LINKEDOUT

Đợt phỏng vấn với công ty LinkedOut là một trong những trải nghiệm phỏng vấn tốt nhất của mình. Tiếc là không có offer không thì mình cũng join trong vòng 1 nốt nhạc để còn lên mạng post bài thông báo “I’m very happy to announce that I have joined LinkedOut bla bla bla”.

Mình apply vào vị trí làm frontend cho team chịu trách nhiệm chính về trang web linkedout chấm cơm, vốn là flagship web application của công ty. Có 2 vòng phỏng vấn hoàn toàn dedicated cho frontend topic: vòng phone screen và 1 vòng onsite.

Câu hỏi ở vòng phone screen chủ yếu đòi hỏi bạn phải nắm rõ một số concept hơi hơi advanced tí trong JavaScript, ví dụ như event loop, closure, cách thức hoạt động của setTimeout, prototypal inheritance v.v… Để hiểu thêm về những topic này bạn có thể đọc thêm trên documentation của w3c, Mozilla, hoặc xem các sách như Eloquent JavaScript hoăc JavaScript: The Good Parts (cuốn này hơi cũ nhưng nhiều khái niệm fundamental của JS được covered rất tốt).

Ở vòng onsite thì câu hỏi thiên về việc build một cái UI component hoàn toàn bằng HTML, CSS, và vanilla JavaScript. Bạn có thể practice bằng việc thử viết code để build những UI widgets như một cái weather info UI, đồng hồ, calendar, etc. Nhìn chung thì challenges chủ yếu ở đâu là fluency trong JavaScript và những API liên quan (Datetime, DOM, etc.) cũng như code structure, coding style, etc.

Một vấn đề cần lưu ý khi phỏng vấn ở LinkedOut là vòng coding được làm trên Coderpad nhưng không có chức năng code execution. Khi đó Coderpad cũng không khác gì một text editor bình thường có thêm syntax highlighting.

In the end mình không có offer của LinkedOut vì performance ở vòng design không đủ tốt.

UPER

Uper là công ty vận chuyển người và hàng hoá nổi tiếng được ví von như là một DiDi phiên bản Mỹ. Công ty này từng có CTO là người Việt.

Mình apply cho vị trí làm frontend ở công ty này. Có một vòng onsite mình phải trả lời câu hỏi coding thuần frontend từ interviewer. Câu hỏi này liên quan tới việc vận dụng kiến thức về event loop, closure, và setTimeout để implement một cái task scheduler có chức năng execute tasks sau một khoảng thời gian cho trước, đồng thời phải bảo đảm thứ tự thực thi của các tasks đúng với thứ tự khi các tasks được gửi tới scheduler. Nhìn chung, mình nghĩ câu hỏi không quá khó với các bạn nào nắm vững cách thức hoạt động của 3 thứ đó trong JavaScript.

Phần coding interview ở Uper mình làm rất tốt nhưng phần system design ở đây lại là một trong những trải nghiệm chán nhất của mình trong đợt phỏng vấn hè 2022 này. Kết quả ở đây là mình cũng không có offer.

Bài học kinh nghiệm rút ra từ 3 phỏng vấn frontend không liên quan gì tới React trên đây là:

  • Nếu bạn không biết framework phổ biến nhất (React) thì tốt hơn hết là nên có kiến thức tốt về những advanced topics trong JavaScript, ngôn ngữ chủ đạo của frontend development
  • Làm quen và luyện tập với các API có sẵn trong vanilla JavaScript để không phải bỡ ngỡ khi sử dụng

Ngay cả với những công ty phỏng vấn frontend có hỏi React thì việc có kiến thức sâu về JavaScript fundamentals chắc chắn cũng rất có ích và cũng là thứ mà bạn có thể dụng để thể hiện khả năng của mình với interviewers.

Techie Story is a digital magazine about inspiring tech people who have contributed continuously to Science, Technology, and Innovation. Please contact us at team@techiestory.net if you want to contribute your inspiring story.
Techie Story

More Stories

77-huy-tran's post thumbnail
34-khang-pham's post thumbnail
80-huy-tran's post thumbnail
12-thanh-tran's post thumbnail
86-huy-dang's post thumbnail
42-duy-nguyen's post thumbnail