Blog
Articles, guides, and notes on software engineering.
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.
Recent Posts
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
Delegation Over Inheritance
Learn duck typing and Liskov Substitution Principle. Build resilient Go applications using delegation patterns over inheritance.
Why Interfaces Change Less Frequently Than Implementations
Understand why Go interfaces change less frequently than implementations, stabilizing contracts while allowing implementation flexibility.
Why the Singleton Pattern is an Anti-Pattern
Examine why the Singleton pattern creates architectural problems and dependency injection provides superior design alternatives.
Understanding Terminal Specifications for TUI Development
Explore terminal specifications, raw mode, ANSI escape sequences, and termios for TUI development with practical Go implementations.
Test Doubles Explained: Mocks, Stubs, Fakes, and Spies
Learn the differences between test doubles: mocks, stubs, fakes, dummies, and spies. Understand when to use each type and how they improve unit test isolation and clarity.
Trends and Strategies for System Design Interviews
Trends and Strategies for System Design Interviews
Street Coder
Street Coder
Session-based and Token-based Authentication Methods
A comprehensive comparison and explanation of session-based and token-based authentication methods, covering technical details and implementation considerations.
Understanding Functional Programming
Understanding Functional Programming
What is the Architecture Advice Process (AAP)?
Implement Architecture Advice Process for decentralized decision-making with ADR and architectural governance frameworks.
Created a Spec Repository
Discover the bmf Framework and Cynefin-based story point estimation methods. Access community specifications and best practices.
Driving Domain with Data Modeling - Towards Distributed and Loosely Coupled Core Systems
Driving Domain with Data Modeling - Towards Distributed and Loosely Coupled Core Systems
Exploring Processes, Goroutines, and Memory in Go
Explore Go virtual address spaces, process isolation, goroutine memory sharing, stack and heap behavior.
Introduction to Prolog
Introduction to Prolog