Software Design
Learning Path — 18 articles
1
Design Patterns: Singleton, Factory, Observer, and More
Learn essential design patterns — creational, structural, behavioral patterns with real-world examples and when to use …
Start Here
2
SOLID Principles: Writing Maintainable Code
Learn SOLID principles — Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency …
Start Here
3
System Design: A Beginner's Guide
Learn system design fundamentals — scalability, load balancing, caching, databases, and designing large-scale …
Start Here
4
Microservices vs Monolith: Choosing the Right Architecture
Compare microservices and monolithic architectures. When to use each, migration strategies, and real-world trade-offs.
5
Clean Code: Principles for Readable and Maintainable Code
Learn clean code principles — naming, functions, comments, error handling, and writing code that humans can understand.
6
Event-Driven Architecture: A Complete Guide
Learn event-driven architecture. Covers event sourcing, CQRS, message queues, Kafka, and building reactive systems.
7
Domain-Driven Design: A Practical Introduction
Learn Domain-Driven Design — ubiquitous language, bounded contexts, aggregates, entities, value objects, and strategic …
8
Testing Strategies: Unit, Integration, and E2E Testing
Learn software testing strategies — unit testing, integration testing, end-to-end testing, TDD, and building a reliable …
9
Refactoring: Improving Code Without Changing Behavior
Learn refactoring techniques — extracting methods, renaming, simplifying conditionals, and safely improving legacy code.
10
Software Architecture Patterns: Layered, Hexagonal, and More
Explore software architecture patterns — layered architecture, hexagonal architecture, onion architecture, and clean …
11
Dependency Injection: Principles and Patterns
Learn dependency injection — inversion of control, constructor injection, DI containers, and writing testable …
12
API Design Principles: Building Developer-Friendly APIs
Learn API design principles — consistency, discoverability, error handling, pagination, and designing APIs developers …
13
MVC vs MVP vs MVVM: Architectural Patterns Compared
Compare MVC, MVP, and MVVM architectural patterns — trade-offs, use cases, and when to choose each pattern.
14
Open/Closed Principle: Extend Software Without Modifying Code
Apply the Open/Closed Principle (OCP) with Strategy and Template Method patterns. Learn to extend behavior through …
15
Technical Debt: Identifying, Prioritizing, and Refactoring
Manage technical debt effectively — identification, prioritization strategies, refactoring approaches, and team …
16
Domain-Driven Design: Strategic and Tactical Patterns
Learn Domain-Driven Design — ubiquitous language, bounded contexts, aggregates, entities, value objects, domain events, …
Advanced
17
CQRS and Event Sourcing: Patterns for Scalable Systems
Learn CQRS and event sourcing — command-query separation, event stores, projections, eventual consistency, and practical …
Advanced
18
Distributed Systems Design Patterns: Consensus, Replication &...
Learn essential distributed systems patterns — leader election, consensus (Raft/Paxos), sharding, replication, CQRS, …
Advanced