Danh sách bài viết

Bài 3: Cấu trúc portfolio cho AI Engineer trái ngành

Hướng dẫn tổ chức portfolio 3-5 project theo tier (Foundation, Intermediate, Advanced), cấu trúc GitHub profile, README chuẩn, và angle domain crossover cho người trái ngành chuyển sang AI Engineer.

27/05/2026
0 lượt xem
1

Mục tiêu bài học

Sau bài này, bạn sẽ:

  • ✅ Biết phân bổ 3-5 project trong portfolio để cover phổ kỹ năng lẫn chiều sâu
  • ✅ Hiểu ba tier project (Foundation / Intermediate / Advanced) và lý do cần cả ba
  • ✅ Biết cách tận dụng domain cũ để tạo project khác biệt
  • ✅ Có template README và GitHub profile để áp dụng ngay
  • ✅ Biết khi nào nên làm personal website, khi nào không cần
2

Portfolio là gì và tại sao quan trọng với người trái ngành

Portfolio trong ngữ cảnh AI Engineer là tập hợp các project được trình bày có chủ đích để chứng minh năng lực kỹ thuật.

Vì sao portfolio quan trọng hơn bằng cấp với người trái ngành

Người trái ngành không có "AI Engineer" trong job title cũ, không có bằng CS, và thường không có kinh nghiệm AI chính thức. Bằng chứng duy nhất recruiter có thể kiểm chứng là code bạn đã viết.

  • Recruiter filter (vòng hồ sơ): Portfolio có demo link và README rõ ràng → recruiter có lý do để gọi bạn lên technical interview, thay vì reject ngay vì thiếu kinh nghiệm.
  • Technical interview: Interviewer dùng project của bạn làm chủ đề thảo luận. "Walk me through your RAG chatbot architecture" là câu hỏi mở, cho phép bạn kiểm soát phần lớn cuộc hội thoại.
  • Culture fit: Project tốt cho thấy bạn tự học, tự giải quyết vấn đề — hai thuộc tính recruiter muốn thấy ở AI Engineer.

Portfolio vs CV

CV liệt kê những gì bạn đã làm. Portfolio chứng minh bạn có thể làm. Với người trái ngành, portfolio bù lại CV thiếu kinh nghiệm AI. Recruiter đọc CV trước, nhưng quyết định cuối cùng phụ thuộc portfolio.

3

Portfolio gồm những kênh nào

Portfolio không chỉ là GitHub. Mỗi kênh phục vụ một đối tượng khác nhau:

Kênh Đối tượng chính Mức độ bắt buộc
GitHub profile Technical reviewer, hiring manager Bắt buộc
LinkedIn Featured section Recruiter, networking Nên có
Personal website Hiring manager, domain expert Optional — chỉ làm khi có content thực
PDF portfolio Apply formal (consulting, bank, enterprise) Theo yêu cầu job posting

GitHub là kênh chính. LinkedIn recruiter scan nhiều hơn GitHub, nhưng cả hai đều cần nhất quán về nội dung project bạn muốn highlight.

4

Phân bổ 3-5 project — phổ kỹ năng và chiều sâu

Portfolio cần trả lời hai câu hỏi của interviewer: "Bạn biết gì?" (breadth) và "Bạn biết sâu đến đâu?" (depth). 3-5 project là đủ để trả lời cả hai, không nên ít hơn 3 và không cần nhiều hơn 5.

Phân bổ khuyến nghị theo kỹ năng (breadth)

  • 1 project ML cổ điển (scikit-learn, XGBoost, feature engineering): chứng minh bạn nắm foundation trước khi nhảy vào deep learning.
  • 1 project Deep Learning (CNN hoặc RNN/LSTM, PyTorch hoặc TensorFlow): chứng minh bạn hiểu neural network architecture.
  • 1 project LLM / RAG / Agent (LangChain, LlamaIndex, OpenAI API...): chứng minh bạn làm được AI ứng dụng hiện đại.
  • 1 project domain crossover (optional nhưng rất có giá trị): dùng kiến thức nghề cũ, tạo context mà người học thuần CS khó có.

Chiều sâu (depth) — ít nhất 1 project nên có

