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
More Distributed Architectures
Week of October 13
This lecture explores various architectural styles, including pipeline, event-driven, space-based, and domain-oriented microservices, highlighting their trade-offs in scalability, extensibility, and maintainability. It also discusses strategies for decomposing monolithic applications, emphasizing that there are no universally "right" answers in architecture, only justifiable decisions.
8
Guest Lectures
Week of October 20
Lectures from industry professionals. Topic TBD
9
Architecture Problem Solving
Week of November 3
There are no right answers to architecture, only trade-offs. In this lecture, we will be establishing a problem solving mindset and find strategies to justify our architecture decision-making process.
10
Decisions and Risk
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
Solution Architecture Document
Week of November 17
In this lecture we will discuss how to write a Solution Architecture Document (SAD), in prepratation for the final deliverable for this course.
12
Guest Lectures
Week of November 24
Lectures from industry professionals. Topic TBD