FDE PulseViệc làm FDE đang mở 632Mới trong 7 ngày 57Công ty đang tuyển 95Nhận làm từ xa 24%Lương trung vị (Mỹ) $205kTuyển nhiều nhất Databricks 114
EN

Tờ báo của nghề Forward Deployed Engineer

Bách khoa

Đọc tin tuyển Forward Deployed Engineer của Chalk: từng dòng đòi hỏi gì, và chuẩn bị ra sao

Tin tuyển dụng này chỉ có vài dòng, nhưng dòng nào cũng biến được thành một dự án nhỏ, một bản memo hay một câu trả lời phỏng vấn, để bạn cho nhà tuyển dụng thấy bằng chứng chứ không chỉ kể.

Kỹ sư ngồi trước laptop có mã nguồn trong văn phòng, hoặc nhóm kỹ sư phác thảo giải pháp dữ liệu trên bảng trắng.
Ảnh: Kristin Hardwick / CC0
Chia sẻLinkedInFacebookX

Tóm tắt nhanh

  • Chalk yêu cầu từ 2 năm backend trở lên và thành thạo Python, SQL; kinh nghiệm ML, MLOps là điểm cộng.
  • Sản phẩm của Chalk xoay quanh dữ liệu mới nhất tại thời điểm inference, nên bài kiểm tra thật là bạn có hiểu feature thời gian thực hay không.
  • Giao tiếp, storytelling và việc gợi ý sản phẩm cho khách được ghi ngang hàng với kỹ thuật, nên bạn cần bằng chứng cho cả hai.
Dòng thời gian một ngày từ 00:00 đến 24:00. Job tính feature chạy lúc nửa đêm, bảng tính sẵn ghi 0 giao dịch suốt cả ngày. Lúc 14:00, một tài khoản bị chiếm quyền thực hiện 7 giao dịch trong 10 phút, được đánh dấu màu cam; mô hình cho qua cả 7 lần vì feature chỉ được tính lại ở job nửa đêm kế tiếp.
Feature "số giao dịch hôm qua" được tính bằng job chạy lúc nửa đêm nên luôn chậm tới 24 giờ: lúc 14:00, đợt 7 giao dịch trong 10 phút không hiện lên trong bảng tính sẵn. Nguồn: ví dụ khách hàng giả định trong bài.

Bạn mở tin tuyển Forward Deployed Engineer của Chalk và thấy nó ngắn đến bất ngờ. Có hai năm backend, Python, SQL, rồi một dòng về giao tiếp, giải quyết vấn đề, storytelling và phân tích.

Đọc lướt, ai cũng thấy mình khớp. Chính vì vậy mà tin này khó: khi yêu cầu nghe quen thuộc như thế, người được gọi phỏng vấn là người chứng minh được, chứ không phải người chỉ kể là mình có.

Cách đọc một tin FDE là đặt mỗi dòng cạnh công việc thật mà nó mô tả. Tin của Chalk nói rõ việc hằng ngày là viết code để triển khai công nghệ Chalk cho khách hàng và cả khách tiềm năng. Nghĩa là bạn không chỉ viết code: bạn viết code trong hệ thống của người khác, đôi khi trước cả khi họ ký hợp đồng.

Nếu bạn đang làm backend và muốn chuyển sang FDE, cách đọc từng dòng như dưới đây dùng được cho cả những tin tuyển dụng khác, không riêng gì Chalk.

Sản phẩm quyết định bạn bị hỏi gì

Muốn đoán buổi phỏng vấn kỹ thuật sẽ hỏi gì, hãy nhìn vào thứ bạn sẽ triển khai. Chalk tự mô tả là nền tảng dữ liệu thời gian thực cho suy luận AI, giúp khách hàng dự đoán bằng dữ liệu mới nhất ngay tại thời điểm inference. Các công ty dùng Chalk hằng ngày gồm Doppel, Sunrun, Whatnot, Socure, Found, Medely và iwoca.