Ít nhất 1 trong các project nên đi sâu hơn mức tutorial:

  • Có eval framework — đo được kết quả bằng số (accuracy, F1, BLEU, RAGAS score...).
  • Có monitoring đơn giản — log drift, log latency.
  • Có MLOps practice — CI/CD, Docker, MLflow tracking, hoặc versioned data.
  • Có engineering decision ghi lại — "Tại sao dùng ChromaDB? Tại sao chunk size 512?"

Project có depth là project interviewer sẽ hỏi kỹ. Chuẩn bị giải thích được từng quyết định kỹ thuật.

5

Cấp độ project (Tier 1, 2, 3)

Phân tier giúp bạn tự đánh giá portfolio hiện tại và xác định phần nào cần cải thiện.

Tier 1 — Foundation (1 project)

Mục tiêu: chứng minh bạn nắm vững quy trình ML cơ bản end-to-end.

  • Data loading, EDA, feature engineering.
  • Train/test split, cross-validation, metric đo lường.
  • Serve model qua API đơn giản (FastAPI).
  • README có kết quả số liệu.

Ví dụ: Customer churn prediction với scikit-learn + FastAPI — dự đoán churn từ transaction history, deploy API endpoint, README có accuracy/F1 và link demo.

Tier 2 — Intermediate (1-2 project)

Mục tiêu: chứng minh chiều sâu kỹ thuật — không chỉ chạy được mà còn hiểu tại sao.

  • Transfer learning hoặc fine-tuning pre-trained model.
  • Demo tương tác (Gradio, Streamlit).
  • Thêm logging hoặc monitoring cơ bản.
  • README giải thích lý do chọn architecture.

Ví dụ: Image classifier bệnh da liễu với EfficientNet (transfer learning), Gradio demo, confusion matrix, ghi rõ vì sao chọn EfficientNet thay vì ResNet.

Tier 3 — Advanced (1 project)

Mục tiêu: chứng minh tư duy production — không chỉ build được mà còn suy nghĩ về reliability và maintainability.

  • Eval framework đo chất lượng output (RAGAS, custom metric).
  • Docker hoặc CI/CD đơn giản.
  • Drift monitoring hoặc feedback loop.
  • Architecture diagram trong README.

Ví dụ: RAG chatbot trên tài liệu y tế nội bộ, eval bằng RAGAS (faithfulness, answer relevancy), Docker Compose, ghi lại kết quả eval baseline vs sau khi tune chunk size và retrieval strategy.

Không cần Tier 3 ngay từ đầu

Nếu bạn đang ở giai đoạn đầu, 2 Tier 1 + 1 Tier 2 đã đủ để apply junior/fresher AI roles. Tier 3 quan trọng hơn khi bạn nhắm mid-level hoặc role có yêu cầu "production experience".

6

Angle domain crossover — lợi thế của người trái ngành

Người học AI từ ngành khác có một lợi thế thực tế: bạn hiểu domain problem sâu hơn người CS thuần túy. Project dùng kiến thức domain cũ sẽ khác biệt và có độ tin cậy cao hơn vì bạn giải thích được tại sao feature này quan trọng, tại sao metric này phù hợp.

Ví dụ domain crossover theo ngành

Ngành cũ Project khả thi Lợi thế domain
Y / Dược Tóm tắt clinical notes, phân loại triệu chứng Biết ICD-10 codes, clinical terminology
Finance / Ngân hàng Credit scoring, fraud detection, stock sentiment Hiểu quy trình credit, biết feature nào signal thực
HR / Nhân sự CV ranking, interview question generator, attrition prediction Biết tiêu chí tuyển dụng thực tế
Luật Legal document QA, contract clause extraction Hiểu cấu trúc văn bản pháp lý
Giáo dục Auto-grading câu trả lời ngắn, personalized learning path Biết learning taxonomy, rubric chấm điểm
Logistics / Supply chain Demand forecasting, route optimization, anomaly detection Hiểu lead time, seasonality patterns thực tế
Báo chí / Truyền thông Fact-checking assistant, news summarization, bias detection Hiểu cấu trúc bài báo, nguồn tin

Cách trình bày domain angle trong README

Ghi rõ trong phần Problem và Engineering Decisions:

  • "Feature X được chọn vì trong thực tế finance, đây là chỉ số sớm của default risk..."
  • "Chunk size 256 token thay vì 512 vì clinical notes thường ngắn, mỗi đoạn là 1 symptom group..."

