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
System Requirements & Architectural Drivers
2 Introduction to System Design & Architectural Direct Drivers
3 Feature Requirements – Step by Step Process
4 System Quality Attributes Requirements
5 System Constraints
Most Important Quality Attributes in Large Scale Systems
8 Availability – Introduction & Measurement
9 Fault Tolerance & High Availability
10 SLA, SLO, SLI
11 Industry SLA Examples
12 Introduction to API Design
14 Popular RPC Frameworks
15 REST API
Large Scale Systems Architectural Building Blocks
16 DNS, Load Balancing & GSLB
17 Load Balancing Solutions
18 Message Brokers
19 Message Brokers Solutions
20 API Gateway
21 API Gateway Solutions
22 Content Delivery Network
23 CDN Solutions
Data Storage at Global Scale
24 Relational Databases & ACID Transactions
25 Non-Relational Databases
26 Non-Relational Databases – Solutions
27 Techniques to Improve Performance, Availability & Scalability Of Databases
28 Brewer’s (CAP) Theorem
Software Architecture Patterns
29 Introduction to Software Architectural Patterns
30 Multi-Tier Architecture
31 Microservices Architecture
32 Event Driven Architecture
Big Data Architecture Patterns
33 Introduction to Big Data
34 Big Data Processing Strategies
35 Lambda Architecture
36 Bonus Lecture – Keep learning