Blog
Articles, guides, and notes on software engineering.
Differentiating Architecture Strategy, Tactics, and Design
Differentiate architecture strategy, tactics, and design using 5W1H framework to clarify why, what, how, when, where, and who decisions.
Recent Posts
Good Architecture Strategy, Bad Architecture Strategy
Exploring the differences between effective and ineffective architecture strategies.
Why and When to Write an Architecture Strategy
Develop architecture strategies to eliminate ad-hoc technology decisions and establish technology standards across teams.
OAuth 2.0 Explained: Complete Guide to Flows, Tokens, and Implementation
Summary based on RFC 6749 (OAuth 2.0 Authorization Framework) and RFC 6750 (Bearer Token Usage).
Summary of OpenID Connect 1.0 Specifications
Understand OpenID Connect specification, JWT structure, ID tokens, claims, and authentication flow details.
SAML 2.0 Explained: How SSO and Federated Identity Work
Understand SAML 2.0 and how it enables Single Sign-On (SSO), the roles of Identity Provider and Service Provider, and how it compares to OAuth 2.0 and OpenID Connect.
Key Points to Consider When Writing an ADR
Master ADR writing by focusing on atomic decisions, documenting trade-offs, team discussions, and technical writing principles for architecture.
Difference Between Requirements and Constraints
Distinguish requirements from constraints in software design using ISO 29148 definitions for effective architecture trade-offs.
What is Team Topologies? How to Structure Engineering Teams
Learn Team Topologies—the four team types (stream-aligned, platform, enabling, complicated-subsystem) and three interaction modes for effective software delivery organization.
Why Software Development Teams Should Define MVV
Understand MVV definition for software teams, mission clarity, vision alignment, and team personality development.
Web Distribution Technology: Utilizing HTTP Cache, Reverse Proxy, and CDN
Implement HTTP caching, reverse proxy, and CDN strategies for efficient web content distribution and edge delivery.
Concrete and Abstract: The Mechanism of Intelligence that Changes How We See the World
Concrete and Abstract: The Mechanism of Intelligence that Changes How We See the World
Designing Questions: Facilitating Creative Dialogue
Designing Questions: Facilitating Creative Dialogue
Purpose-Driven Thinking
Purpose-Driven Thinking
Reflections on 2025 and Aspirations for the Coming Year
Understand 2025 career reflections on system design mastery, AI dependency, and tech skills growth through annual personal aspirations.
Balancing Coupling in Software Design: Principles of Modularity for Sustainable Growth
Balancing Coupling in Software Design: Principles of Modularity for Sustainable Growth
What is Platform Engineering? Building Internal Developer Platforms
Learn what platform engineering is, how internal developer platforms (IDPs) work, and how platform teams reduce cognitive load and improve developer productivity.
Steps for Code Reading Using AI
Master code reading procedures using AI by creating documentation, checklists, and improvement notes to accelerate comprehension and analysis.
Clean Code Cookbook: A Recipe Collection for Improving Code Design and Quality
Clean Code Cookbook: A Recipe Collection for Improving Code Design and Quality
The Go Programming Language, 2nd Edition: An Idiomatic Go Practical Guide for Programmers from Other Languages
The Go Programming Language, 2nd Edition: An Idiomatic Go Practical Guide for Programmers from Other Languages