Đây là phần interviewer sẽ hỏi thêm — và bạn có thể trả lời dựa trên kinh nghiệm thực tế, không chỉ dựa trên paper.

7

Cấu trúc GitHub profile

GitHub profile là landing page kỹ thuật của bạn. Recruiter và hiring manager thường mở GitHub từ link trên CV — ấn tượng đầu tiên quan trọng.

Profile README

GitHub cho phép tạo repo username/username — nội dung README của repo này hiển thị trên profile page.

Profile README nên có:

  • Background ngắn (2-3 câu): domain cũ, mục tiêu hiện tại. Ví dụ: "5 năm làm credit analyst tại ngân hàng, hiện tập trung vào ML cho bài toán financial risk."
  • Skill stack: Python, FastAPI, PyTorch, LangChain, scikit-learn, Docker... Liệt kê theo nhóm (Languages / Frameworks / Infra), không liệt kê tất cả mọi thứ bạn từng nghe.
  • Featured projects: 3 project nổi bật với 1 câu mô tả mỗi project + link.
  • Contact: email, LinkedIn. Nếu recruiter muốn liên hệ mà không tìm được contact → cơ hội mất.

Pin 6 repo nổi bật

GitHub cho phép pin tối đa 6 repo lên profile. Mặc định GitHub sắp xếp theo star count — đây thường không phải thứ tự tốt nhất cho portfolio. Pin thủ công theo thứ tự:

  1. 3 project chính trong portfolio (Tier 2-3 ưu tiên hơn Tier 1).
  2. 1-2 project có domain crossover angle rõ ràng.
  3. 1 project learning có README chất lượng cao (dù scope nhỏ).

Dọn dẹp repo trước khi apply

Repo không được pin vẫn hiện trong tab Repositories. Recruiter có thể scroll xuống. Các repo nên archive hoặc để private trước khi apply:

  • Repo tên test123, fork-of-tutorial-15, practice.
  • Repo chỉ có 1-2 commit, không có README.
  • Fork repo tutorial không có thay đổi thực chất.

Archive (không xóa) để bảo toàn commit history nếu cần sau này.

8

README chuẩn cho mỗi project

README là tài liệu recruiter và interviewer đọc đầu tiên khi mở repo. Không có README = project không tồn tại với họ. Template dưới đây là cấu trúc tối thiểu:

# Tên Project

[Demo URL] | [Video demo 3 phút] | [Blog post giải thích]

![Demo GIF hoặc screenshot]

## Problem
1-2 câu mô tả vấn đề cụ thể bạn giải quyết.
Tránh viết chung chung như "AI để phân tích dữ liệu".

## Solution
Approach bạn chọn + lý do ngắn gọn.
Tech stack: Python 3.11, PyTorch 2.x, FastAPI, Docker.

## Architecture
[Diagram — dùng Mermaid hoặc draw.io export PNG]

## Results
| Metric     | Baseline | Model     |
|------------|----------|-----------|
| Accuracy   | 72%      | 89%       |
| F1 Score   | 0.68     | 0.87      |
| Latency p95| -        | 120ms     |

## Quick Start
```bash
git clone https://github.com/username/project-name
cd project-name
docker compose up
# hoặc
pip install -r requirements.txt
python src/main.py
```

## Engineering Decisions
- **Tại sao ChromaDB thay vì Pinecone?** ChromaDB chạy local,
  không cần API key, phù hợp demo và dev. Pinecone hợp lý hơn
  khi scale production.
- **Chunk size 512 token?** Thử nghiệm với 256/512/1024 — 512
  cho retrieval precision cao nhất trên tập eval 100 câu.

## What I Learned
- Điểm kỹ thuật bạn rút ra được từ project.
- Phần nào sẽ làm khác nếu làm lại.

## Dataset
Nguồn data, license, cách reproduce.

Lưu ý quan trọng về demo link

  • Demo link chết → recruiter click lỗi → ấn tượng xấu ngay lập tức. Kiểm tra link trước khi apply.
  • Nếu không duy trì được live demo, thay bằng video demo upload YouTube (unlisted) hoặc GIF trong README.
  • Hugging Face Spaces, Render free tier, Railway — các option deploy free, nhưng cold start chậm. Ghi chú "May take 30s to wake up" trong README nếu dùng free tier.

