Git Bisect — tìm commit gây bug trong vài phút
Git bisect dùng tìm kiếm nhị phân để lần ra commit gây bug chỉ sau vài lần chạy test. Kèm cách dùng git bisect run tự động và mẹo thực tế.
THE ENGINEERING JOURNAL
Các bài viết về dev-tips.
Git bisect dùng tìm kiếm nhị phân để lần ra commit gây bug chỉ sau vài lần chạy test. Kèm cách dùng git bisect run tự động và mẹo thực tế.
Chia sẻ kinh nghiệm dùng Docker multi-stage builds để tối ưu dung lượng image từ 800MB xuống chỉ còn chưa tới 20MB. Tips thực tế cho dev muốn deploy nhẹ nhàng hơn.

Database Index — cấu trúc dữ liệu thần kỳ giúp query tốc độ từ O(n) thành O(log n). Cùng mình tìm hiểu B-Tree, cách index hoạt động, và kinh nghiệm dùng index trong thực tế.
Tìm hiểu về rate limiting trong system design: Token Bucket, Leaky Bucket, Fixed Window, Sliding Window — và cách triển khai thực tế.
Mình chia sẻ mấy pattern xử lý lỗi với async/await trong JavaScript mà mình hay dùng, từ try/catch cơ bản tới .catch() chain và error boundary pattern.
Mình chia sẻ mấy cái bẫy null/undefined hay gặp trong TypeScript và cách xử lý — từ optional chaining tới discriminated unions.
Rate limiter là thứ backend dev nào cũng nghe qua, nhưng thiết kế sao cho đúng thì không phải ai cũng biết. Câu chuyện từ basic Token Bucket tới distributed với Redis.
Mình chia sẻ mấy lệnh Git thực tế — interactive rebase, stash, blame — giúp dev solo quản lý code gọn gàng hơn. Kinh nghiệm từ mấy lần lỡ tay và cách khắc phục.
TypeScript 4.9 giới thiệu satisfies operator — kiểm tra type mà không làm mất inference của literal types. Một tính năng nhỏ nhưng xài hằng ngày.
Context trong Go tưởng phức tạp mà thực ra chỉ xoay quanh 3 việc: timeout, cancellation, và pass giá trị. Mình viết bài này để ghi lại cách hiểu đơn giản nhất.