Software Architecture: From Patterns to Practice

Workshop Overview

Are you a software engineer who wants to move beyond just writing code and start designing systems? Or are you a tech lead who wants to provide your team with a solid foundation in software architecture? If so, this workshop is for you. We'll cover the fundamentals of software architecture, from the most common architectural styles and patterns to the practical, day-to-day challenges of designing and building complex systems. You'll leave with the knowledge and skills you need to make better architectural decisions and to design systems that are scalable, resilient, and easy to maintain.

Key Takeaways

  • Understand the role of the software architect and the key responsibilities of the role.
  • Learn how to identify and apply the most common architectural styles and patterns.
  • Discover how to design systems that are scalable, resilient, and easy to maintain.
  • Learn how to communicate your architectural decisions effectively to your team and your stakeholders.
  • Develop a framework for making sound architectural decisions.

Syllabus

The Fundamentals of Software Architecture

In this session, we'll explore the core concepts of software architecture, including the role of the architect, the importance of quality attributes, and the different architectural views.

Architectural Styles and Patterns

In this session, we'll take a deep-dive into the most common architectural styles and patterns, including layered, microservices, event-driven, and clean architecture. You'll learn how to choose the right style for your needs and how to apply it in practice.

Designing for Scalability and Resilience

In this session, you'll learn how to design systems that can handle a large number of users and that are resilient to failure. We'll cover topics like load balancing, caching, and circuit breakers.

Communicating Architecture

In this session, you'll learn how to communicate your architectural decisions effectively to your team and your stakeholders. We'll cover topics like creating architecture diagrams, writing architecture decision records (ADRs), and presenting your ideas to a non-technical audience.

The Architect's Toolkit

In this session, we'll explore the tools and techniques that you can use to make better architectural decisions. We'll cover topics like domain-driven design (DDD), threat modeling, and performance testing.

Target Audience

  • You're a mid-level to senior software engineer who wants to learn more about software architecture.
  • You're a tech lead who wants to provide your team with a solid foundation in software architecture.
  • You're an engineering manager who wants to improve the architectural skills of your team.

Format

This is a full-day, interactive workshop that can be delivered remotely or in-person. The workshop includes a mix of presentations, group discussions, and hands-on exercises.

Interested?

If you're interested in a private workshop for your team, please get in touch to discuss your needs and how I can help.

Book a Private Workshop