Skip to main content
CF

Software Architecture & Design of Modern Large Scale Systems

6h 57m 25s
English
Paid

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

FAQ

Do I need to be a Software Architect to take this course?

Absolutely not! A Software Architect is just a title. In fact, many companies don't give this official title to anyone. Most Software Architecture and System Design is done by trusted engineers within the organization. To get this trust from your managers, you need to demonstrate a solid knowledge of Software Architecture and System Design. This is exactly what you will learn in this course.

What is the importance of Software Architecture, and why do I need to learn it?

Modern software development of large-scale systems is very complex. Typically it involves many months of work of multiple software engineers. Just like no one would attempt to build a skyscraper without a solid plan and architecture, it is inconceivable to take on a big software project without proper design and an approved Software Architecture. If the Software Architecture of a system is done poorly the project will likely fail. However, if the software architecture is done correctly, it can have an enormous positive impact on many lives and help your organization grow and thrive.

Is there any coding involved in the course?

No. Software Architecture is part of the design phase of a large-scale system. Coding is done only when the Software Architecture is finalized. It definitely takes a certain mental leap to realize that coding is only a small part of software engineering. And if the Software Architecture and the design is done correctly, the coding task and everything that comes after it can be very easy and straightforward. On the other hand, if the Software Architecture is not done correctly, the implementation phase can become a big challenge.

Should any Software Engineer aspire to become a Software Architect?

Yes and No. As you gain more experience you will be expected to do more Software Architecture and Design. A role of a Senior Software Engineer in most organizations requires Software Architecture skills, even if your role does not have the "Software Architect" in it. Additionally, even if you want to keep coding, your code will always have to take the overall Software Architecture into account. Otherwise it will not be as effective. However if you do decide to pursue the role of a Software Architect,  you will be rewarded with greater responsibly and impact, which generally comes with higher job satisfaction, job security and higher pay.

About the Author: Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

Watch Online 36 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 36 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Introduction to Software Architecture
All Course Lessons (36)
#Lesson TitleDurationAccess
1
Introduction to Software Architecture Demo
10:31
2
Download the Course Workbook
01:57
3
Introduction to System Design & Architectural Drivers
09:50
4
Feature Requirements - Step by Step Process
08:04
5
System Quality Attributes Requirements
09:15
6
System Constraints in Software Architecture
10:13
7
Performance
12:45
8
Scalability
14:15
9
Availability - Introduction & Measurement
09:11
10
Fault Tolerance & High Availability
10:02
11
SLA, SLO, SLI
10:05
12
Introduction to API Design for Software Architects
12:13
13
RPC
11:00
14
REST API
16:18
15
DNS, Load Balancing & GSLB
15:11
16
Message Brokers
10:22
17
API Gateway
13:19
18
Content Delivery Network - CDN
13:16
19
Relational Databases & ACID Transactions
14:38
20
Non-Relational Databases
10:10
21
Techniques to Improve Performance, Availability & Scalability Of Databases
11:58
22
Brewer’s (CAP) Theorem
12:00
23
Scalable Unstructured Data Storage
15:18
24
Introduction to Software Architecture Patterns & Styles
05:08
25
Multi-Tier Architecture
12:51
26
Microservices Architecture
12:33
27
Event Driven Architecture
16:48
28
Introduction to Big Data
06:59
29
Big Data Processing Strategies
12:38
30
Lambda Architecture
13:32
31
Design a Highly Scalable Discussion Forum 1 - Requirements & API
13:40
32
Design a Highly Scalable Discussion Forum 2 - Functional Architecture Diagram
10:40
33
Design a Highly Scalable Discussion Forum 3 - Final Software Architecture
12:36
34
Design an E-Commerce Marketplace Platform 1 - Requirements & Sequence Diagram
13:47
35
Design an E-Commerce Marketplace Platform 2 - Functional Diagram
15:28
36
Design an E-Commerce Marketplace Platform 3 - Final Software Architecture
08:54
Unlock unlimited learning

Get instant access to all 35 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

  • Clean Code thumbnailFreeUpdated 3y ago

    Clean Code

    By: Udemy, Academind Pro (Maximilian Schwarzmüller)
    As a developer, you should be able to write code which works - of course! Unfortunately, a lot of developers write bad code nonetheless - even though the code w
    6h 41m2/5
  • Grokking SQL for Tech Interviews thumbnailUpdated 6mo ago

    Grokking SQL for Tech Interviews

    By: Design Gurus
    This course is designed for developers, database engineers, data specialists, and ML engineers preparing for SQL interviews.
  • Production-Ready Serverless thumbnailUpdated 1y ago

    Production-Ready Serverless

    By: Yan Cui
    The Production-Ready Serverless course teaches how to build resilient and scalable serverless applications, ready for production deployment. It.
    13h 37m5/5

Frequently asked questions

What prerequisites should I have before enrolling in this course?
Before enrolling in this course, it is beneficial to have a fundamental understanding of software development and some experience with programming. Familiarity with basic networking concepts and database systems will also be helpful, as the course covers topics such as DNS, Load Balancing, and both relational and non-relational databases.
What kind of projects will I build during this course?
During the course, you will design and architect large-scale systems through several projects. These include designing a highly scalable discussion forum and an e-commerce marketplace platform. Each project involves creating requirements, API designs, functional architecture diagrams, and final software architectures to simulate real-world system design processes.
Who is the target audience for this course?
This course is intended for aspiring Software Architects and current Software Architects looking for a refresher. It is also suitable for software engineers preparing for system design interviews, as it provides practical insights into architecting systems that scale to millions of users.
How does the depth and scope of this course compare to others on system design?
The course offers a practical approach to system design, focusing on scalability, fault tolerance, and database performance. It covers detailed topics like Brewer's CAP Theorem, microservices architecture, and big data processing strategies, which are crucial for designing large-scale systems. This makes it suitable for both beginners and those with intermediate knowledge seeking advanced concepts.
What specific tools or platforms are covered in this course?
The course discusses various tools and platforms essential for modern system architecture, including message brokers, API gateways, and content delivery networks (CDNs). It also covers database technologies, detailing both ACID transactions in relational databases and scalable unstructured data storage in non-relational databases.
What topics are not covered in this course?
While the course covers extensive software architecture principles, it does not delve into programming languages or specific development frameworks. It focuses on architectural patterns and system design principles rather than hands-on coding practices or development environment setups.
How can the knowledge from this course be applied to a career in software architecture?
The course equips students with the skills to design scalable and resilient systems, addressing architectural drivers and system constraints. With knowledge of microservices, big data processing, and performance optimization techniques, students can confidently approach system design challenges in roles such as Software Architect, Systems Engineer, or Technical Lead, and prepare for system design interviews.