Từ đó, yêu cầu “thành thạo Python, SQL” có nghĩa cụ thể hơn nhiều so với một dòng chung chung. Bạn sẽ phải viết logic feature, truy vấn dữ liệu của khách và lý giải vì sao một con số ở môi trường production khác với lúc huấn luyện.

Điểm cộng trong tin cũng đi theo hướng đó: kinh nghiệm làm sản phẩm ML hoặc dữ liệu, hiểu MLOps và hạ tầng ML, và từng làm FDE ở một startup ML tăng trưởng nhanh.

Ví dụ: feature tính lúc nửa đêm bỏ sót kẻ gian

Thử hình dung một khách hàng giả định làm cho vay trực tuyến. Mô hình chống gian lận của họ dùng feature “số giao dịch của người dùng trong ngày hôm qua”, được tính bằng một job chạy lúc nửa đêm.

Một tài khoản bị chiếm quyền thực hiện 7 giao dịch trong 10 phút lúc 14 giờ. Bảng tính sẵn vẫn ghi 0 cho tài khoản đó, nên mô hình cho qua cả 7 lần.

Đây là bảng mà khách đang dùng:

-- Job chạy mỗi đêm: dữ liệu luôn cũ tới 24 giờ
SELECT user_id, COUNT(*) AS txn_count_1d
FROM transactions
WHERE created_at >= CURRENT_DATE - INTERVAL '1 day'
  AND created_at <  CURRENT_DATE
GROUP BY user_id;

Cách sửa là tính feature ngay lúc có request chấm điểm, dựa trên dữ liệu mới nhất. Đoạn Python dưới đây viết chung chung, không phải cú pháp của Chalk, nhưng đúng là loại logic bạn sẽ viết ở phía khách:

def txn_count_10m(conn, user_id, now):
    # Đếm giao dịch trong 10 phút ngay trước thời điểm chấm điểm
    row = conn.execute(
        """SELECT COUNT(*) FROM transactions
           WHERE user_id = %s
             AND created_at >  %s - INTERVAL '10 minutes'
             AND created_at <= %s""",
        (user_id, now, now),
    ).fetchone()
    return row[0]

Đến đây mới là chỗ phân biệt người làm dữ liệu cẩn thận với người chỉ biết viết truy vấn. Để huấn luyện lại mô hình bằng feature mới, bạn phải tính nó tại đúng thời điểm của từng sự kiện trong quá khứ, chứ không phải tại thời điểm hiện tại:

-- Join point-in-time: chỉ dùng dữ liệu đã có trước mỗi sự kiện
SELECT l.event_id, l.label, COUNT(t.id) AS txn_count_10m
FROM labels l
LEFT JOIN transactions t
  ON  t.user_id = l.user_id
  AND t.created_at >  l.event_time - INTERVAL '10 minutes'
  AND t.created_at <= l.event_time
GROUP BY l.event_id, l.label;

Nếu bạn lỡ dùng now() thay cho l.event_time, mô hình sẽ học bằng những giao dịch xảy ra sau khoảnh khắc nó cần ra quyết định. Điểm offline trông rất đẹp, còn production thì không theo kịp.

Giải thích được lỗi này trong hai phút, kèm một ví dụ có số, là câu trả lời mà người phỏng vấn ở một công ty dữ liệu thời gian thực muốn nghe.

Storytelling không phải kỹ năng phụ

Tin của Chalk đặt storytelling cạnh khả năng phân tích, và lý do nằm ở chính ví dụ trên. Đội kỹ thuật của khách hiểu đoạn SQL. Người quản lý rủi ro của họ cần nghe câu chuyện: một tài khoản, 7 giao dịch, 10 phút, và hệ thống không nhận ra vì dữ liệu cũ một ngày.

Tin cũng ghi FDE làm việc chặt với Engineering và Sales, và gợi ý sản phẩm mới cho khách khi việc kinh doanh của họ thay đổi. Đó là mặt thương mại của vai trò. Một FDE kể được câu chuyện “feature cũ làm bạn mất tiền ở chỗ này” thì cũng là người mở được cuộc nói chuyện về việc mở rộng triển khai.

