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.

câu hỏi phỏng vấn java senior

Các câu hỏi phỏng vấn nâng cao cho Senior & Staff Software Engineer: False Sharing & Cache Line 64-byte, bẫy Carrier Pinning trong Virtual Threads, Parent-Child Connection Starvation trong HikariCP, Zero-Allocation trên đường dẫn hiệu năng cao và thiết kế Idempotency.

docker & container

Mổ xẻ container và Docker từ bên trong: Linux Namespaces, Cgroups v2, OverlayFS; viết Dockerfile multi-stage, layered, chạy distroless non-root; xử lý dứt điểm chuyện PID 1 và graceful shutdown; cấu hình JVM nhận biết container để khỏi dính OOMKilled.

mongodb

Không dừng ở định nghĩa NoSQL, bài này đi vào kiến trúc MongoDB, cách thiết kế dữ liệu (Embed hay Reference), chiến lược đánh index, và cách dùng MongoDB cho đúng trong microservices với Spring Boot.

java functional extends

JDK chỉ có sẵn Function và BiFunction, tối đa 2 tham số. Bài này tự viết TriFunction tới DecaFunction (3 đến 10 tham số) kèm andThen, ví dụ chạy được, và bàn khi nào nên dùng, khi nào nên gom tham số vào một record.

redis

Redis làm được nhiều hơn một bộ nhớ đệm. Bài này nói về kiến trúc bên trong, cách tối ưu bộ nhớ và các pattern phân tán dùng Redis trong hệ thống Backend.

cqrs pattern

CQRS là pattern tách hẳn phần đọc dữ liệu (Query) ra khỏi phần ghi, thay đổi dữ liệu (Command). Tách ra rồi thì mỗi bên tự tối ưu hiệu năng, bảo mật và database theo cách của mình, rất đáng dùng cho những hệ thống phức tạp mà lượng đọc và ghi chênh nhau nhiều.

visitor pattern

Visitor Pattern trong Java hoạt động ra sao: cơ chế Double Dispatch để lách giới hạn Single Dispatch của JVM, dùng để duyệt cây cú pháp (AST), và đặt cạnh Pattern Matching trên Sealed Types của Java 21 xem bên nào hơn.