Phần Engineering Decisions là phần quan trọng nhất

Interviewer không chỉ muốn biết bạn làm gì, mà muốn biết bạn suy nghĩ thế nào khi đưa ra quyết định kỹ thuật. Đây là phần phân biệt người học tutorial với người thực sự hiểu. Viết ít nhất 3-5 decision với lý do cụ thể, không viết chung chung "vì dễ dùng".

9

Personal website — khi nào nên làm

Personal website không bắt buộc. Một website trống hoặc chỉ có placeholder text gây ấn tượng xấu hơn không có website. Làm khi bạn đã có content thực để đặt vào.

Khi nào personal website có giá trị

  • Bạn có ít nhất 3 blog post kỹ thuật đã viết xong (không phải dự định viết).
  • Bạn muốn showcase demo tương tác mà GitHub không render được.
  • Bạn apply role cần show design sense (AI Product, AI Researcher tại công ty product).

Stack và hosting

Chọn stack đơn giản nhất — mục tiêu là publish content, không phải build website đẹp:

  • Astro — static site, fast, markdown support tốt, deploy Vercel/Netlify.
  • Hugo — cực kỳ nhanh, template phong phú, phù hợp blog technical.
  • Next.js — nếu bạn muốn interactive demo tích hợp vào website.

Hosting free: GitHub Pages, Vercel, Netlify. Không cần domain riêng giai đoạn đầu — username.github.io là đủ.

Cấu trúc tối thiểu

  • Home: 1 đoạn intro, stack chính, link GitHub và LinkedIn.
  • Projects: card grid, mỗi card có ảnh + 2-3 câu + link demo + link GitHub.
  • Blog: chỉ nên có nếu bạn đã viết ít nhất 3 post thực chất.
  • Contact: email, không cần form phức tạp.
10

LinkedIn Featured section

Recruiter thường tìm ứng viên qua LinkedIn trước GitHub. Featured section hiển thị ngay dưới About — đây là vị trí dễ nhìn nhất trên profile. Nhiều recruiter không click vào GitHub nhưng sẽ click vào Featured card nếu được trình bày đủ hấp dẫn.

Cách dùng Featured section

Pin 3-5 item, theo thứ tự ưu tiên:

  1. Link demo project Tier 3 (RAG chatbot, production-level) với ảnh thumbnail hấp dẫn.
  2. Link GitHub repo Tier 2 (có Gradio demo, visualization).
  3. Link blog post hoặc LinkedIn article giải thích 1 project.
  4. Link GitHub profile README (nếu README của bạn chất lượng cao).

Mỗi Featured card cần có

  • Ảnh thumbnail rõ (screenshot demo, architecture diagram).
  • Title ngắn — 5-8 từ.
  • Description 2-3 câu — problem + kết quả đo được + tech stack chính.

Tránh pin link GitHub repo không có thumbnail — LinkedIn sẽ dùng avatar GitHub mặc định, nhìn không professional.

11

PDF portfolio cho apply formal

PDF portfolio cần thiết khi apply vào môi trường formal: consulting, ngân hàng lớn, enterprise có quy trình HR nhiều bước. Startup và product company thường chỉ cần GitHub + LinkedIn + CV.

Cấu trúc 1-2 trang

  • Header: Tên, role target ("AI Engineer — Financial Domain"), email, LinkedIn, GitHub.
  • Projects (phần chính): 3-4 project, mỗi project gồm:
    • Ảnh thumbnail nhỏ hoặc architecture snippet.
    • Title + 3-4 bullet (problem, tech stack, metric kết quả, link).
  • Skills: Python, PyTorch, scikit-learn, LangChain, FastAPI, Docker, SQL... Nhóm theo category.
  • Education / Experience tóm tắt: 2-3 dòng mỗi mục, không cần chi tiết (CV đã có).

Lưu ý

  • Giữ link clickable trong PDF — đừng viết link dài dạng plain text.
  • Font tối giản (Inter, Source Sans Pro), không dùng font decorative.
  • Nếu bạn không có background design, dùng Notion export hoặc Canva resume template thay vì tự layout.
12

Sub-portfolio theo job target

