We may earn an affiliate commission when you visit our partners.
Rakia Ben Sassi

In this course, you’ll gain hands-on experience in building software systems that are scalable, secure, and resilient—using the latest industry techniques and patterns. This course is perfect for developers, engineers, and tech enthusiasts ready to advance their skills in software architecture, cloud computing, and DevOps.

Together, we’ll dive deep into architectural patterns, from monolithic systems to microservices and serverless architectures:

Read more

In this course, you’ll gain hands-on experience in building software systems that are scalable, secure, and resilient—using the latest industry techniques and patterns. This course is perfect for developers, engineers, and tech enthusiasts ready to advance their skills in software architecture, cloud computing, and DevOps.

Together, we’ll dive deep into architectural patterns, from monolithic systems to microservices and serverless architectures:

  • We'll examine how to design robust systems that handle complex demands.

  • Explore critical concepts such as CQRS (Command Query Responsibility Segregation),

  • and delve into Kubernetes, learning how to deploy, scale, and troubleshoot applications in cloud environments.

  • We’ll also tackle API design, covering key areas like versioning, error handling, and best practices, all essential for building high-performance applications.

  • We’ll also address security challenges, exploring memory-safe programming and security-by-design principles to safeguard your applications.

Real-world case studies—including in-depth looks at AWS and Linux kernel architecture—illustrate how these practices are applied at leading tech companies, giving you valuable insights to apply directly in your work. You'll leave this course equipped to design, deploy, and secure software systems using industry-leading strategies. This will empower you to advance in your career confidently and handle real-world software engineering challenges with skill and precision.

By the end, you’ll have a mastery of the essential skills needed to stand out in today’s fast-evolving tech landscape and confidently navigate complex architectural decisions.

Enroll now

What's inside

Learning objectives

  • Apply security-first principles with techniques like memory-safe programming.
  • Develop and manage apis with a focus on versioning, error handling, and best practices.
  • Implement secure cloud environments using serverless and containerized applications.
  • Design scalable software architectures using microservices and cqrs.
  • Learn kubernetes for deployment, scaling, and troubleshooting in cloud systems.
  • Evaluate emerging tech and trends, like data mesh and devops, for architectural improvement.

Syllabus

Introduction
What Does Software Architecture Mean?
About Me

Test your understanding and appreciation of the crucial concepts introduced so far. Challenge your grasp of "zooming out" and "systems thinking" as essential tools for any software engineer looking to broaden their horizon and deepen their impact. Are you ready to dive in?

Read more

Dive into my vibrant world as a freelance senior software engineer and an influential figure in the tech community. This quiz is a gateway to understanding my contributions and expertise.

Test your understanding and see if you can match wits with the experts.

Conway's Law and understand different architectural patterns
From Monolithic to Microservices and Beyond

Test your knowledge of the architectural shifts that have shaped the digital landscape. Discover how software architecture has transformed from monolithic structures to the dynamic world of microservices, event-driven architectures, serverless computing, and CQRS.

A good understanding of the CQRS architectural pattern and how it differs from others padigms. A good grasp on how to apply it to a solution design.
A Dive into the CQRS Architectural Pattern

Dive into the fascinating world of Command Query Responsibility Segregation (CQRS) and explore how this architectural pattern brings clarity, efficiency, and a unique time dimension to software design.

This is a comprehensive guide to the post-virtual machine and post-container paradigm. At the end of this section, you'll have a deep understanding of serverless architectural approache.
Introduction (Serverless)
Key Terminology (Serverless)
Serverless Deep Dive (Q&A)
Serverless Takeaway

This engaging quiz will deepen your understanding of cloud computing, serverless, and DevOps.

Understand the architecture of a software before implementation, which is known as prescriptive architecture, and after implementation, which is known as descriptive architecture.
How does a specific software architecture evolve over time?
Case Study 1: Linux Kernel
Case Study 2: iRODS
Case Study 3: AWS Environment

Explore the evolving landscapes of software architecture, from the theoretical blueprints of prescriptive designs to the tangible realities of descriptive architecture. Test your knowledge on how these concepts play out in real-world systems, including the Linux Kernel, iRODS, and AWS cloud environments. Ready to dive in?

Understand the key factors for a good software architecture
What Makes a Software Architecture a Good One?

Uncover the principles of good software architecture through the practical realities of software development. Explore the nuanced trade-offs and contextual decisions that shape the foundation of resilient, adaptable, and efficient software systems.

Understand the borderline between Software Architecture and System Architecture and the focus and responsibilities of each one
The Differences Between Software Architecture & System Architecture

Test your knowledge of the distinctions and overlaps between software architecture and system architecture. Solidify your understanding of these foundational concepts that are crucial for developing, deploying, and managing robust IT solutions.

You'll uncover the art and science behind creating effective, scalable, and user-friendly APIs. The goal is not just to learn about API design but to inspire you to think like an architect.
Introduction (API Design)
API Architecture Styles
Takeaway: API Architecture Styles
Designing with Purpose
What Makes a Good API?
Real-World Case Study
Challenges in API Design
API Versioning
API Error Handling: Best Practices
API Design Hands-On
API Design Final Thought

This quiz helps reinforce key concepts about API design and engages you with practical and thought-provoking questions.

The quiz is designed to be insightful and helpful in mastering API versioning patterns and strategies.

The quiz is designed to be insightful and helpful to have a better understanding of API error handling best practices and strategies.

Get a great understanding of what authentication and authorization are, how their processes work, and what techniques are used to implement them.
Authentication Basics

Get a deep understanding of access control and JSON Web Token (JWT) authentication.

Authorization Techniques

