Câu hỏi phỏng vấn thiết kế hệ thống tại Meta

Bởi Aaron Cao · Cập nhật

Câu hỏi phỏng vấn thiết kế hệ thống tại Meta
Vòng thiết kế của Meta thường yêu cầu bạn xây dựng một hệ thống sản phẩm dành cho người dùng cuối: một news feed, một dịch vụ nhắn tin, một pipeline thông báo, hoặc tính năng «bạn bè gần đây». Người phỏng vấn coi trọng yêu cầu sản phẩm và mô hình dữ liệu ngang với khả năng mở rộng, và vòng này là tiêu chuẩn từ cấp senior trở lên, không dành cho cấp entry.

Vòng thiết kế của Meta thường yêu cầu bạn xây dựng một hệ thống sản phẩm dành cho người dùng cuối: một news feed, một dịch vụ nhắn tin, một pipeline thông báo, hoặc tính năng «bạn bè gần đây». Người phỏng vấn coi trọng yêu cầu sản phẩm và mô hình dữ liệu ngang với khả năng mở rộng, và vòng này là tiêu chuẩn từ cấp senior trở lên, không dành cho cấp entry.

Meta hỏi những dạng câu hỏi thiết kế nào?

Bạn có thể đã chuẩn bị bằng cách học thuộc kiến thức vụn vặt về hệ thống phân tán, nhưng vòng này không đánh giá cao điều đó. Phần này nói về những dạng câu hỏi thực tế, gần với kỹ thuật sản phẩm hơn là hạ tầng. Kiểu lặp lại là một tính năng ở quy mô người dùng cuối mà bạn đã dùng, được đưa cho bạn như một bài toán mở.

  • Thiết kế một news feed. Xếp hạng, fanout khi ghi so với fanout khi đọc, và chuyện gì xảy ra với tài khoản có hàng triệu người theo dõi.
  • Thiết kế hệ thống nhắn tin hoặc chat. Đảm bảo gửi tin, thứ tự, trạng thái hiện diện, và đồng bộ offline giữa các thiết bị.
  • Thiết kế hệ thống thông báo. Loại bỏ trùng lặp, xử lý theo lô, giới hạn tốc độ theo từng người dùng, và gửi qua push, email, và trong ứng dụng.
  • Thiết kế bạn bè gần đây hoặc tính năng vị trí. Đánh chỉ mục địa lý, tần suất cập nhật, và mô hình quyền riêng tư.
  • Thiết kế thành phần tìm kiếm hoặc xu hướng. Độ mới của chỉ mục đánh đổi với độ trễ truy vấn.

Một số quy trình phỏng vấn tách việc này thành một biến thể kiến trúc sản phẩm, gần với hành vi mà người dùng nhìn thấy hơn. Hãy hỏi nhà tuyển dụng bạn sẽ gặp dạng nào, vì cách chuẩn bị sẽ khác nhau.

Bạn nên dùng 45 phút đó như thế nào?

Cách thất bại điển hình là bắt đầu vẽ các ô ngay từ phút thứ hai. Một cách chia hợp lý: làm rõ yêu cầu và phạm vi, phác thảo API và mô hình dữ liệu, vẽ kiến trúc tổng thể, rồi đào sâu vào chỗ người phỏng vấn chỉ ra.

  • Yêu cầu trước tiên. Người dùng nào, nền tảng nào, thiên về đọc hay ghi, và bạn rõ ràng không xây dựng gì.
  • Con số tiếp theo. Ước lượng thô về người dùng hoạt động hằng ngày, tốc độ request, và kích thước payload, để các đánh đổi sau đó có căn cứ.
  • Mô hình dữ liệu trước sơ đồ. Hình dạng của một entity và cách nó được truy vấn thường quyết định kiến trúc.
  • Một lần đào sâu. Hãy chuẩn bị tinh thần bị dẫn vào một thành phần duy nhất và bị hỏi nó thất bại như thế nào.

Nói to các giả định của bạn ra. Người phỏng vấn không đồng ý với một giả định sẽ sửa lại nó, đó là thông tin miễn phí; một giả định không được nói ra chỉ trông giống như một lỗ hổng.

Điều gì phân biệt một câu trả lời mạnh với một câu trả lời trung bình?

