Interview Experience
ĐỌC THỬ 1/3Software Engineer
Junior · Technology / Software · Singapore
Bối cảnh trải nghiệm
Một vòng technical interview không hề "junior": từ OSI model, TCP 3-way handshake đến context switching, deadlock, race condition và goroutine — rồi kết thúc bằng một bài coding về Dynamic Programming.
Phỏng vấn Software Engineer tại Công Ty S: Từ TCP Handshake đến 1 triệu Goroutine - Một vòng technical xoáy sâu vào Network, OS và Concurrency
My Experience
Phỏng vấn Junior Software Engineer tại Công Ty S: Một vòng technical xoáy sâu vào Network, OS và Concurrency
Một vòng technical interview không hề "junior": từ OSI model, TCP 3-way handshake đến context switching, deadlock, race condition và goroutine — rồi kết thúc bằng một bài coding về Dynamic Programming.
Bối cảnh
Đây là một vòng technical interview cho vị trí Junior Software Engineer tại Công Ty S, diễn ra cuối năm 2025.
Điểm đáng chú ý nhất của buổi phỏng vấn là interviewer gần như không tập trung vào framework hay syntax của một ngôn ngữ cụ thể.
Thay vào đó, phần lớn thời gian được dành cho những kiến thức nền tảng:
- Networking
- Operating Systems
- Concurrency
- Coding / Problem Solving
Và cách hỏi cũng không dừng ở mức định nghĩa.
Một câu hỏi có thể bắt đầu rất cơ bản, nhưng ngay sau đó interviewer tiếp tục hỏi "vì sao?", "nếu trường hợp này xảy ra thì sao?" hoặc đưa ra một tình huống cụ thể để kiểm tra xem ứng viên thực sự hiểu cơ chế bên dưới hay chỉ đang nhớ kiến thức theo kiểu textbook.
Đó cũng là pattern xuyên suốt buổi phỏng vấn.
Networking: Không chỉ hỏi TCP là gì
Phần Networking mở đầu với OSI model.
Ứng viên được hỏi về tên các tầng và chức năng của từng tầng, sau đó chuyển sang những kiến thức quen thuộc hơn như HTTP/1, TCP và UDP.
Nhưng phần TCP mới thực sự bắt đầu đào sâu.
TCP 3-way handshake
Một trong những câu hỏi là mô tả chi tiết quá trình 3-way handshake và giải thích vai trò của sequence number.
Đây không chỉ là câu hỏi để nhớ ba bước SYN → SYN-ACK → ACK.
Khi bị hỏi sâu hơn, ứng viên cần giải thích được TCP đang cố thiết lập điều gì, sequence number được dùng như thế nào và tại sao cơ chế này cần thiết cho một connection-oriented protocol.
TCP retransmission
Một câu hỏi khác đi vào cơ chế retry / retransmission của TCP.
Điểm quan trọng ở đây là không nên hiểu TCP đơn giản là "gửi không được thì gửi lại".
TCP sử dụng acknowledgement, sequence number, timeout và các cơ chế liên quan đến congestion control để phát hiện và xử lý packet loss.
Khi server nhận bị quá tải thì chuyện gì xảy ra?
Một trong những tình huống thú vị nhất của buổi phỏng vấn là:
Nếu server A gửi một lượng request rất lớn tới server B, nhưng server B đang quá tải và không thể xử lý thêm, thì chuyện gì xảy ra ở phía A trong TCP?
Câu hỏi này buộc ứng viên phải kết nối nhiều concept với nhau thay vì trả lời một định nghĩa riêng lẻ.
Ở mức TCP, receiver có thể điều tiết lượng dữ liệu mà sender được phép gửi thông qua receive window / flow control. Nếu packet bị mất hoặc acknowledgement không đến đúng thời gian, TCP cũng có cơ chế retransmission.
Nói cách khác, câu hỏi không đơn giản là "server B quá tải thì A retry".
Ứng viên cần phân biệt được flow control, congestion control và retransmission đang giải quyết những vấn đề khác nhau như thế nào.
Operating Systems & Concurrency: Phần nặng nhất
Nếu Networking kiểm tra khả năng hiểu protocol, thì phần Operating Systems & Concurrency kiểm tra sâu hơn về cách máy tính thực sự chạy code.
Thread vs Process
Một câu hỏi nền tảng nhưng rất dễ bị trả lời theo kiểu học thuộc:
Thread khác Process như thế nào?
Từ đó interviewer tiếp tục hỏi:
- Khi nào nên dùng multithreading?
- Khi nào nên dùng multiple processes?
- Vì sao thread thường được xem là "lightweight" hơn process?
- Tại sao trong nhiều trường hợp người ta lại ưu tiên multithreading?
Điểm quan trọng không chỉ là biết thread và process khác nhau ở memory space.
Bạn cần hiểu sự khác biệt đó ảnh hưởng như thế nào đến resource sharing, isolation, communication và cost của việc tạo / chuyển đổi execution context.
Concurrency
Bạn đang đọc phần mở đầu của trải nghiệm này.
Phần còn lại bao gồm
- ·Phần còn lại của câu chuyện
- ·Chi tiết quy trình và câu hỏi (nếu có)
- ·Những điều người viết ước mình biết trước
Trải nghiệm liên quan
Gợi ý dựa trên chủ đề, ngành và cấp bậc tương tự bài bạn vừa đọc.
Khám phá thêm trên EmpSignal
Ngoài đọc trải nghiệm, đây là những cách khác để kết nối và chuẩn bị tốt hơn.
Signal Talk
Ghép 1:1 ẩn danh với người cùng chủ đề — không lộ email, luôn là cuộc trò chuyện thật.
Tìm người để nói chuyện →Signal Interview Prep AI
EmpSignal AI đọc job description, đối chiếu với trải nghiệm phỏng vấn thật, rồi chỉ ra câu hỏi, stories và điểm dễ bị hỏi sâu.
home.pillars.prepBadgeBạn cũng có một câu chuyện?
Chia sẻ trải nghiệm phỏng vấn hoặc nơi làm việc của bạn — ẩn danh, không lộ email hay tên công ty.