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ề.
OLAP & Column-Oriented Storage — Khi phân tích dữ liệu cần tốc độ (DDIA)
Tìm hiểu sự khác biệt giữa OLTP và OLAP, kiến trúc data warehouse, và cách column-oriented storage tối ưu hoá truy vấn phân tích hàng terabyte dữ liệu (Designing Data-Intensive Applications Chương 3)
Topic 31. Inheritance Tax — Đừng trả 'thuế' kế thừa nữa (Pragmatic Programmer #31)
Inheritance là coupling, và coupling là kẻ thù của sự thay đổi. Tìm hiểu 3 alternatives mạnh mẽ thay thế inheritance từ 'The Pragmatic Programmer'.

Goroutines & Channels — Sức mạnh concurrency của Go không chỉ là 'chạy song song'
Goroutines và channels là hai thứ làm nên tên tuổi của Go. Một góc nhìn thực tế về concurrency trong Go — từ goroutine leak, channel blocking, tới những pattern áp dụng trong công việc hằng ngày.
Hash Indexes, SSTables, LSM-Trees & B-Trees — Cấu trúc dữ liệu đằng sau storage engine (DDIA)
Khám phá các cấu trúc dữ liệu nền tảng của database: hash indexes, SSTables, LSM-Trees và B-Trees qua lăng kính DDIA