Skip to content
Home
Software Design

Software Design

Learning Path — 28 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 Open/Closed Principle: Extend Software Without Modifying Code. A practical guide to solid openclosed principle, covering … 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, … 17 CQRS and Event Sourcing: Patterns for Scalable Systems Learn CQRS and event sourcing — command-query separation, event stores, projections, eventual consistency, and practical … 18 Distributed Systems Design Patterns: Consensus, Replication &... Learn essential distributed systems patterns — leader election, consensus (Raft/Paxos), sharding, replication, CQRS, … 19 Software Design Advanced Techniques Software Design Advanced Techniques. Learn what you need to know about software design advanced techniques: core … 20 Software Design Intermediate Skills Software Design Intermediate Skills. An accessible introduction to software design intermediate skills, exploring key … 21 Software Design Industry Insights Software Design Industry Insights. Everything you need to get started with software design industry insights, explained … 22 Software Design Professional Growth Software Design Professional Growth. Discover the principles and practices of software design professional growth in … 23 Software Design Project Ideas Software Design Project Ideas. Build your understanding of software design project ideas with clear explanations and … 24 Software Design Learning Pathways Software Design Learning Pathways. A straightforward look at software design learning pathways, covering what matters … 25 Software Design Resource Collection Software Design Resource Collection. A practical guide to software design resource collection, covering key concepts, … 26 Software Design Portfolio Development Software Design Portfolio Development. Understand the essentials of software design portfolio development — from … Advanced 27 Software Design Expert Interviews Software Design Expert Interviews. Learn what you need to know about software design expert interviews: core concepts, … Advanced 28 Software Design Innovation Trends Software Design Innovation Trends. An accessible introduction to software design innovation trends, exploring key ideas … Advanced