Software Architecture
Principles and patterns for designing scalable, maintainable systems. Studied through CSC207 (Java) and formal coursework.
Key concepts:
- SOLID principles (Single Responsibility, Open/Closed, Liskov, Interface Segregation, Dependency Inversion)
- Design patterns: MVC, Strategy, Observer, Factory, Singleton
- Layered and hexagonal architectures
- Domain-driven design fundamentals
- Coupling, cohesion, and abstraction
Applied across Web Dev projects (Python backends, React frontends), Testing practices, and API Design decisions.
Related: Web Dev, Python, TypeScript, Testing, API Design, Database Design