Kiến thức

Bí quyết vượt qua phỏng vấn System Design cho vị trí Senior

InterviewPro·17/08/2026

Hướng dẫn toàn diện cách tiếp cận và trả lời câu hỏi System Design trong phỏng vấn kỹ thuật, đặc biệt cho ứng viên Senior và Staff engineer.

System Design Interview là gì?

System Design Interview (phỏng vấn thiết kế hệ thống) đánh giá khả năng thiết kế các hệ thống phần mềm quy mô lớn. Đây là vòng phỏng vấn bắt buộc cho hầu hết vị trí Senior Engineer trở lên tại các công ty công nghệ lớn.

Framework RESHADED để giải quyết bài toán

Sử dụng framework sau để không bỏ sót yếu tố quan trọng nào:

  • Requirements: làm rõ yêu cầu chức năng và phi chức năng
  • Estimation: ước tính lượng traffic, storage, bandwidth
  • Storage schema: thiết kế database schema
  • High-level design: vẽ kiến trúc tổng thể
  • API design: định nghĩa API endpoints
  • Detailed design: đi sâu vào component quan trọng
  • Evaluate: trade-offs, bottlenecks
  • Distinguish: cải tiến và tối ưu hóa

Ví dụ: Thiết kế hệ thống URL Shortener (như bit.ly)

1. Requirements

Functional: Rút gọn URL dài thành URL ngắn, redirect từ URL ngắn về URL gốc, custom alias, thống kê click.

Non-functional: High availability (99.9%+), low latency (<100ms), 100M URLs/ngày.

2. Estimation

  • Write: 100M URLs/ngày = ~1,157 URLs/giây
  • Read/Write ratio: 100:1 → 115,700 redirects/giây
  • Storage: 100M * 500 bytes = 50GB/ngày

3. High-level Design

Client → Load Balancer → API Servers → Cache (Redis) → Database (PostgreSQL/Cassandra)

4. Tạo short URL

Dùng Base62 encoding (a-z, A-Z, 0-9) để tạo alias 7 ký tự: 62^7 = ~3.5 nghìn tỷ URL. Hash MD5/SHA256 lấy 43 bits đầu rồi encode Base62.

5. Giải quyết hash collision

Khi hash bị trùng: thêm salt vào URL gốc rồi hash lại, hoặc dùng counter-based generation với Snowflake ID.

Các chủ đề System Design quan trọng

  • Load Balancing (Round Robin, Least Connection, IP Hash)
  • Caching strategies (Cache-aside, Write-through, Write-behind)
  • Database sharding và replication
  • CAP Theorem và eventual consistency
  • Message queues (Kafka, RabbitMQ)
  • CDN và edge computing
  • Rate limiting và circuit breaker

Lời khuyên trong buổi phỏng vấn

Luôn trao đổi với interviewer trong suốt quá trình, không ngồi im giải quyết một mình. Clarify requirements trước, đề xuất giải pháp đơn giản trước rồi iterate, và chủ động đề cập đến trade-offs của từng lựa chọn.

Chia sẻ bài viết: