Become a Software Architect or Technical Lead by Mastering Software Architecture, System Design & Big Data Processing.
Are you ready to take your career to the next level?
Do you want to master Software Architecture and System Design?
You came to the right place!
In this practical course, you will learn how to architect real-life systems, that scale to millions of daily users, as well as process and store petabytes of data.
If you aspire to become a Software Architect, or you are already a Software Architect and you need a good refresher, this is your best resource.
This is also the perfect place for you to prepare and gain confidence for an upcoming System Design Interview.
Some of the things you will learn include:
- Identifying the technical requirements of the systems without missing any details
- Defining easy to use and robust APIs
- Applying modern Architectural Building Blocks & techniques for High Scalability, Availability, and Performance
- Following industry-proven Software Architecture Patterns & best practices
- Architecting highly scalable systems for massive internet traffic and Big Data Processing
- Thinking and making trade-offs like a true professional Software Architect
By the end of the course, you will have all the skills you need to take on an ambiguous and high-level requirement and go through all the stages of a system design, all the way to its final Software Architecture.
Although this course does not involve coding, it is a highly practical course that will give you the fundamental knowledge for building real-world systems.
All the techniques and patterns covered in the course are used by top software companies.
In addition to the video lectures, you will also find
- Many resources, related to the topics covered in the course.
- Quizzes that will help you validate your progress and review the course material
- External links to relevant articles and videos to enhance your learning experience
This course is perfect for you if:
- You want to master Software Architecture, a topic that is not usually taught in colleges or coding bootcamps
- You want to become a Software Architect or a senior member of technical staff, such as a Senior / Principal Software Engineer or Technical Lead
- You are preparing for a System Design Interview and want to increase your chances for success, as well as stand out from the crowd of candidates
What you’ll learn
- Software Architecture of large scale systems, capable of handling millions of requests/day
- Design highly scalable, highly available and performant software systems
- Apply industry proven software architectural patterns, building blocks and best practices
- Define the system’s technical requirements, high level components and API
- Gain confidence for an upcoming System Design Interview
Table of Contents
1 Introduction to Software Architecture
2 Download the Course Workbook
System Requirements Architectural Drivers
3 Introduction to System Design Architectural Drivers
4 Feature Requirements Step by Step Process
5 System Quality Attributes Requirements
6 System Constraints in Software Architecture
Most Important Quality Attributes in Large Scale Systems
9 Availability Introduction Measurement
10 Fault Tolerance High Availability
11 SLA SLO SLI
12 Real World SLA Examples from the Industry
13 Introduction to API Design for Software Architects
15 Popular RPC Frameworks and Technologies
16 REST API
Large Scale Systems Architectural Building Blocks
17 DNS Load Balancing GSLB
18 Load Balancing Solutions Cloud Technologies
19 Message Brokers
20 Message Brokers Solutions Cloud Technologies
21 API Gateway
22 API Gateway Solutions Cloud Technologies
23 Content Delivery Network CDN
24 CDN Solutions Cloud Technologies
Data Storage at Global Scale
25 Relational Databases ACID Transactions
26 NonRelational Databases
27 NonRelational Databases Solutions
28 Techniques to Improve Performance Availability Scalability Of Databases
29 Brewers CAP Theorem
30 Scalable Unstructured Data Storage
31 Scalable Unstructured Data Storage Cloud and Open Source Solutions
Software Architecture Patterns and Styles
32 Introduction to Software Architecture Patterns Styles
33 MultiTier Architecture
34 Microservices Architecture
35 Event Driven Architecture
Big Data Architecture Patterns
36 Introduction to Big Data
37 Big Data Processing Strategies
38 Lambda Architecture
Software Architecture System Design Practice
39 Design a Highly Scalable Discussion Forum 1 Requirements API
40 Design a Highly Scalable Discussion Forum 2 Functional Architecture Diagram
41 Design a Highly Scalable Discussion Forum 3 Final Software Architecture
42 Design an ECommerce Marketplace Platform 1 Requirements Sequence Diagram
43 Design an ECommerce Marketplace Platform 2 Functional Diagram
44 Design an ECommerce Marketplace Platform 3 Final Software Architecture
45 Bonus Lecture Keep Learning