Welcome to MikeDaDev's Blog – notes on Java, backend & system design.

Explore
MikeDaDev's Blog

All posts

I like to write about stuff I'm into. You'll find a mix of web dev articles, tech news and random thoughts from my life. Use the search below to filter by title.
in ai / llm

How LLMs work? LLM thật ra hoạt động thế nào

Mổ xẻ LLM từ con số 0: token là gì, embedding là gì, attention làm gì, model được dạy ra sao, và vì sao nó trả lời trơn tru mà thỉnh thoảng vẫn bịa như thật. Người mới đọc để hiểu bản chất, dân làm AI đọc để ôn lại cho có hệ thống.

xây dựng đội nhân viên AI cho team IT

Dựng một đội agent AI đóng vai Developer, PM, QC, DevOps, ngày nào cũng tự chạy trên một máy luôn bật, bạn không cần ngồi canh. Bước nào cũng có script, copy về là chạy được.

vận hành database cluster & tính Idempotent

Script bảo trì hay nâng cấp database phân tán đang chạy thì đứt kết nối, giờ chạy lại có sao không? Bài này nói về cách tự động hoá vận hành cluster, cách thiết kế State Machine cho từng node và vì sao Idempotent là nguyên tắc SRE không được bỏ qua.

Critical Thinking

Mấy cách tư duy phản biện và giải quyết vấn đề mình thấy dùng được trong công việc: khung Cynefin để biết mình đang ở loại bối cảnh nào, tư duy nguyên lý đầu tiên (First Principles), chia vấn đề theo cây MECE và cách đặt lại câu hỏi theo mục tiêu (Goal-Oriented Reframing).

Discord: từ Cassandra sang ScyllaDB

Nhìn lại chặng đường Discord lưu hàng nghìn tỷ tin nhắn: từ lúc MongoDB hết chịu nổi, qua Apache Cassandra, rồi chuyển hẳn sang ScyllaDB với mô hình thread-per-core, hết JVM GC pause, p99 latency đọc còn khoảng 15ms và số node giảm từ 177 xuống 72.

Figma: scale PostgreSQL với Horizontal Sharding

Figma làm Horizontal Sharding cho PostgreSQL thế nào: nhóm bảng theo colo, hash shard key để tránh hotspot, proxy DBProxy định tuyến bằng SQL AST, shard "logic" bằng view trước khi tách vật lý, và lần failover đầu tiên chỉ mất khoảng 10 giây sẵn sàng một phần.

Foundations of Project Management

Những kiến thức nền cho nghề Quản lý Dự án: phân biệt Project với Operations, cân tam giác Triple Constraint, giữ Scope Creep trong tầm tay, tính Earned Value Management (EVM) và chia vai bằng ma trận RACI.

Java 27: Compact Object Headers

Từ Java 27, Compact Object Headers (Project Lilliput) được bật mặc định: header của object trên HotSpot co từ 12 xuống 8 bytes. Bài mổ xẻ 64 bit header được sắp ra sao, class pointer nén còn 22 bit thế nào, lock và GC xoay xở thế nào, lợi gì cho CPU cache và các cờ JVM cần biết.

Spring AI: Dynamic Tool Calling

Dynamic Tool Calling trong Spring AI: bài toán chi phí token khi nhét hết tool vào Context Window, cách viết CallAdvisor để chọn tool theo ngữ nghĩa qua Vector Store, và cách tự động lập chỉ mục các @Tool bean.