Train your intuition in System Design

Thật ra, có thể tụi m sẽ có 1 câu hỏi là làm sao một “Senior Software Engineer” nhìn ra một thứ mà ở level “Junior hay Middle” không nhìn ra được, vấn đề không nằm ở logic, vấn đề nằm ở trực giác hay intuition.

Có thể tụi m chưa cảm thấy được cái này mà chỉ gặp những cái system đơn giản hoặc lặp đi lặp lại trong công ty tụi m, tụi m sẽ vô tình hình thành 1 cái mindset gọi là memorization kết quả của 1 System Design 🙂 Vì nói đơn giản thôi, đối với mấy cái ví dụ trong sách giáo khoa ví dụ read-heavy dùng cache, write-heavy throughput thì dùng queue =))) Nó hoàn toàn memorize được.

Nhưng nếu thử tụi m đặt tình huống gặp 1 câu hỏi cực khó như trong ví dụ của trang https://www.joinenginuity.com/question-of-day, hoặc 1 câu hỏi trong đề AWS Solution Architect, hoặc 1 số câu hỏi dive deep trong system design của tác giả Stanley Makori mà xem, hoặc là cái vấn đề đang xảy ra trong dự án thực tế 2tr người dùng, code ngu phát là mất 3 tỷ ****=)) Lúc này khả năng m đọc hiểu “câu hỏi” hay “problem” thôi nó là cả 1 vấn đề rồi =)) Và khả năng make decision under pressure, time-bound, reasoning hạn chế cảm xúc, nó đã là 1 challenge rồi.

Nên là cách giải quyết vấn đề tốt nhất :)) Với t là khả năng “visualization”, m phải visualize được vấn đề thì m mới hiểu nó được + stakeholder + benefits liên quan. Bước này là hiểu vấn đề + contraints.

Và khi hiểu được problem, m phải tiếp tục visualize các lựa chọn A,B,C,D ⇒ Và tìm được lý do mà các đáp án A,B,C,D bị loai do vi phạm contraints nào.

Đó là cách m buff instinct to master cho System Design ở Senior level.

January 31, 2026