Get a deep understanding of authorization and techniques like RBAC and ABAC.

Observability
Stop Debugging Nightmares! Explore Microservices Auto-Docs & Visual Debugger
A practical guide for databses

If you’re new to relational databases or just want to know why Postgres is such a big deal, you’re in the right place! Let’s dive into the whys and whats of this amazing database system.

This quiz reinforces the practical and theoretical concepts discussed in this section, ensuring learners grasp the key aspects of PostgreSQL.

The importance of systems thinking in the software architecture discipline.
Peter Senge's 11 Laws of Systems Thinking

Decipher the nuanced laws of Systems Thinking as articulated by Peter Senge, and explore their profound implications in the realm of software development. Challenge your understanding and reflect on how these universal truths shape the way we design, develop, and interact with software systems.

Diving into service and data meshes is nothing short of fascinating. So, let’s break down some common questions to paint a clear picture and avoid any confusion around service meshes.
Introduction (Service Mesh)
Microservices Design Patterns
What microservices problems does a service mesh solve?
Service Mesh & Data Mesh Deep Dive
Final Thought (Service Mesh)

Get a deep understanding of service mesh.

A break down of the Reactive Programming paradigm in the frontend and the backend with project reactor (java) and spring webflux.
Reactive Programming with Spring WebFlux
Backend vs. Frontend Reactive Programming
Final Thought (Reactive Programming)
Hands-on Building a Reactive Microservice with Spring WebFlux, MongoDB and Docker (a step by step guide).
Introduction (Reactive Microservice with Spring WebFlux)
Step 1: Project Setup
Step 2: Implement the Models and Repository
Step 3: Service Layer - Order Processing Logic
Step 4: Controller - Exposing APIs
Step 5: MongoDB Configuration
Step 6: API Testing
This is comprehensive guide for container management and its role in cloud native computing.
Docker Introduction
Docker Basics: Images, Containers, Volumes, Networking
Setting Sail with Docker
Deploy an Application on Docker
Docker Basics: What’s Next?

Learn Docker basics and hands-on

Docker Deep Dive: Architecture & Core Components
Docker Deep Dive: Practical Commands
Docker Deep Dive: Dockerfile & Image Optimization Tips
Docker Deep Dive: Docker Compose
Docker Deep Dive: Persistent Storage & Volumes
Docker Deep Dive: Containers Networking
Docker Security Best Practices
Docker: Final Thought

Review what you learned from the Docker Deep Dive section and check your understanding for it.

Kubernetes Introduction
Kubernetes Architecture & Core Components
Minikube vs. Kind vs. Managed Kubernetes Services
Getting Your Hands Dirty with Kubernetes
Wrapping Up Kubernetes Beginners' Guide

Save this course

Save Modern Software Engineering: Architecture, Cloud & Security to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for Modern Software Engineering: Architecture, Cloud & Security. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Modern Software Engineering: Architecture, Cloud & Security will develop knowledge and skills that may be useful to these careers:

Reading list

We haven't picked any books for this reading list yet.
Provides a detailed analysis of the architecture of several popular open source applications. It great resource for learning about the different architectural patterns and techniques that are used in real-world software systems.
Provides a comprehensive overview of software architecture, covering the principles, practices, and tools involved in designing and building large-scale software systems. It is an excellent resource for both experienced software architects and those new to the field.
Provides a comprehensive catalog of software architecture patterns. It great resource for learning about the different types of architectural patterns and how to use them to solve common software design problems.
Provides a fun and engaging introduction to design patterns, which are reusable solutions to common software design problems. It great resource for learning about the different types of design patterns and how to use them effectively.
Provides a detailed guide to designing and building software systems that are clean, maintainable, and extensible. It great resource for learning about the principles of software architecture and how to apply them to real-world projects.
Introduces the concept of domain-driven design (DDD), which software design approach that focuses on understanding the core domain of a software system and designing the system around that domain. DDD powerful technique for managing the complexity of large-scale software systems.
Provides a practical guide to designing and building microservices-based systems. It covers the key concepts and principles of microservices architecture, and provides detailed guidance on how to implement microservices in a variety of programming languages and frameworks.
Provides a detailed guide to designing and building enterprise integration patterns. It great resource for learning about the different types of integration patterns and how to use them to solve common integration problems.
Provides a practical guide to software architecture. It covers the key concepts and principles of software architecture, and provides guidance on how to apply them to the design and development of real-world software systems.
Provides a practical guide to designing and building software architectures that are flexible and adaptable. It great resource for learning about the principles of evolutionary architecture and how to apply them to real-world projects.
Provides a comprehensive guide to designing and building data-intensive applications. It covers the key concepts and principles of data-intensive architecture, and provides guidance on how to apply them to the design and development of real-world applications.
Provides a practical guide to designing and building scalable software systems. It covers the key concepts and principles of scalability, and provides guidance on how to apply them to the design and development of real-world systems.
Provides a practical guide to software architecture for developers. It covers the key concepts and principles of software architecture, and provides guidance on how to apply them to the design and development of real-world software systems.
Hands-on guide to cloud computing. It covers a wide range of topics, including cloud architectures, cloud services, and cloud security.
Practical guide to cloud computing. It covers a wide range of topics, including cloud computing basics, cloud architectures, and cloud security.
Provides a theoretical foundation for cloud computing. It covers topics such as cloud architectures, cloud resource management, and cloud security.
Great introduction to cloud computing for beginners. It covers the basics of cloud computing, including what it is, how it works, and its benefits.
Provides a comprehensive overview of cloud computing, covering concepts, technologies, and architectures. It is written by leading experts in the field.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser