Design & Architecture
Software Design and Architecture
Step by step guide to learn software design and architecture
This page is a visitor-friendly snapshot of how William currently sees this area: what feels strong, what is still being refined, and where the evidence is still partial.
12
Done
4
Learning
0
Target
0
Skipped
94
Tracked
Status meanings
Done: enough evidence to present this area as a solid strength.
Learning: an area of active development with growing confidence.
Target: relevant and intentional, but still earlier in the journey.
Skipped: not a current priority relative to other areas.
How the estimates are formed
Profile and manual review: 2
Evidence from project experience: 4
Competency mapping alignment: 10
Quiz-backed updates: 0
These signals help estimate progress, but they are still best treated as directional rather than perfectly complete.
Areas currently being strengthened
Architectural Principles
This is actively developing and would benefit from more practice, proof, or recent examples.
Architectural Patterns
This is actively developing and would benefit from more practice, proof, or recent examples.
Clean Code
Programming Paradigms
Object Oriented Programming
Design Principles
Design Patterns
Architectural Principles
Updated 3/21/2026
Architectural Styles
Architectural Patterns
Enterprise Patterns
Clean Code Principles
Be consistent
Meaningful names over comments
Indentation and Code Style
Keep methods / classes / files small
Pure functions
Minimize cyclomatic complexity
Avoid passing nulls, booleans
Keep framework code distant
Use correct constructs
Tests should be fast and independent
Organize code by actor it belongs to
Command query separation
Keep it simple and refactor often
Programming Paradigms
Structured Programming
Functional Programming
Object Oriented Programming
Object Oriented Programming
Model-Driven Design
Domain Models
Class Variants
Layered Architectures
Domain Language
Anemic Models
Abstract Classes
Concrete Classes
Scope / Visibility
Interfaces
Inheritance
Polymorphism
Abstraction
Encapsulation
Design Principles
Composition over Inheritance
Encapsulate what varies
Program against abstractions
Hollywood Principle
Law of Demeter
Tell, don't ask
SOLID
DRY
YAGNI
Design Patterns
GoF Design Patterns
PoSA Patterns
Architectural Principles
Component Principles
Policy vs Detail
Coupling and Cohesion
Boundaries
Architectural Styles
Messaging
Event-Driven
Publish-Subscribe
Distributed
Client-Server
Peer-to-Peer
Structural
Component-Based
Monolithic
Layered
Architectural Patterns
Updated 3/21/2026