SYSTEM DESIGN MỨC FRESHER + KIẾN THỨC DOMAIN NGÂN HÀNG

1. Danh sách chủ đề con cần ôn (xếp theo độ ưu tiên cho fresher)

Ưu tiên CAO (gần như chắc chắn bị hỏi)

Ưu tiên TRUNG BÌNH (hỏi để phân loại ứng viên khá)

Ưu tiên THẤP (biết thì cộng điểm, không biết không sao)


2. Câu hỏi phỏng vấn khả năng cao + hướng trả lời

Câu 1: Một REST API được thiết kế tốt trông như thế nào?

Câu 2: Stateless vs Stateful là gì? Tại sao REST API nên stateless?

Câu 3: Tại sao KHÔNG dùng float/double để lưu tiền? (câu bắt buộc phải trả lời đúng ở ngân hàng)

Câu 4: Idempotency là gì? Tại sao API chuyển tiền phải idempotent?

Câu 5: Thiết kế xử lý chuyển tiền giữa 2 tài khoản trong cùng ngân hàng, đảm bảo không mất tiền?

Câu 6: Monolith vs Microservices — ưu nhược điểm? Fresher nên nói gì?

Câu 7: Message Queue dùng để làm gì? Cho ví dụ trong ngân hàng.

Câu 8: Caching là gì? Cache-aside hoạt động thế nào? Trong ngân hàng nên cache gì?

Câu 9: Load balancer là gì? Liên quan gì đến stateless?

Câu 10: SQL Injection là gì? Chống thế nào?

Câu 11: Lưu password của user thế nào cho đúng?

Câu 12: OTP/2FA là gì? Tại sao ngân hàng bắt buộc? Cần lưu ý gì phía backend?

Câu 13: Tại sao ngân hàng cần audit log? Log gì và KHÔNG log gì?

Câu 14: Tại sao ngân hàng ưu tiên consistency cao? CAP theorem liên quan gì?


3. Câu hỏi DESIGN MINI + khung trả lời (luyện trước ở nhà)

Mini design 1: "Hãy thiết kế một API chuyển tiền nội bộ đơn giản"

Khung trả lời theo thứ tự (nói thành tiếng từng bước, đừng nhảy thẳng vào code):

Mini design 2: "Thiết kế API xem lịch sử giao dịch của một tài khoản"


4. Ghi chú riêng cho ngữ cảnh phỏng vấn ngân hàng (VPBank)