Khi apply nhiều role khác nhau (MLOps vs LLM Engineer vs Computer Vision), thứ tự pin GitHub và Featured LinkedIn nên được điều chỉnh theo job target. Việc này tốn khoảng 5 phút mỗi lần apply.

Ví dụ re-pin theo role

Role target Pin lên top Xuống thấp hơn
MLOps Engineer Project có CI/CD + MLflow + drift monitor Project LLM chatbot
LLM / RAG Engineer RAG chatbot có eval + Docker Project CNN classification
Computer Vision Image project có demo + metric Project churn prediction
ML Engineer generalist Project Tier 3 bất kỳ Không thay đổi nhiều

Không cần viết lại project — chỉ thay đổi thứ tự pin. Project vẫn như cũ, chỉ là bạn đang đặt project liên quan nhất lên vị trí recruiter nhìn thấy đầu tiên.

13

Sai lầm thường gặp

Các lỗi dưới đây xuất hiện thường xuyên ở portfolio của người trái ngành. Mỗi lỗi đều có tác động cụ thể đến cách recruiter đánh giá.

1. Liệt kê 20 repo rời rạc, không tier

20 repo với chất lượng đồng đều trung bình trông kém ấn tượng hơn 4 repo có README tốt. Recruiter không có thời gian để phân loại — nếu trang Repositories của bạn lộn xộn, họ sẽ bỏ qua. Giải pháp: archive repo cũ, pin 6 repo tốt nhất.

2. Repo tên không rõ nghĩa

test123, ml-project-final-v3, fork-of-notebook — những tên này cho thấy repo là throwaway. Đặt tên theo vấn đề giải quyết: financial-fraud-detection, clinical-notes-summarizer.

3. Demo link die

Recruiter mở demo lỗi 404 → ấn tượng đầu tiên là bạn không maintain code. Kiểm tra toàn bộ link trong README và LinkedIn Featured trước khi apply. Nếu không duy trì được live demo, dùng video demo thay thế.

4. GitHub Pin mặc định theo star count

GitHub mặc định không pin gì — nếu bạn không chủ động pin, các repo hiện theo thứ tự gần nhất. Repo "star cao nhất" thường là repo fork hoặc tutorial clone, không phải project tốt nhất của bạn. Pin thủ công luôn.

5. Profile bio sáo rỗng

"Passionate AI engineer who loves data and machine learning" — câu này hoặc tương tự xuất hiện trong khoảng 80% profile AI trên LinkedIn. Bio nên specific: domain bạn focus, tech stack chính, và nếu trái ngành, ghi rõ background domain cũ vì đó là lợi thế.

6. Project chứa data nhạy cảm

Nếu project dùng data từ công ty cũ (dù đã anonymize), đây là red flag với recruiter và có thể là vấn đề pháp lý. Dùng public dataset hoặc synthetic data. Ghi rõ nguồn data trong README.

7. Quantity over quality

3 project deploy được, README rõ ràng, kết quả đo được > 10 project tutorial copy-paste không có README. 1 project không deploy được làm giảm trust vào toàn bộ portfolio, không phải chỉ project đó.

14

Checklist trước khi apply

Dùng checklist này mỗi lần apply một batch job (không cần làm lại cho từng công ty nếu apply cùng role):

GitHub

  • ☐ Profile README có background + skill stack + contact.
  • ☐ 6 repo pin thủ công theo role target.
  • ☐ Mỗi repo pin có README với demo link, metric kết quả, engineering decisions.
  • ☐ Demo link kiểm tra chạy được.
  • ☐ Repo test/practice đã archive hoặc để private.

LinkedIn

  • ☐ Featured section có 3-5 project card với thumbnail.
  • ☐ About section đề cập domain cũ và AI focus hiện tại.
  • ☐ Contact info public (email hoặc cho phép message).

Nội dung

  • ☐ Cập nhật năm tháng trong README nếu có mention date.
  • ☐ Version thư viện trong requirements.txt không quá cũ (kiểm tra major release mới nếu cần).
  • ☐ Không có credential, API key, data nội bộ bị commit vào repo.
15

Bài tiếp theo

Bài 4: Tránh 5 sai lầm phổ biến khi build portfolio — đi sâu vào từng sai lầm thường gặp trong quá trình xây dựng project, từ scope quá rộng đến thiếu metric đo lường.