Blog
Nơi mình chia sẻ nhật ký và những câu chuyện nhỏ trong hành trình làm nghề.
Breaking Temporal Coupling — Phá Vỡ Sự Phụ Thuộc Theo Thời Gian (Pragmatic Programmer #33)
Cảm nhận về Topic 33 trong chương Concurrency của The Pragmatic Programmer: Temporal Coupling là gì, tại sao nó nguy hiểm và cách break nó để code linh hoạt hơn.

Encoding & Schema Evolution — Thrift, Protobuf, Avro và bài toán tương thích dữ liệu (DDIA)
Binary encoding formats — Thrift, Protocol Buffers, Avro — giúp giải quyết vấn đề gì so với JSON/XML? Làm sao để schema evolution an toàn khi deploy microservices?
Topic 32. Configuration — Đừng Hard-code, Hãy Cấu Hình! (Pragmatic Programmer #32)
Một trong những bài học đắt giá nhất: tách rời code khỏi cấu hình. Học cách viết phần mềm linh hoạt, dễ thay đổi mà không cần sửa code.

Docker Multi-stage Builds — mình đã giảm 80% dung lượng image như thế nào
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.