Câu trả lời trung bình mô tả một kiến trúc đúng. Câu trả lời mạnh gọi tên đánh đổi mà họ chấp nhận và thất bại mà họ sẵn sàng chịu đựng. Nói rằng «tôi chọn fanout khi ghi vì đọc chiếm ưu thế ở đây, và tôi chấp nhận ghi chậm với tài khoản người nổi tiếng, mà tôi sẽ xử lý bằng một đường pull riêng» có giá trị hơn một sơ đồ hoàn hảo.

Hãy hình dung một kỹ sư backend đang phỏng vấn cho vị trí senior. Cô được yêu cầu thiết kế một hệ thống thông báo và dành sáu phút đầu tiên chỉ cho yêu cầu: liệu một người dùng có thể nhận hai thông báo cho cùng một sự kiện không, thứ tự có quan trọng không, cửa sổ lưu giữ là bao lâu. Người phỏng vấn sau đó nói rằng cuộc thảo luận về loại bỏ trùng lặp là phần quyết định của vòng phỏng vấn, và cô chưa bao giờ đi xa hơn một sơ đồ trên một trang.

Luyện tập cách trình bày này một mình trước bàn làm việc là phần khó nhất. Bạn có thể luyện các câu hỏi thiết kế với một người phỏng vấn AI trên trang /mock-interview và làm quen với việc vừa nói vừa suy nghĩ.

Trợ lý trực tiếp hữu ích ở đâu, và không hữu ích ở đâu?

Trong một vòng phỏng vấn video có nói chuyện, SubcueAI phiên âm câu hỏi của người phỏng vấn và hiện một cấu trúc gợi ý về phía bạn, trong lớp phủ trên desktop trên macOS và Windows hoặc trong bảng bên của tiện ích mở rộng trình duyệt Chromium. Không có bot họp nào tham gia cuộc gọi, và không có gì được chèn vào trang họp. Với vòng thiết kế, giá trị thực tế là một checklist cho những thứ bạn hay quên khi áp lực, như ước lượng dung lượng hay chế độ thất bại, chứ không phải một câu trả lời để bạn đọc to.

Giới hạn khá rõ ràng. Vòng thiết kế thường diễn ra trên một công cụ bảng trắng dùng chung với màn hình của bạn được chia sẻ, và mọi thứ trên màn hình bạn đều hiện ra với hội đồng. Đọc một câu trả lời được tạo sẵn cũng sụp đổ ngay lập tức, vì câu hỏi tiếp theo của người phỏng vấn là «sao không dùng cách tiếp cận khác?». Các vòng liên quan ở những nhà tuyển dụng khác nằm trong chủ đề phỏng vấn theo công ty.

Câu hỏi thường gặp

System design có phải là một phần của mọi vòng phỏng vấn kỹ thuật tại Meta không?

Đó là tiêu chuẩn từ cấp senior trở lên. Các vòng entry-level thường coi trọng vòng code hơn, dù một cuộc trò chuyện thiết kế nhẹ vẫn có thể xuất hiện.

Biến thể kiến trúc sản phẩm là gì?

Một vòng thiết kế xoay quanh hành vi sản phẩm mà người dùng nhìn thấy, bao gồm client, bề mặt API, và mô hình dữ liệu, thay vì thuần khả năng mở rộng backend. Hãy hỏi nhà tuyển dụng vòng của bạn dùng định dạng nào.

Cần bao nhiêu phép tính dung lượng?

Những ước lượng thô về bậc độ lớn, nói to ra. Không ai muốn phép tính chính xác; họ muốn thấy lựa chọn thiết kế của bạn xuất phát từ quy mô bạn giả định.

Tôi nên hỏi câu hỏi làm rõ hay bắt đầu thiết kế ngay?

Hỏi trước. Xác định phạm vi bài toán cũng là một phần của điểm số, và bắt đầu vẽ trước khi yêu cầu được chốt là cách phổ biến nhất khiến vòng này thất bại.

Tôi có thể dùng trợ lý AI trong vòng thiết kế không?

Trong một vòng phỏng vấn video có nói chuyện, nó có thể phiên âm và gợi ý cấu trúc. Nếu bạn chia sẻ màn hình trên một công cụ bảng trắng, mọi thứ trên màn hình đều hiện ra, nên hãy đối xử với vòng đó cho phù hợp.

Câu hỏi liên quan

← Thêm về Câu hỏi phỏng vấn theo vai trò & chủ đề