1. Hãy tự giới thiệu về bản thân
Đây là câu hỏi mở đầu hầu hết mọi buổi phỏng vấn. Hãy chuẩn bị một bài giới thiệu ngắn gọn (1–2 phút) tập trung vào kinh nghiệm làm việc, kỹ năng nổi bật và định hướng nghề nghiệp của bạn.
Gợi ý: Theo cấu trúc Hiện tại → Quá khứ → Tương lai. Ví dụ: "Hiện tôi đang là senior developer tại công ty X, tôi có 4 năm kinh nghiệm làm việc với React và Node.js. Trước đây tôi từng..."
2. Điểm mạnh và điểm yếu của bạn là gì?
Nhà tuyển dụng muốn đánh giá sự tự nhận thức của bạn. Hãy nêu điểm mạnh liên quan trực tiếp đến vị trí ứng tuyển, và chọn điểm yếu mà bạn đang cải thiện được.
Gợi ý: "Điểm mạnh của tôi là khả năng debug hệ thống phức tạp và tối ưu hiệu năng. Điểm yếu là đôi khi tôi muốn giải quyết mọi vấn đề hoàn hảo, nhưng tôi đang học cách ưu tiên và trade-off tốt hơn."
3. Tại sao bạn muốn làm việc tại công ty chúng tôi?
Câu hỏi này kiểm tra sự nghiêm túc và hiểu biết của bạn về công ty. Hãy nghiên cứu về sản phẩm, văn hóa và định hướng phát triển của công ty trước khi phỏng vấn.
4. Giải thích sự khác biệt giữa == và === trong JavaScript
== (so sánh lỏng) thực hiện type coercion — tự động chuyển đổi kiểu dữ liệu trước khi so sánh. === (so sánh chặt) so sánh cả giá trị lẫn kiểu dữ liệu, không có coercion.
console.log(1 == "1"); // true (coercion)
console.log(1 === "1"); // false (khác type)
5. RESTful API là gì? Các nguyên tắc cốt lõi?
REST (Representational State Transfer) là kiến trúc thiết kế API dựa trên HTTP. Các nguyên tắc cốt lõi bao gồm: Stateless, Client-Server, Cacheable, Uniform Interface, Layered System và Code on Demand (tùy chọn).
6. Explain SOLID principles
- Single Responsibility: mỗi class chỉ có một lý do để thay đổi
- Open/Closed: mở để mở rộng, đóng để sửa đổi
- Liskov Substitution: subclass phải thay thế được superclass
- Interface Segregation: nhiều interface nhỏ tốt hơn một interface lớn
- Dependency Inversion: phụ thuộc vào abstraction, không phải implementation
7. Database indexing hoạt động như thế nào?
Index là cấu trúc dữ liệu (thường là B-tree) giúp tìm kiếm nhanh hơn bằng cách giảm số lượng rows phải scan. Index tăng tốc độ READ nhưng làm chậm WRITE và tốn bộ nhớ thêm.
8. Explain the event loop in Node.js
Node.js chạy single-threaded nhưng xử lý I/O non-blocking thông qua event loop. Khi có async operation (như đọc file, gọi API), Node.js đẩy vào callback queue. Event loop liên tục kiểm tra call stack và callback queue để thực thi code.
9. Bạn xử lý xung đột trong team như thế nào?
Đây là câu hỏi hành vi (behavioral). Dùng phương pháp STAR: Situation (tình huống), Task (nhiệm vụ), Action (hành động), Result (kết quả) để trả lời.
10. Bạn có câu hỏi gì cho chúng tôi không?
Luôn chuẩn bị 2–3 câu hỏi thông minh. Ví dụ: "Tech stack chính của team là gì?", "Quy trình onboarding và mentoring ra sao?", "Team đang gặp thách thức kỹ thuật lớn nhất nào?"
