Các câu hỏi phỏng vấn Backend Developer thường gặp
Câu hỏi phỏng vấn backend developer thường không chỉ kiểm tra anh nhớ cú pháp hay framework nào. Nhà tuyển dụng muốn biết anh có hiểu cách một hệ thống phía server hoạt động không: request đi vào đâu, dữ liệu được lưu thế nào, lỗi được xử lý ra sao, API bảo mật bằng gì và khi hệ thống chậm thì anh debug từ đâu.
Bài này tổng hợp các nhóm câu hỏi phỏng vấn Backend Developer thường gặp, từ fresher đến junior, kèm cách tư duy trả lời. Mục tiêu không phải học thuộc đáp án mẫu, mà là giúp anh hiểu nhà tuyển dụng đang kiểm tra năng lực gì để chuẩn bị đúng trọng tâm.
Nhà tuyển dụng muốn kiểm tra điều gì ở Backend Developer?
Với backend, một câu trả lời tốt thường thể hiện ba lớp năng lực. Lớp đầu là nền tảng: HTTP, REST, database, authentication, validation, error handling. Lớp thứ hai là thực hành: anh đã từng tự xây API, thiết kế bảng, deploy, đọc log và sửa bug chưa. Lớp thứ ba là tư duy hệ thống: anh biết cân nhắc trade-off, bảo mật, hiệu năng và khả năng bảo trì không.
Nếu anh chưa rõ phạm vi công việc thực tế, hãy đọc thêm Backend Developer làm gì mỗi ngày. Khi hiểu công việc thật, anh sẽ thấy câu hỏi phỏng vấn không rời rạc mà phản ánh đúng các tình huống trong team sản phẩm.
Nhóm câu hỏi nền tảng backend
- Backend Developer chịu trách nhiệm những phần nào trong một ứng dụng?
- HTTP request đi từ browser/mobile app đến server và database như thế nào?
- REST API là gì? Khi nào nên dùng POST, GET, PUT, PATCH, DELETE?
- Status code 200, 201, 400, 401, 403, 404, 409, 500 khác nhau ra sao?
- Middleware là gì và thường dùng để làm gì?
- Validation phía server có cần thiết nếu frontend đã validate chưa?
Cách trả lời tốt là đi từ khái niệm đến ví dụ. Ví dụ, khi được hỏi về status code, đừng chỉ liệt kê số. Hãy nói 401 là chưa xác thực, 403 là đã xác thực nhưng không đủ quyền, 409 thường dùng cho xung đột dữ liệu như email đã tồn tại.
Nhóm câu hỏi về API design
API design là phần rất hay xuất hiện vì backend developer gần như luôn phải làm việc với frontend, mobile app hoặc service khác. Một API tốt không chỉ chạy được, mà còn dễ dùng, dễ debug và khó gây hiểu nhầm.
- Anh thiết kế endpoint cho chức năng đăng ký/đăng nhập như thế nào?
- Pagination nên thiết kế ra sao: page/limit hay cursor?
- API response nên trả format gì khi thành công và khi lỗi?
- Làm sao để version API khi sản phẩm đã có người dùng?
- Idempotency là gì và khi nào cần quan tâm?
- Rate limiting dùng để giải quyết vấn đề gì?
Khi trả lời, hãy nhấn mạnh sự rõ ràng. Ví dụ response lỗi nên có mã lỗi, message dễ hiểu và field cụ thể nếu lỗi validation. Nếu anh từng làm portfolio Backend Developer, hãy dùng chính dự án đó để minh họa cách anh thiết kế API.
Nhóm câu hỏi về database
Database là phần phân biệt backend thật với việc chỉ viết endpoint CRUD đơn giản. Nhà tuyển dụng thường muốn biết anh có hiểu mô hình dữ liệu, quan hệ, index, transaction và các lỗi thường gặp khi truy vấn không.
- Primary key và foreign key là gì?
- One-to-many và many-to-many khác nhau thế nào?
- Index giúp gì cho truy vấn? Khi nào index có thể gây hại?
- Transaction là gì? Vì sao cần transaction khi tạo đơn hàng?
- N+1 query là gì và cách xử lý?
- SQL và NoSQL nên chọn theo tiêu chí nào?
Một câu trả lời thực tế nên có tình huống. Ví dụ, khi tạo đơn hàng, anh cần lưu order, order items và cập nhật tồn kho. Nếu một bước lỗi mà các bước trước đã ghi database, dữ liệu có thể lệch. Transaction giúp nhóm thao tác đó thành một đơn vị nhất quán.
Nhóm câu hỏi về authentication và authorization
Authentication trả lời câu hỏi “người dùng là ai”, còn authorization trả lời “người đó được làm gì”. Đây là cặp khái niệm rất dễ bị nhầm nhưng cực kỳ quan trọng trong backend.
- Authentication và authorization khác nhau như thế nào?
- JWT hoạt động ra sao? Token nên lưu ở đâu?
- Access token và refresh token khác nhau thế nào?
- Vì sao không được lưu mật khẩu dạng plain text?
- Hash password khác gì encrypt password?
- Role-based access control là gì?
Đừng trả lời bảo mật theo kiểu quá tự tin nếu chưa chắc. Nên nói rõ nguyên tắc: mật khẩu phải hash bằng thuật toán phù hợp như bcrypt/argon2, token cần thời hạn, endpoint nhạy cảm cần kiểm tra quyền ở server, và không tin dữ liệu gửi từ client.
Nhóm câu hỏi về debugging và xử lý lỗi
Backend Developer không chỉ viết tính năng mới. Rất nhiều giá trị nằm ở khả năng tìm nguyên nhân khi API lỗi, hệ thống chậm hoặc dữ liệu sai.
- Nếu một API trả 500, anh debug từ đâu?
- Làm sao phân biệt lỗi frontend, backend, database hay network?
- Log tốt nên chứa những thông tin gì?
- Khi API chậm, anh kiểm tra những phần nào?
- Làm sao xử lý lỗi mà không lộ thông tin nhạy cảm cho người dùng?
Câu trả lời tốt nên có quy trình: tái hiện lỗi, xem request/response, đọc log theo request id nếu có, kiểm tra exception, query database, dependency bên ngoài, rồi khoanh vùng thay đổi gần nhất. Đây là kỹ năng mà dự án cá nhân có logging và deploy thật sẽ giúp anh chứng minh tốt hơn nhiều.
Nhóm câu hỏi về system design cho junior
Ở mức fresher/junior, system design thường không quá nặng. Nhà tuyển dụng chủ yếu muốn xem anh có biết chia hệ thống thành phần, nghĩ về dữ liệu và luồng xử lý hay không.
- Thiết kế backend cho app quản lý công việc đơn giản.
- Thiết kế API cho hệ thống đặt lịch.
- Làm sao thiết kế chức năng upload file?
- Nếu số lượng request tăng, anh sẽ tối ưu những gì trước?
- Caching là gì và dùng khi nào?
- Queue/background job giải quyết vấn đề gì?
Hãy bắt đầu từ yêu cầu, user chính, entity dữ liệu, API chính, luồng xử lý, rồi mới nói đến tối ưu. Đừng nhảy ngay vào microservices nếu bài toán nhỏ. Với junior, sự đơn giản, rõ ràng và đúng vấn đề thường được đánh giá cao hơn dùng thuật ngữ lớn.
Câu hỏi về project và kinh nghiệm cá nhân
Phần này thường quyết định rất nhiều, đặc biệt với người mới. Nhà tuyển dụng sẽ hỏi sâu vào dự án để xem đó là project thật hay chỉ làm theo tutorial.
- Dự án backend đáng tự hào nhất của anh là gì?
- Anh tự thiết kế phần nào và học từ đâu?
- Khó khăn lớn nhất trong dự án là gì?
- Nếu làm lại, anh sẽ cải thiện điều gì?
- Dự án có test, deploy hoặc tài liệu API không?
Nếu anh đang thiếu project để kể, bài những dự án Backend Developer tốt nhất cho người mới sẽ giúp chọn đúng dạng dự án để vừa học vừa chuẩn bị phỏng vấn.
Cách chuẩn bị trước buổi phỏng vấn Backend Developer
- Ôn lại HTTP, REST, status code, authentication, database và validation.
- Chọn 1-2 dự án để kể thật sâu, không kể quá nhiều dự án nông.
- Viết lại API chính, schema chính và trade-off của dự án.
- Tập giải thích lỗi từng gặp và cách debug.
- Luyện nói thành tiếng, vì biết trong đầu chưa chắc trình bày rõ khi phỏng vấn.
Nếu còn yếu nền tảng, hãy quay lại bài những kỹ năng cần có để trở thành Backend Developer để rà lỗ hổng trước khi luyện câu hỏi nâng cao.
Kết luận
Câu hỏi phỏng vấn backend developer thường xoay quanh API, database, bảo mật, debugging, system design và dự án thực tế. Đừng học thuộc đáp án rời rạc. Hãy hiểu vì sao câu hỏi đó xuất hiện, chuẩn bị ví dụ từ project của mình và trả lời theo hướng thực tế: yêu cầu là gì, anh xử lý thế nào, trade-off ra sao và nếu hệ thống lớn hơn thì cần cải thiện gì.