No subject in software engineering will add more value to an engineer's skillset than having a good understanding and, eventually, mastery of the topic of solution architecture. It is the bedrock of everything we do; without it, we can't create good solutions, no matter how good our code is. The phrase "the right tool for the right job." rings true with solution architecture more than any other subject in engineering, and knowing when to choose the correct database or even the right technologies to build your solution reasonably, depends on a sound understanding of solution architecture. In this course, James Eastham, Senior Software Architect for Amazon Web Services (AWS), will introduce you to the concept of Solution Architecture and give you all the foundational knowledge you need to master the subject.
What is a software architect?
The Software Architect's Elevator
The importance of the business context
Optimizing for Change
Impact as an Architect
Defining Architecture Tenets
The Value Of Communication
Functional vs non-functional requirements
Gathering Functional Requirements
Architectural -ilities and understanding trade offs
Architect in characteristics
Modularity, Coupling and Cohesion
Customers & their Access Patterns
Service Oriented Architecture
The Fallacies of Distributed Computing
Why Choose Microservices
Event Driven Architecture
Thinking Serverless First
Conway's Law and Aligning Architecture to the Organisation
Ocams Razor - Keep It Simple Stupid
Choosing the Appropriate Architecture
Thinking In Patterns
API First Design
Streaming Vs Batch Processing
Messaging and Reactive Systems Design
Architect for Failure
Integrating with External Systems
The Importance of Documentation
Architecture Decision Records
Documenting Use Cases
Architect in Patterns
The Importance Of Context
The Importance Of Interoperability
Evolutionary as a default
The Importance of Observability
Architecture In Practice
James Eastham is a Senior Cloud Architect at Amazon Web Services and content creator. He has over 10 years experience in software, at all layers of the application stack.
He has worked in front-line support, database administration, backend development and now works with some of the biggest companies in the world architecting systems using AWS technologies.
James produces content on YouTube, focused around building applications with serverless technologies using .NET, Java & Rust.