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