Schedule
1
Intro + Contributing to Open Source
 Week of September 2 
 Introduction to course structure, the fundamentals of large software systems, and how to effectively contribute to large software systems. 
2
Analyzing and Understanding Large Codebases
 Week of September 8 
 Understanding the architecture of large codebases and recognizing real-life applications of design patterns in a large codebase. 
3
Operational Non-functional requirements
 Week of September 15 
 What does it mean for a system to be performant? What are the operational requirements that we need to consider when designing a software system? 
4
Structural Non-functional requirements
 Week of September 22 
 Considerations to ensure the code quality of the system to enable it to be operated and maintained in quality. 
5
Diagramming and Whiteboarding
 Week of September 29 
 A picture is worth a thousand words. Visualizations are one of the most powerful tools in an architect's belt. This lecture discusses how diagramming and whiteboarding can be used to augment the communication that ensures software projects succeed. 
6
Forming an Architecture
 Week of October 6 
 The lecture covers forming an architecture for large software systems, discussing application architecture patterns, the transition from monoliths, and service-oriented architecture. It highlights maintainability, testability, layered architecture styles like MVC, and the microkernel architecture style. The lecture also examines trade-offs in distributed architectures, including latency and network reliability. 
7
Analytical Processing and Distributed Architectures
 Week of October 13 
 This lecture covers various distributed architectures, including pipeline, broker, and mediator topologies, and their application in report generation and AI. It also differentiates between operational and analytical data, discussing data warehousing, data lakes, and data mesh approaches. 
8
Guest Lectures
 Week of October 20 
 Lectures from industry professionals. Topic TBD 
9
Reads, writes and replication
 Week of November 3 
 A good architecture takes into account usage patterns. Explore some of the creative ways the industry uses to solve architecture challenges. 
10
Evaluating and mitigating architecture risks
 Week of November 10 
 Architecture is about communication and decision making. This lecture covers how architects analyze architectural risk in order to determine which decisions needs to be communicated to the rest of the team. 
11
TBD
 Week of November 17 
 TBD 
12
Final Exam Review
 Week of November 24 
 TBD