Chalk còn tuyển Forward Deployed Strategist, một vị trí cùng nhánh forward deployed, và tin này nói phần giao tiếp thẳng hơn tin FDE.

Việc đầu tiên là chạy technical discovery: tìm hiểu kỹ hệ thống của khách vận hành ra sao, chỗ nào đang hỏng, họ muốn ra mắt gì.

Người được chọn còn phải sẵn sàng nói với khách điều họ không muốn nghe, kể cả khi kế hoạch của họ sai.

Tin FDE không ghi yêu cầu này, nhưng vì hai vị trí cùng nhánh, đây là sự chuẩn bị đáng làm. Trong ví dụ trên, giả sử khách đề nghị “chạy job nửa đêm thành mỗi giờ một lần”: câu trả lời trung thực là kẻ gian vẫn có cả một giờ để ra tay, và bạn nên luyện nói câu đó thật lịch sự nhưng không né tránh.

Biến tin tuyển dụng thành bằng chứng

Việc đầu tiên là biến đoạn code ở trên thành một repo nhỏ, có dữ liệu giả, có test cho join point-in-time và một README giải thích sự khác nhau giữa feature tính trước theo lô và feature tính lúc inference. Repo này chứng minh cả Python lẫn SQL tốt hơn bất kỳ dòng “proficient” nào trong CV.

Việc thứ hai là viết một memo discovery một trang cho chính repo đó: hệ thống của khách đang chạy thế nào, chỗ nào hỏng, bạn đề xuất gì, đo kết quả ra sao. Đó là bằng chứng cho giao tiếp bằng văn bản mà tin tuyển dụng nhắc đến.

Việc thứ ba là sửa CV. Mỗi gạch đầu dòng nên theo mẫu: vấn đề của người dùng hoặc khách hàng, bạn đã làm gì, kết quả đo được. Nếu bạn từng làm pipeline dữ liệu, cache hay dịch vụ có độ trễ thấp, hãy viết nó dưới góc nhìn “dữ liệu mới đến đâu khi hệ thống ra quyết định”.

Nhánh nghề này cũng có đường đi dài: Chalk đang tuyển Director of Forward Deployed Engineering ở New York, yêu cầu từ 10 năm kinh nghiệm kỹ thuật, trong đó ít nhất 3 năm dẫn dắt đội kỹ sư làm việc trực tiếp với khách, và làm tại văn phòng 5 ngày mỗi tuần.

Những lỗi thường gặp

Lỗi phổ biến nhất là coi dòng storytelling như lời trang trí và chỉ ôn thuật toán. Ở một vị trí mà bạn viết code cho cả khách tiềm năng, khả năng giải thích cũng quan trọng ngang với khả năng code.

Lỗi thứ hai là nói về ML ở mức khái niệm mà không chạm vào dữ liệu. Nếu bạn không chỉ ra được rò rỉ dữ liệu xảy ra ở dòng SQL nào, điểm cộng “hiểu MLOps” khó mà thuyết phục ai.

Lỗi thứ ba là chiều khách quá mức. Tiêu chí dám nói “kế hoạch này sai” nằm trong tin Strategist chứ không phải tin FDE, nhưng một câu trả lời tình huống kiểu “em sẽ làm đúng như khách muốn” khó thuyết phục ở bất kỳ vai trò nào trong nhánh này.

Trước khi nộp hồ sơ, hãy có trong tay một repo với join point-in-time và một memo một trang đi kèm. Hai thứ đó biến dòng “Python, SQL” và dòng “storytelling” thành điều người tuyển dụng tự kiểm tra được.

Bài này có hữu ích không?

Dùng cùng trợ lý AIHỏi Claude ↗Hỏi ChatGPT ↗
5 nguồn
Đọc tiếp trên lộ trình · Chặng 7: Dẫn dắtĐọc tin tuyển FDE của Arize AI: mỗi yêu cầu cần một bằng chứngPython, Kubernetes, GenAI hay kỹ năng giao tiếp: mỗi dòng trong tin tuyển là một việc bạn sẽ làm ở chỗ khách, và người phỏng vấn sẽ hỏi bạn đã làm việc đó ở đâu.