Hồ sơ năng lực · Đội triển khai ERP · ERP Technical PM / Implementation Consultant · Part-time
Hệ thống đó đang điều hành chính doanh nghiệp của bọn mình: khoảng 390 người, 33+ cửa hàng, kho nhiều điểm, bếp sản xuất theo đơn đặt, tổ đóng gói, kế toán – thuế – hóa đơn điện tử. Một năm gần đây gần như toàn bộ tính năng mới được xây theo quy trình AI-first với Claude Code. Đó cũng chính là đội và cách làm bọn mình mang sang dự án của bạn.
Thông tin liên hệ
Vài dòng giới thiệu. Bọn mình là đội công nghệ của 4handy Group — một nhóm doanh nghiệp F&B khoảng 390 nhân sự tại Hà Nội và TP.HCM: chuỗi bán lẻ Abby 33+ cửa hàng, mảng sỉ, sàn TMĐT, và thương hiệu bánh sinh nhật đặt theo yêu cầu Savor Cake. Đội gồm 4 người: 1 lead, 2 developer, 1 BA.
Toàn bộ ERP nội bộ do đội tự xây từ 2015 và đến giờ vẫn là hệ thống chính điều hành bán hàng, kho, sản xuất, đóng gói, nhân sự, kế toán và hóa đơn thuế — không mua ngoài, không thuê ngoài. Người viết những dòng này và sẽ trực tiếp làm Technical PM cho dự án của bạn là Lê Tuấn Hiệp, đồng sáng lập, phụ trách Công nghệ & Vận hành, khởi tạo hệ thống này từ commit đầu tiên năm 2015.
Bọn mình nhận đồng hành theo mô hình part-time đúng như JD mô tả: bạn có một đội đứng sau chứ không phải một freelancer đơn lẻ — ốm, bận hay bất khả kháng thì vẫn có người tiếp việc.
Bằng chứng · hệ thống đang chạy thật
Các con số dưới đây lấy trực tiếp từ repo và hạ tầng production của bọn mình tại thời điểm 19/08/2026. Bọn mình sẵn sàng demo màn hình thật trong buổi trao đổi đầu tiên.
Báo giá → đơn hàng → định mức nguyên vật liệu → lệnh sản xuất và chuyển đổi kho → đóng gói đối chiếu barcode → kiểm kê nhiều kho → giao hàng (tích hợp Ahamove/Lalamove) → hóa đơn điện tử và đồng bộ cơ quan thuế → giá vốn, lãi lỗ theo dòng kinh doanh.
CI/CD riêng, mọi server về đúng một commit; môi trường staging sao chép dữ liệu prod mỗi đêm để thử trước khi ra thật; log tập trung toàn bộ máy chủ; giám sát uptime, tài nguyên và trang trạng thái; hàng đợi công việc chạy nền; máy chủ chat, quản lý mã nguồn, kho tài liệu và trình quản lý mật khẩu đều tự host, đăng nhập một lần bằng SSO.
Kho dữ liệu riêng và hệ báo cáo cho ban điều hành; camera nhận diện sản phẩm tại quầy và tự kiểm tra sức khỏe camera; cảm biến nhiệt độ kho lạnh; đồng hồ điện theo cửa hàng — tất cả đổ về cùng một hệ.
Sản phẩm đang chạy · bạn xem được ngay
Bọn mình không chỉ làm phần quản trị bên trong. Các kênh bán dưới đây đều do đội tự dựng và tự vận hành, và điểm chung là không có bước nhập tay lại: đơn của khách rơi thẳng vào ERP, ra lệnh sản xuất, trừ tồn, lên hóa đơn.
Website và đặt hàng online cho chuỗi 33+ cửa hàng nguyên liệu làm bánh. Danh mục sản phẩm, giá, khuyến mãi và tồn kho lấy từ ERP; đơn khách đặt chạy ngược về ERP để kho soạn và giao. Có tìm kiếm riêng cho danh mục vài nghìn mã hàng.
Đặt bánh sinh nhật online — đúng mô hình sản xuất theo đơn. Khách chọn mẫu, kích thước, chữ viết trên bánh, giờ giao; đơn vào thẳng ERP thành lệnh sản xuất cho bếp, kéo theo định mức nguyên liệu, đóng gói và điều phối giao trong ngày.
Khách mua hàng, tra điểm tích lũy và nhận ưu đãi ngay trong Zalo, không phải cài thêm app. Cùng một nguồn dữ liệu khách hàng và điểm thưởng với ERP và với cửa hàng.
Khoảng 390 nhân sự cửa hàng, kho, bếp và đóng gói dùng hằng ngày: chấm ca, việc được giao, kiểm kê, báo cáo ảnh, đề nghị nghỉ – tăng ca, học và thi nội bộ. Một mã nguồn Flutter cho cả iOS và Android.
Công nghệ đang dùng
Toàn bộ những thứ dưới đây đang chạy production. Với dự án của bạn, bọn mình sẽ chọn stack theo bài toán và theo người sẽ bảo trì về sau, không bê nguyên si — nhưng đây là vùng đất bọn mình thuộc nhất.
| Mảng | Công nghệ điển hình |
|---|---|
| Backend ERP | Node.js 24 + Express, MongoDB (Mongoose, replica set 3 node), Redis + BullMQ cho hàng đợi và job nền, Socket.io cho realtime, PostgreSQL cho kho dữ liệu báo cáo, TypeScript + Zod ở phần viết mới. |
| Giao diện ERP | Bản mới: Vue 3 + Vite + TypeScript, PrimeVue, Pinia, TanStack Query, UnoCSS. Bản cũ AngularJS vẫn chạy song song và được di trú dần từng module — không đập đi làm lại. |
| App nhân viên | Flutter — một mã nguồn cho cả iOS và Android, phát hành qua pipeline riêng. |
| Kênh khách hàng | abby.vn: WordPress/WooCommerce + Elasticsearch cho tìm kiếm. savor.vn: Next.js + Payload CMS trên MongoDB, lưu media trên object storage S3. Zalo Mini App: Vue 3 với backend Bun + Elysia, gọi API kiểu type-safe. |
| Kiểm thử & chất lượng mã | Mocha, Chai, Sinon, Supertest cho backend; Vitest và Playwright cho giao diện mới; Cypress cho luồng E2E; ESLint, Prettier và hook kiểm tra ngay trước mỗi commit. |
| Hạ tầng & vận hành | Docker, reverse proxy Caddy/nginx, Cloudflare (DNS, Pages, Workers, object storage), CI/CD và máy chủ mã nguồn đều tự host, log tập trung toàn fleet, giám sát tài nguyên, uptime và trang trạng thái, mạng riêng nội bộ để truy cập máy chủ. |
| AI | Claude Code cho toàn bộ vòng phát triển; AI SDK nhúng thẳng vào ERP để có trợ lý tra cứu và tóm tắt ngay trong hệ thống; CLI riêng cùng bộ kỹ năng nghiệp vụ để agent thao tác được với hệ thống trong phạm vi có kiểm soát. |
Vì sao mô hình AI-first của bạn là khả thi
Đội bọn mình gồm 1 lead + 2 developer + 1 BA. Trong 12 tháng gần nhất, bốn người đó đẩy 6.446 commit và merge 1.643 pull request vào một hệ thống đang có gần 400 người dùng thật mỗi ngày — trong khi vẫn trực vận hành, sửa sự cố và làm báo cáo cho ban điều hành.
Con số đó không đến từ việc làm nhanh ẩu. Nó đến từ việc bọn mình đã bỏ công đóng gói lại tri thức vận hành thành thứ mà AI dùng được: một CLI cho ERP mà cả người và agent đều gọi được, mười bộ "kỹ năng" nghiệp vụ (tra cứu database, xử lý work task, đọc log production, deploy, viết script chạy dữ liệu thật, xử lý sự cố hạ tầng…) cài được lên bất kỳ máy nào bằng một lệnh, và một mẫu đặc tả tính năng bắt buộc điền trước khi code.
Đó chính xác là thứ JD đang mô tả: biến yêu cầu nghiệp vụ thành đặc tả, để AI dựng, rồi thẩm định lại cái AI dựng ra. Bọn mình làm việc này mỗi ngày trong suốt một năm, trên hệ thống mà nếu sai thì chính công ty mình mất tiền.
Ngành của bạn · make-to-order
Savor Cake là bánh sinh nhật đặt theo yêu cầu: mỗi đơn là một cấu hình riêng, có định mức nguyên liệu, có lệnh sản xuất tại bếp, có đóng gói và giao trong ngày. Về mặt hệ thống, nó cùng một bộ xương với một xưởng hộp giấy làm theo đơn — chỉ khác vật liệu.
| Bước trong xưởng hộp giấy | Thứ bọn mình đã dựng và đang chạy |
|---|---|
| Báo giá theo bản vẽ, khổ, số lượng | Module báo giá, bảng giá theo khách/kênh, giá đặc biệt, hạn mức đơn |
| Đơn đặt hàng cấu hình riêng | Đơn bán lẻ, đơn sỉ B2B, đơn đặt bánh theo yêu cầu và theo mùa |
| Định mức nguyên vật liệu (BOM) | Công thức – định mức và danh mục nguyên liệu thô |
| Lệnh sản xuất, tiêu hao NVL | Chuyển đổi kho NVL → thành phẩm, dịch vụ tính tồn theo thời gian thực |
| Đóng gói, đếm, QC | Đối chiếu barcode khi đóng gói, xác nhận số lượng QC, phiếu ảnh kiểm tra |
| Kho nhiều điểm, kiểm kê, chênh tồn | Nhóm kho, vị trí kho, lịch kiểm kê, giải trình chênh lệch tồn |
| Mua hàng, công nợ nhà cung cấp | Đề nghị mua, phiếu mua, hóa đơn đầu vào, công nợ, đề nghị thanh toán |
| Giao hàng | Phiếu giao, khu vực giao, tích hợp hãng vận chuyển |
| Hóa đơn điện tử, thuế | Hóa đơn khởi tạo từ máy tính tiền, quy tắc chọn pháp nhân xuất hóa đơn, đồng bộ cơ quan thuế |
| Giá thành, lãi lỗ | Điều chỉnh giá vốn, báo cáo kết quả kinh doanh theo dòng |
| Nhân sự xưởng | Kế hoạch ca, chấm ca, KPI lương, đánh giá tháng, đề nghị nghỉ/tăng ca |
Phần bọn mình chưa từng làm — nói trước cho minh bạch
Phương pháp
Đây là quy trình đang chạy thật ở 4handy, không phải lý thuyết.
Mỗi tính năng đi qua một mẫu đặc tả cố định: vấn đề đang giải, ai dùng, dữ liệu nào đọc – ghi, ảnh hưởng tới module nào, rủi ro nếu gắn vào chỗ cũ, tiêu chí nghiệm thu. AI viết code nhanh hay chậm không quan trọng bằng việc nó đang code đúng thứ gì.
Tài liệu kiến trúc, quy ước module, CLI riêng để agent tự tra dữ liệu và tự đọc log — thay vì mỗi lần lại dán ngữ cảnh bằng tay. Càng nhiều ngữ cảnh thật, AI càng ít bịa.
Mỗi task chạy trên worktree riêng, cổng riêng, không giẫm chân nhau. Muốn thử một PR chưa merge thì deploy thẳng lên staging bản sao dữ liệu prod, cho người nghiệp vụ bấm thử trước khi ra thật.
Mọi thay đổi đi qua pull request có người đọc. Riêng luồng tiền và tồn kho phải có test tự động. Script chạy trên dữ liệu production do agent viết và kiểm thử ở môi trường dev, nhưng người bấm nút chạy thật — đây là luật cứng ở chỗ bọn mình.
Một lệnh, CI đưa đúng một commit ra toàn bộ server; hỏng thì quay lui về commit trước. Log tập trung để trả lời được "lỗi này xảy ra bao nhiêu lần, ở server nào" trong vài phút thay vì đoán.
Runbook cho từng máy chủ, tài liệu module, quy ước đặt tên nhất quán. Tiêu chí của bọn mình: một dev mới — hoặc một AI khác — đọc repo là làm tiếp được, không cần hỏi lại đội cũ.
Đúng yêu cầu trong JD
JD nêu bốn thứ cần thẩm định. Đây là những gì bọn mình thực sự soi khi review một thiết kế do AI đề xuất.
| Hạng mục | Câu hỏi đặt ra trước khi cho merge |
|---|---|
| Database | Khóa và quan hệ có phản ánh đúng nghiệp vụ không? Có index cho truy vấn nặng chưa, hay đến 100.000 dòng là treo? Dữ liệu lịch sử có bị ghi đè mất dấu vết không? Sửa một đơn cũ có làm sai báo cáo tháng trước không? |
| Luồng dữ liệu | Ai là nguồn sự thật cho tồn kho — phiếu kho hay bảng tổng hợp? Tính lại từ đầu có ra đúng số đang hiển thị không? Job chạy hai lần có nhân đôi dữ liệu không? Mất mạng giữa chừng thì đơn ở trạng thái nào? |
| Bảo mật & phân quyền | Phân quyền theo vai trò có chặn ở tầng máy chủ hay chỉ ẩn nút trên giao diện? Ai xem được giá vốn, ai xem được lương? Có ghi lại vết ai sửa gì lúc nào không? Bí mật hệ thống có bị commit vào repo không — lỗi này chính bọn mình từng mắc, đã ghi nhận và đang xử lý, nên biết rõ nó nguy hiểm thế nào. |
| Hạ tầng | Backup có thật sự khôi phục được không — đã thử chưa? Deploy có quay lui được không? Có log tập trung và cảnh báo khi máy sắp đầy đĩa không? Chi phí vận hành hàng tháng là bao nhiêu và ai trả? |
Đề xuất triển khai · 6 tháng · 3 phase
Nguyên tắc: mỗi phase kết thúc bằng việc một nhóm người thật bỏ hẳn cách làm cũ. Nếu hết phase mà họ vẫn dùng sổ Excel song song, coi như phase đó chưa xong. Phạm vi chi tiết chốt lại sau khi bọn mình đọc brief luồng hoạt động và yêu cầu sản phẩm từ phía bạn.
Tháng 1 – 2 · Xương sống bán hàng – sản xuất
Nhận brief luồng hoạt động và yêu cầu sản phẩm từ phía bạn, đặt câu hỏi làm rõ, chuyển thành đặc tả hệ thống và chốt phạm vi. Dựng danh mục khách hàng, vật tư, quy cách hộp. Luồng báo giá → xác nhận đơn → lệnh sản xuất → phiếu theo dõi tiến độ. In được phiếu cho xưởng.
Điều kiện go-live100% đơn mới nhập trên hệ thống trong 2 tuần liên tiếp; đối chiếu song song với cách làm cũ, sai lệch phải giải thích được.
Tháng 3 – 4 · Kho, định mức, mua hàng
Nhập – xuất – tồn nguyên vật liệu và thành phẩm theo lô. Định mức tiêu hao gắn với lệnh sản xuất, ghi nhận hao hụt thực tế. Đề nghị mua hàng, công nợ nhà cung cấp. Kiểm kê định kỳ và giải trình chênh lệch.
Điều kiện go-liveKiểm kê cuối tháng chốt được trên hệ thống, chênh lệch nằm trong ngưỡng hai bên thống nhất và mỗi chênh lệch đều có lý do ghi nhận.
Tháng 5 – 6 · Giá thành, hóa đơn, báo cáo & bàn giao
Giá vốn theo đơn hàng, lãi lỗ theo khách và theo nhóm sản phẩm. Hóa đơn điện tử. Bộ báo cáo cho ban giám đốc. Đào tạo người dùng, viết tài liệu vận hành, bàn giao mã nguồn và hạ tầng.
Điều kiện bàn giaoĐội của bạn tự thêm được một trường dữ liệu mới và tự deploy được, có bọn mình ngồi cạnh xem — chứ không phải xem bọn mình làm.
Nhịp làm việc. 8 buổi/tháng theo JD là đủ nếu chia đúng: 2 buổi đầu tháng chốt đặc tả, các buổi còn lại là demo tính năng vừa xong với chính người sẽ dùng nó. Giữa các buổi bọn mình làm việc bất đồng bộ qua chat, và luôn có một bản chạy được để bạn bấm thử bất cứ lúc nào — không có chuyện "chờ đến cuối phase mới thấy".
Ai làm việc gì
Đây là cách bọn mình phân vai trong dự án. Người trực tiếp ngồi với bạn và chịu trách nhiệm go-live là một người cố định — dev và BA vào theo khối lượng từng phase.
| Vai trò | Việc trong dự án | Mức tham gia |
|---|---|---|
| Technical PM / Implementation Consultant Lê Tuấn Hiệp — 11 năm xây & vận hành ERP | Đọc brief của bạn, đặt câu hỏi làm rõ chỗ còn mờ, chuyển yêu cầu nghiệp vụ thành đặc tả hệ thống, thẩm định kiến trúc do AI dựng, chủ trì các buổi làm việc, chịu trách nhiệm cuối cùng về tiến độ go-live. | Xuyên suốt 6 tháng, đầu mối duy nhất |
| Business Analyst | Chi tiết hóa brief thành đặc tả từng màn hình, viết tài liệu hướng dẫn sử dụng, chạy UAT với người dùng thật trước mỗi lần go-live. | Nặng ở đầu mỗi phase |
| Developer × 2 | Dựng tính năng cùng AI, review chéo pull request, dựng CI/CD và môi trường staging, xử lý dữ liệu chuyển đổi từ hệ thống cũ. | Theo khối lượng từng phase |
Hình thức hợp tác. Bọn mình có pháp nhân (Công ty Cổ phần 4handy Group) nên ký được hợp đồng và xuất hóa đơn đầy đủ, kèm cam kết bảo mật. Thanh toán chia theo 3 phase, gắn với đúng các điều kiện go-live ở trên — phase chưa đạt thì chưa nghiệm thu.
Chi phí Claude, hosting và dịch vụ ngoài do bên bạn chi trả trực tiếp trên tài khoản của bạn, đúng như JD — bọn mình chỉ sử dụng và tối ưu, không đứng giữa. Toàn bộ mã nguồn, dữ liệu và tài khoản hạ tầng thuộc về bạn ngay từ ngày đầu.
Nói thẳng