10 câu hỏi có thể gặp khi phỏng vấn
Chọn theo kỹ năng và cấp của tin (System Design & Kiến trúc, Network & System Admin). Gợi ý trả lời do Drama Công Ty biên soạn để bạn ôn nhanh, không phải đề của công ty.
01Định lý CAP là gì? Strong consistency và eventual consistency áp dụng thế nào trong thực tế?System Design & Kiến trúc
Gợi ý trả lời
Ôn thêm câu hỏi System Design & Kiến trúc →CAP nói rằng khi xảy ra phân mảnh mạng (Partition), hệ phân tán phải chọn giữa Consistency (mọi node trả dữ liệu mới nhất hoặc báo lỗi) và Availability (luôn trả lời, có thể bằng dữ liệu cũ). Khi mạng bình thường, trade-off thực tế là giữa độ trễ và tính nhất quán (mô hình PACELC).
- Strong consistency: cần cho số dư tài khoản, tồn kho, đặt chỗ, nơi đọc dữ liệu cũ gây thiệt hại thật.
- Eventual consistency: chấp nhận được cho lượt thích, bảng tin, số người xem, kết quả tìm kiếm.
Một hệ thống thường kết hợp cả hai theo từng loại dữ liệu. Có những mức ở giữa như read-your-writes: người vừa sửa thì phải thấy thay đổi của mình, người khác thấy chậm vài giây cũng không sao.
Hay sai: nói "chọn 2 trong 3" như thể có thể bỏ P. Với hệ phân tán, phân mảnh mạng là chuyện chắc chắn xảy ra.
02Thiết kế rate limiter cho API. Bạn chọn thuật toán nào và đặt ở đâu?System Design & Kiến trúc
Gợi ý trả lời
Ôn thêm câu hỏi System Design & Kiến trúc →Rate limiter bảo vệ hệ thống khỏi lạm dụng và quá tải, thường đặt ở API gateway hoặc middleware, đếm theo user, API key hoặc IP.
Thuật toán:
- Fixed window: đơn giản nhưng bị dồn request ở ranh giới hai cửa sổ.
- Sliding window (log hoặc counter): mượt hơn, tốn bộ nhớ hơn.
- Token bucket: cho phép burst ngắn trong giới hạn tốc độ trung bình, được dùng phổ biến.
Khi chạy nhiều instance, bộ đếm phải dùng chung, thường là Redis. Thao tác kiểm tra và tăng phải atomic (
INCRkèmEXPIRE, hoặc Lua script).Trả về HTTP
429kèm headerRetry-After.Người phỏng vấn muốn nghe: bạn quyết định được khi Redis lỗi thì cho qua (fail-open) hay chặn (fail-closed) và giải thích lý do, đồng thời biết giới hạn riêng cho endpoint đắt như đăng nhập, gửi OTP.
03Một service phụ thuộc bị chậm hoặc chết. Làm sao để không kéo sập cả hệ thống?System Design & Kiến trúc · Senior
Gợi ý trả lời
Ôn thêm câu hỏi System Design & Kiến trúc →Cô lập lỗi để sự cố của một phụ thuộc không lan ra toàn hệ thống (cascading failure).
- Timeout cho mọi lời gọi mạng. Thiếu timeout là nguyên nhân hàng đầu làm cạn thread hoặc connection.
- Retry có giới hạn, exponential backoff kèm jitter, và chỉ retry thao tác idempotent.
- Circuit breaker: lỗi vượt ngưỡng thì "ngắt mạch", trả lỗi nhanh trong một thời gian, sau đó thử lại dần (half-open).
- Bulkhead: tách pool thread hoặc connection theo từng phụ thuộc.
- Fallback / graceful degradation: trả dữ liệu cache, ẩn tính năng phụ thay vì lỗi cả trang.
- Load shedding: từ chối bớt request khi quá tải để bảo vệ phần còn lại.
Hay sai: retry ở nhiều tầng cùng lúc, số request nhân lên theo cấp số và làm phụ thuộc đang yếu chết hẳn (retry storm).
04DNS hoạt động thế nào? Kể các loại record hay dùng và lỗi DNS thường gặp.Network & System Admin
Gợi ý trả lời
Ôn thêm câu hỏi Network & System Admin →Máy hỏi resolver; resolver hỏi lần lượt root, máy chủ TLD (.com, .vn), rồi máy chủ authoritative của tên miền, sau đó cache kết quả theo TTL.
Record hay dùng:
A/AAAA: tên sang IPv4/IPv6.CNAME: bí danh trỏ sang tên khác.MX: máy chủ nhận mail;TXT: SPF, DKIM, xác minh tên miền.PTR: tra ngược IP sang tên.
Lỗi hay gặp:
- Đổi record nhưng cache cũ còn hiệu lực do TTL dài; nên hạ TTL trước khi chuyển đổi.
- Đặt CNAME ở tên miền gốc (apex), không hợp lệ theo chuẩn.
Kiểm tra bằng
dighoặcnslookup.05Active Directory là gì? Bạn quản lý người dùng và chính sách trong domain thế nào?Network & System Admin
Gợi ý trả lời
Ôn thêm câu hỏi Network & System Admin →Active Directory là dịch vụ thư mục của Windows Server, quản lý tập trung người dùng, máy tính, nhóm và xác thực (Kerberos) trong một domain.
- Tổ chức đối tượng theo OU (phòng ban, chi nhánh) để áp chính sách riêng.
- Cấp quyền qua group, không cấp trực tiếp cho từng user.
- Group Policy (GPO): chính sách mật khẩu, khoá màn hình, map ổ mạng, cài phần mềm.
- Có ít nhất 2 domain controller để dự phòng; AD phụ thuộc DNS nên DNS phải đúng.
- Tài khoản admin domain tách riêng khỏi tài khoản dùng hằng ngày.
Hay sai: đồng hồ lệch giữa máy và domain controller khiến Kerberos xác thực lỗi; cần đồng bộ NTP.
06Làm sao đảm bảo nhất quán dữ liệu giữa nhiều microservice khi không có transaction chung?System Design & Kiến trúc · Senior
Gợi ý trả lời
Ôn thêm câu hỏi System Design & Kiến trúc →Tránh two-phase commit giữa các service; thay vào đó dùng Saga kết hợp Outbox pattern.
- Saga: chuỗi transaction cục bộ, mỗi bước có hành động bù trừ nếu bước sau thất bại (vd. đặt hàng → giữ tồn kho → thanh toán; thanh toán lỗi thì hoàn tồn kho, huỷ đơn). Có hai kiểu: choreography (các service phản ứng theo event) và orchestration (một service điều phối, dễ theo dõi hơn khi luồng dài).
- Transactional outbox: ghi thay đổi nghiệp vụ và event vào bảng outbox trong cùng một transaction DB, sau đó tiến trình riêng hoặc CDC đẩy event lên broker. Cách này tránh tình huống DB đã lưu mà event bị mất.
- Consumer phải idempotent (lưu id message đã xử lý) vì event có thể đến nhiều lần.
Người phỏng vấn muốn nghe: bạn chấp nhận eventual consistency và thiết kế trạng thái trung gian rõ ràng cho người dùng, vd. đơn ở trạng thái "đang xử lý".
07Thiết kế hệ thống thông báo (notification) gửi push, email, SMS cho hàng triệu người dùng.System Design & Kiến trúc · Senior
Gợi ý trả lời
Ôn thêm câu hỏi System Design & Kiến trúc →Tách phần nhận yêu cầu khỏi phần gửi qua hàng đợi, và tách riêng từng kênh để kênh này lỗi không ảnh hưởng kênh khác.
- Notification service nhận yêu cầu, kiểm tra cài đặt và tuỳ chọn tắt thông báo của người dùng, render template, rồi đẩy vào queue theo kênh.
- Worker theo kênh gọi nhà cung cấp (FCM/APNs, email, SMS), retry có backoff, chuyển message lỗi vĩnh viễn sang dead letter queue.
- Ưu tiên: OTP, giao dịch dùng queue riêng, không bị kẹt sau chiến dịch marketing gửi hàng loạt.
- Chống trùng: idempotency key cho mỗi thông báo.
- Giới hạn: rate limit theo nhà cung cấp và theo người dùng; tôn trọng khung giờ yên lặng.
- Lưu trạng thái gửi, mở, lỗi để theo dõi và xử lý token thiết bị hết hạn.
Người phỏng vấn muốn nghe: bạn ước lượng được lưu lượng lúc cao điểm và nêu cách scale worker theo độ dài hàng đợi.
08Hệ thống microservices gặp sự cố, bạn cần những gì để quan sát (observability) và tìm nguyên nhân?System Design & Kiến trúc · Senior
Gợi ý trả lời
Ôn thêm câu hỏi System Design & Kiến trúc →Cần đủ ba nguồn tín hiệu được liên kết với nhau: metrics, logs, traces.
- Metrics: theo phương pháp RED cho service (Rate, Errors, Duration với p95, p99) và USE cho tài nguyên. Cảnh báo dựa trên SLO (vd. tỉ lệ lỗi, độ trễ) thay vì CPU đơn thuần.
- Logs có cấu trúc (JSON), kèm
trace_idvàrequest_idđể lọc toàn bộ log của một request qua nhiều service. - Distributed tracing với OpenTelemetry: thấy request đi qua những service nào, chậm ở đoạn nào.
- Dashboard theo từng service, ghi nhận các lần deploy để đối chiếu với thời điểm lỗi.
Khi có sự cố: ưu tiên khôi phục (rollback, tắt feature flag) trước, tìm nguyên nhân gốc sau, rồi viết postmortem không đổ lỗi cá nhân.
Người phỏng vấn muốn nghe: một sự cố thật bạn từng tham gia và điều đã cải thiện sau đó.
09Bạn thiết kế mạng cho một văn phòng khoảng 200 người, có server nội bộ và Wi-Fi khách thế nào?Network & System Admin · Senior
Gợi ý trả lời
Ôn thêm câu hỏi Network & System Admin →Trình bày theo lớp và nhấn vào phân vùng, dự phòng, quản lý.
- Phân VLAN: nhân viên, server, quản trị thiết bị, camera/IoT, Wi-Fi khách.
- Firewall ở biên và giữa các VLAN; Wi-Fi khách chỉ ra Internet, không vào mạng nội bộ.
- Core/access: switch L3 ở lõi, switch access có PoE cho AP và điện thoại IP; cân nhắc dự phòng đường lên.
- Internet: hai đường truyền từ hai nhà mạng, failover hoặc cân bằng tải.
- Dịch vụ: DHCP, DNS nội bộ, NTP, VPN cho làm việc từ xa.
- Vận hành: giám sát (SNMP, syslog), backup cấu hình thiết bị, sơ đồ mạng và tài liệu IP.
Người phỏng vấn muốn nghe: hỏi lại nhu cầu và ngân sách trước khi chốt thiết bị.
10Vì sao bạn muốn rời công ty hiện tại?Câu hỏi hành vi & văn hoá
Gợi ý trả lời
Ôn thêm câu hỏi Câu hỏi hành vi & văn hoá →Trả lời thật nhưng hướng về phía trước: nói điều bạn đang tìm kiếm, không kể xấu nơi cũ.
Lý do chấp nhận được: muốn thử thách mới, muốn làm sản phẩm, dự án kết thúc, công ty tái cấu trúc, thu nhập chưa tương xứng (nói khéo).
Câu mẫu: "Em đã làm 2 năm ở dự án outsourcing, học được nhiều về quy trình và làm việc với khách nước ngoài. Giờ em muốn gắn bó lâu dài với một sản phẩm để thấy được tác động của những gì mình làm, và vị trí bên mình đúng hướng đó."
Hay sai: chê sếp, chê đồng nghiệp, kể chuyện drama. Người phỏng vấn sẽ nghĩ bạn cũng sẽ nói về công ty họ như vậy. Nếu nhảy việc nhiều, chuẩn bị lời giải thích cho từng lần.
Bạn đã phỏng vấn ở Ngân hàng TNHH MTV Việt Nam Hiện Đại (MBV)?
Kể lại các vòng và câu hỏi đã gặp (ẩn danh) để người sau ôn đúng trọng tâm.
Chia sẻ kinh nghiệm phỏng vấn