Việc làm

6 ngày trước · Hồ Chí Minh · Hybrid

Senior Back-End Developer (Python, AI/ML, Integration)

Simpson Strong-Tie Vietnam · Backend Developer

Xem mô tả & ứng tuyển trên ITviecMô tả công việc, lương và ứng tuyển nằm ở ITviec.

10 câu hỏi có thể gặp khi phỏng vấn

Chọn theo kỹ năng và cấp của tin (AI / Machine Learning, C# & .NET, Python). Gợi ý trả lời do Drama Công Ty biên soạn để bạn ôn nhanh, không phải đề của công ty.

  1. 01Khi nào bạn chọn prompt engineering, RAG hay fine-tuning?AI / Machine Learning

    Gợi ý trả lời

    Bắt đầu từ cách rẻ và nhanh nhất, chỉ nâng cấp khi đo được là chưa đủ.

    • Prompting: thử đầu tiên; chỉ dẫn rõ, ví dụ mẫu (few-shot), định dạng đầu ra có cấu trúc.
    • RAG: khi mô hình thiếu kiến thức (tài liệu nội bộ, dữ liệu thay đổi thường xuyên), cần trích dẫn nguồn.
    • Fine-tuning: khi cần đổi hành vi ổn định (văn phong, định dạng, tác vụ hẹp lặp lại), hoặc muốn dùng mô hình nhỏ rẻ hơn thay mô hình lớn. Kỹ thuật như LoRA giảm chi phí.

    Fine-tuning không phải cách tốt để nhồi kiến thức mới hay thay đổi liên tục; RAG hợp hơn.

    Người phỏng vấn muốn nghe: có bộ đánh giá trước để so sánh các phương án bằng số liệu.

    Ôn thêm câu hỏi AI / Machine Learning →
  2. 02Hallucination của LLM là gì? Bạn giảm thiểu nó trong sản phẩm thế nào?AI / Machine Learning

    Gợi ý trả lời

    Hallucination là khi mô hình sinh ra nội dung nghe hợp lý nhưng sai hoặc không có căn cứ. Không loại bỏ hoàn toàn được, chỉ giảm và kiểm soát.

    • Cung cấp ngữ cảnh đúng qua RAG, yêu cầu chỉ trả lời dựa trên nguồn và trích dẫn.
    • Cho phép và khuyến khích trả lời "không đủ thông tin".
    • Dùng đầu ra có cấu trúc (JSON schema) và kiểm tra hợp lệ bằng code.
    • Với số liệu, tra cứu hoặc tính toán qua tool/API thay vì để mô hình tự nhớ.
    • Kiểm tra sau sinh: đối chiếu câu trả lời với nguồn.
    • Thiết kế UX hiển thị nguồn; tác vụ rủi ro cao có người duyệt.

    Người phỏng vấn muốn nghe: đo tỷ lệ hallucination bằng bộ đánh giá, không chỉ dựa vào cảm giác.

    Ôn thêm câu hỏi AI / Machine Learning →
  3. 03Bạn triển khai một mô hình ML lên production và theo dõi nó thế nào?AI / Machine Learning

    Gợi ý trả lời

    Mô hình lên production là một phần mềm cần đóng gói, phiên bản hoá, giám sát và cập nhật như mọi dịch vụ khác.

    • Đóng gói: lưu mô hình kèm phiên bản dữ liệu, code, siêu tham số (model registry).
    • Phục vụ: API online hoặc chạy batch tuỳ yêu cầu độ trễ; dùng chung code tính đặc trưng giữa train và serve để tránh lệch.
    • Triển khai an toàn: shadow hoặc canary, so sánh với mô hình cũ.
    • Giám sát: độ trễ, lỗi; data drift (phân phối đầu vào thay đổi); chất lượng dự đoán khi có nhãn thật.
    • Cập nhật: train lại định kỳ hoặc khi drift vượt ngưỡng, có rollback.

    Hay sai: training-serving skew, xử lý đặc trưng ở hai nơi bằng hai đoạn code khác nhau.

    Ôn thêm câu hỏi AI / Machine Learning →
  4. 04Lỗi N+1 query trong Entity Framework Core là gì và xử lý thế nào?C# & .NET

    Gợi ý trả lời

    N+1 là khi lấy danh sách N bản ghi bằng 1 query, rồi mỗi bản ghi lại phát sinh thêm 1 query để lấy dữ liệu liên quan, thường do lazy loading hoặc truy vấn trong vòng lặp.

    Cách xử lý:

    • Eager loading: .Include(o => o.Items).
    • Tốt hơn nữa là projection chỉ lấy cột cần: .Select(o => new OrderDto(o.Id, o.Items.Count)).
    • Include nhiều collection gây "cartesian explosion" thì dùng .AsSplitQuery().
    • Màn hình chỉ đọc thì thêm .AsNoTracking() để giảm chi phí change tracking.

    Để phát hiện, bật log SQL của EF Core khi phát triển, hoặc dùng công cụ APM xem số query mỗi request.

    Người phỏng vấn muốn nghe: bạn kiểm tra SQL thực sự được sinh ra thay vì tin LINQ trông gọn là chạy nhanh.

    Ôn thêm câu hỏi C# & .NET →
  5. 05Garbage Collector của .NET hoạt động thế nào? Khi nào cần IDisposable?C# & .NET

    Gợi ý trả lời

    GC quản lý heap theo thế hệ: object mới ở Gen 0, sống sót qua lần thu gom thì lên Gen 1, Gen 2. Phần lớn object chết trẻ nên thu gom Gen 0 rất rẻ. Object lớn (khoảng từ 85 KB) vào Large Object Heap và chỉ được thu cùng Gen 2.

    GC chỉ thu hồi bộ nhớ managed. Tài nguyên khác như file, socket, kết nối DB cần giải phóng chủ động qua IDisposable:

    await using var conn = new NpgsqlConnection(cs);
    using var stream = File.OpenRead(path);
    
    • Finalizer chỉ là lưới an toàn, chạy không xác định thời điểm và tốn chi phí.

    Hay sai: tạo mới HttpClient cho mỗi request rồi dispose, dễ cạn socket. Hãy dùng IHttpClientFactory hoặc một instance dùng chung.

    Ôn thêm câu hỏi C# & .NET →
  6. 06Context manager (with) là gì? Làm sao tự viết một context manager?Python

    Gợi ý trả lời

    Context manager đảm bảo việc "mở" và "dọn dẹp" luôn đi cùng nhau, kể cả khi có exception: đóng file, trả connection, nhả lock, rollback transaction.

    Cách nhanh nhất là dùng contextlib.contextmanager:

    from contextlib import contextmanager
    
    @contextmanager
    def db_transaction(conn):
        try:
            yield conn
            conn.commit()
        except Exception:
            conn.rollback()
            raise
    
    • Cách đầy đủ: viết class có __enter__ và __exit__(self, exc_type, exc, tb). Nếu __exit__ trả về True thì exception bị nuốt.
    • Bản async: async with, __aenter__/__aexit__ hoặc asynccontextmanager.

    Hay sai: quên raise lại exception trong khối except, khiến lỗi bị che mất và code phía sau tưởng mọi thứ đã thành công.

    Ôn thêm câu hỏi Python →
  7. 07Bạn đánh giá chất lượng một ứng dụng LLM (chatbot, RAG) thế nào trước khi ra mắt và mỗi lần thay đổi prompt?AI / Machine Learning · Senior

    Gợi ý trả lời

    Xây một bộ đánh giá (eval set) đại diện cho câu hỏi thật, chạy tự động như test hồi quy mỗi khi đổi prompt, mô hình hay cách truy xuất.

    • Dữ liệu: câu hỏi thật đã ẩn danh, trường hợp khó, câu hỏi ngoài phạm vi, câu cố tình phá.
    • Đánh giá truy xuất: tài liệu đúng có nằm trong top-k không (recall@k).
    • Đánh giá câu trả lời: đúng sự thật, bám nguồn, đầy đủ, đúng định dạng; dùng kiểm tra bằng code khi được, LLM-as-judge có rubric rõ, và người chấm mẫu để hiệu chỉnh.
    • Sau ra mắt: thu phản hồi người dùng, log và soi các ca thất bại để bổ sung bộ eval.

    Hay sai: chỉ thử vài câu bằng tay rồi kết luận "ổn".

    Ôn thêm câu hỏi AI / Machine Learning →
  8. 08Chi phí và độ trễ của ứng dụng LLM quá cao. Bạn tối ưu thế nào?AI / Machine Learning · Senior

    Gợi ý trả lời

    Đo trước: chi phí và độ trễ đến từ số token vào/ra, kích thước mô hình, số lần gọi trong một yêu cầu.

    • Chọn mô hình: định tuyến, việc dễ cho mô hình nhỏ, việc khó mới gọi mô hình lớn.
    • Giảm token: prompt gọn, truy xuất ít đoạn nhưng chính xác hơn (rerank), giới hạn độ dài đầu ra.
    • Prompt caching cho phần prompt cố định lặp lại; cache câu trả lời cho câu hỏi trùng.
    • Streaming để người dùng thấy chữ sớm, cải thiện độ trễ cảm nhận.
    • Gộp việc không gấp thành batch.
    • Tự host: quantization, batching động, engine suy luận tối ưu.

    Người phỏng vấn muốn nghe: mọi tối ưu đều kiểm tra lại bằng bộ eval để chắc chất lượng không giảm.

    Ôn thêm câu hỏi AI / Machine Learning →
  9. 09Chatbot RAG trả lời sai dù tài liệu có thông tin đúng. Bạn debug thế nào?AI / Machine Learning · Senior

    Gợi ý trả lời

    Tách lỗi theo từng khâu của pipeline, kiểm tra từ dưới lên.

    1. Dữ liệu: tài liệu đã được nạp chưa, trích xuất từ PDF/bảng có bị vỡ không, có phiên bản cũ mâu thuẫn không.
    2. Chunking: thông tin cần thiết có bị cắt đôi giữa hai chunk không.
    3. Truy xuất: log các chunk lấy về cho câu hỏi đó; đúng chunk có nằm trong top-k không. Thử hybrid search, rerank, viết lại câu hỏi.
    4. Sinh: chunk đúng đã có trong prompt mà vẫn sai thì xem prompt, thứ tự đặt ngữ cảnh, quá nhiều ngữ cảnh nhiễu.
    5. Thêm ca này vào bộ eval để tránh tái diễn.

    Người phỏng vấn muốn nghe: có tracing để xem từng bước, không đoán mò.

    Ôn thêm câu hỏi AI / Machine Learning →
  10. 10Kể về một lần bạn bất đồng với đồng nghiệp hoặc trưởng nhóm. Bạn xử lý thế nào?Câu hỏi hành vi & văn hoá

    Gợi ý trả lời

    Dùng STAR: Situation (bối cảnh), Task (nhiệm vụ), Action (bạn làm gì), Result (kết quả). Phần Action nên chiếm nhiều nhất.

    Câu mẫu:

    • S: "Lead muốn dùng một thư viện mới cho module báo cáo, em thấy thư viện đó còn ít người dùng và lo về bảo trì."
    • T: "Em cần nêu rủi ro mà không làm chậm tiến độ."
    • A: "Em gặp riêng anh, đưa so sánh hai phương án và đề xuất làm thử một bản nhỏ trong hai ngày để đánh giá."
    • R: "Kết quả thử cho thấy thư viện cũ đáp ứng đủ, anh đồng ý giữ lại. Từ đó team có thói quen làm bản thử trước khi đổi công nghệ."

    Người phỏng vấn muốn nghe: bạn tranh luận bằng dữ liệu, tôn trọng người khác, và chấp nhận quyết định cuối cùng kể cả khi không theo ý mình.

    Ôn thêm câu hỏi Câu hỏi hành vi & văn hoá →

Bạn đã phỏng vấn ở Simpson Strong-Tie Vietnam?

Kể lại các vòng và câu hỏi đã gặp (ẩn danh) để người sau ôn đúng trọng tâm.

Chia sẻ kinh nghiệm phỏng vấn