Roadmap từ Junior Developer tới CTO
🧭 TỔNG QUAN ROADMAP
Junior Dev
↓
Mid Dev
↓
Senior Dev
↓
Tech Lead
↓
Engineering Manager / Architect
↓
CTO
1️⃣ Junior Developer
🎯 Mục tiêu: Viết code đúng – hiểu hệ thống
Kỹ năng cần có
- ít nhất 1 ngôn ngữ chính
- Git, basic SQL
- Hiểu API, HTTP
- Fix bug theo hướng dẫn
Tư duy
- Làm đúng yêu cầu
- Học cách đọc code người khác
Dấu hiệu đủ level
- Không hỏi những câu “em không biết bắt đầu từ đâu”
- Có thể fix bug không cần cầm tay
❌ Chưa cần nghĩ CTO
2️⃣ Mid-level Developer
🎯 Mục tiêu: Làm chủ feature
Kỹ năng
- Thiết kế feature end-to-end
- Database design cơ bản
- Test (unit / integration)
- Hiểu performance cơ bản
Tư duy
- “Feature này ảnh hưởng gì tới hệ thống?”
- Bắt đầu nghĩ đến edge case
Dấu hiệu đủ level
- Dev khác tin tưởng giao việc
- Code ít bug, dễ maintain
3️⃣ Senior Developer
🎯 Mục tiêu: Là trụ cột kỹ thuật
Kỹ năng
- System design
- Tối ưu DB & API
- Hiểu rõ trade-off kỹ thuật
- Review code người khác
- Security cơ bản
Tư duy
- Không chỉ “làm được”, mà “làm thế này có ổn lâu dài không?”
- Dám nói NO với giải pháp kém
Dấu hiệu đủ level
- Team hỏi bạn trước khi quyết định
- Bạn thấy trước vấn đề trước khi nó xảy ra
4️⃣ Tech Lead
🎯 Mục tiêu: Dẫn dắt kỹ thuật của team
Kỹ năng
- Thiết kế kiến trúc
- Chọn tech stack
- Chia task & estimate
- Code convention
- Quản lý technical debt
Tư duy
- “Team có ship được không?”
- Ưu tiên tốc độ + ổn định, không khoe kỹ thuật
Trách nhiệm
- Deadline
- Chất lượng code
- Hệ thống không sập
Dấu hiệu đủ level
- Team chạy mượt khi bạn không code nhiều
- Bạn dành nhiều thời gian nghĩ hơn là gõ code
5️⃣ Engineering Manager / Architect
🎯 Mục tiêu: Quản lý nhiều team / toàn hệ thống
Kỹ năng
- People management
- Hiring
- Performance review
- Roadmap kỹ thuật
- Cost & infrastructure
Tư duy
- “Quyết định này ảnh hưởng business thế nào?”
- Hi sinh code đẹp để đổi lấy time-to-market
Trách nhiệm
- Giữ người giỏi
- Hệ thống scale
- Phối hợp với Product & Business
6️⃣ CTO
🎯 Mục tiêu: Chiến lược công nghệ
CTO làm gì mỗi ngày?
- Định hướng công nghệ 1–3 năm
- Làm việc với CEO, nhà đầu tư
- Quyết định build vs buy
- Quản lý rủi ro kỹ thuật
- Đại diện công nghệ của công ty
CTO không làm
- Code feature hàng ngày
- Fix bug vặt
CTO chịu trách nhiệm cho:
- Toàn bộ tech stack
- Tech debt
- Security
- Scale & cost
- Team engineering
🧩 Câu chuyện thực tế
Trong một dự án e-commerce bị chậm khi flash sale, mỗi level thể hiện khác nhau: Junior chỉ thấy lỗi ở code và fix theo task; Mid nhận ra query chậm, thêm cache và xử lý async cho feature; Senior nhìn ra bottleneck kiến trúc, đề xuất queue, rate limit, idempotency để hệ thống chịu tải; Tech Lead phải cân bằng deadline, chia việc, chấp nhận trade-off để team ship kịp; còn CTO nhìn ở góc độ sống còn của business, quyết định có scale hạ tầng, giới hạn traffic hay thay đổi kế hoạch sale. Cùng một vấn đề, level khác nhau ở chỗ “thấy gì và dám quyết tới đâu”.
🧠 3 CÚ CHUYỂN TƯ DUY QUAN TRỌNG
🔁 Dev → Senior
“Code chạy được” → “Code sống lâu”
🔁 Senior → Tech Lead
“Mình giỏi” → “Team giỏi”
🔁 Lead → CTO
“Hệ thống tốt” → “Công ty sống”
📌 YẾU TỐ QUYẾT ĐỊNH LEVEL
❌ Những cách đánh giá phổ biến nhưng sai
- Số năm kinh nghiệm → nhiều năm ≠ giải được vấn đề khó
- Title (Senior / Lead / CTO) → danh xưng ≠ năng lực thật
- LeetCode cho mọi level → đo thuật toán, không đo hệ thống & quyết định
- Nói kỹ thuật cao siêu → nói hay ≠ làm được
- 1 bài test cho tất cả → mỗi level giải vấn đề khác nhau
✅ Cách đánh giá đúng
Đánh giá đúng không hỏi “biết gì”, mà hỏi “giải được vấn đề gì, trong phạm vi nào”:
- Loại vấn đề: task → feature → hệ thống → team → công ty
- Mức tự chủ: cần chỉ dẫn → tự làm → tự quyết → quyết cho người khác
- Phạm vi ảnh hưởng: file → module → service → nhiều team → toàn hệ thống
- Chất lượng quyết định: có trade-off, nhìn trước rủi ro, có plan rollback
- Tác động thực tế: giúp team nhanh & ổn định hơn hay chậm đi
Level không nằm ở bạn biết gì, mà ở việc bạn quyết được vấn đề gì mà không làm hỏng hệ thống.
All rights reserved