Hồi 2023, mình ngồi debug một con bug mất 3 ngày — hóa ra là context.Background() thay vì truyền context từ upstream xuống. Lúc đó mình tự nhủ: “Sao không có ai viết hẳn một bài về mấy cái pattern dễ mắc mà khó debug này nhỉ?”
Blog này ra đời từ đó.
Mình là ai?
Dương Nguyễn Hoàng Luân — sinh 1998, Hóc Môn, Sài Gòn. Bạn bè gọi Luân, trên mạng là luandnh.
Viết code từ năm 2 đại học FPT. Tốt nghiệp MSE xong thì lăn vào startup, rồi enterprise, giờ đang ở GSM làm backend cho team XanhNgon — nền tảng đặt đồ ăn của XanhSM.
Main stack: Go (Gin, gRPC, microservices). Có dùng Python khi cần script nhanh hoặc xử lý data. Viết API, thiết kế hệ thống, tối ưu hiệu năng — mấy thứ “lắt léo” mà business throw vào rồi engineer phải giải.
Mình đang làm gì?
Hiện tại, mảng của mình ở XanhNgon xoay quanh:
- Merchant systems — quản lý quán, menu, doanh thu
- Revenue reports — aggregation, real-time dashboard
- Fraud detection pipeline — Kafka, event-driven, async flows
- AI coding workflow — setup Claude Code, Codex, OpenCode cho team
Ngoài giờ làm, mình mày mò AI coding tools: Claude Code, Codex, OpenCode, OpenClaw, 9Router… Mấy thứ giúp viết code nhanh hơn, ít bug hơn, và rẻ hơn $200/tháng.
Mình giỏi cái gì?
Thứ mình thực sự làm hàng ngày:
- Go & Backend: Gin, gRPC, REST APIs, worker pools, message queues (RabbitMQ, Kafka)
- Dữ liệu: PostgreSQL, Redis, Elasticsearch — schema design, query tuning, caching strategy
- Infra: Docker, Linux, CI/CD (GitHub Actions), Kubernetes cơ bản
- Observability: EFK stack, metrics (Prometheus/Grafana), distributed tracing
- Thiết kế hệ thống: event-driven architecture, microservices decomposition, graceful degradation
- AI coding: setup agent workflow, viết skill/plugin cho Claude Code & Codex, optimize token usage
Thứ mình từng làm và vẫn nhớ:
- Pitel Callcenter (CCP) — hệ thống tổng đài ảo
- Pitel Autocall — auto dialer campaign
- Pitel VMD — voice mail detection
- FinS Collection — debt collection system
Blog này viết gì?
Không có tutorial “hello world”. Không có bài dịch từ dev.to.
Những gì trên blog này đều từ bug production, incident thực tế, hoặc pattern mình ước có ai chỉ từ đầu:
- Golang patterns: context, goroutine, graceful shutdown, caching strategy
- AI coding deep dives: Claude Code, Codex, OpenCode, agent memory, router optimization
- System design: event-driven, microservices, trade-offs thực tế
- Postmortem: những lần hệ thống sập và bài học rút ra
Mỗi bài viết mình cố viết như đang giải thích cho đồng nghiệp trong giờ cà phê: thẳng, ngắn, có code chạy được, và luôn có phần “mình từng làm sai cái này.”
Nếu đọc xong một bài mà bạn nghĩ “ồ, cái này để áp dụng luôn” — mình đã làm đúng ý.
Triết lý làm nghề
Mình không tin vào “best practices” tuyệt đối. Cái gì cũng có context. Redis không phải lúc nào cũng nên dùng. Microservices không giải quyết được mọi vấn đề. AI coding agent không thể thay thế code review.
Vài nguyên tắc mình giữ:
- Hiểu “tại sao” trước khi code — đọc requirement 2 lần, code 1 lần
- Viết code cho thằng maintain 6 tháng sau (thường là chính mình)
- Production bug > lý thuyết suông — bài học từ incident nhớ lâu hơn bất kỳ conference talk nào
- Ship nhỏ, ship thường xuyên — PR 200 dòng dễ review hơn PR 2000 dòng
- Giữ cho stack đơn giản — thêm 1 service mới chỉ khi thực sự cần
Liên hệ
Mình luôn mở để nói chuyện về Go, hệ thống, hoặc AI coding tools. Đừng ngại nhắn nếu bạn đang vật lộn với một con bug lạ hay muốn bàn về architecture.
- Email: [email protected]
- GitHub: github.com/luandnh
- LinkedIn: linkedin.com/in/luandnh
- Blog: blog.luandnh.com
P.S. Nếu bạn đọc đến đây và thấy blog có ích, thả cho mình một cái ⭐ trên GitHub repo nào đó của mình nhé. Mình cảm ơn thật lòng.