Skip to content

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

Advanced Software Architecture

Course Summary

The Advanced Software Architecture training course is intended to help working software engineers build larger, higher quality software systems using various structures and systems and teach learners what it takes to architect that software. Software architecture serves as a blueprint upon which applications are developed using structures and systems that enable for more efficient software development.

The course begins a historical introduction and deep dive into the major technologies of this course including Test Drive Design (TDD), Design Patterns, Design for Scalability, and The Clean Architecture. Next, students will explore the building and refactoring large systems with an eye to reconciling the different approaches and building high-quality software. Students will learn how to identify how to consolidate services OR to break down services when necessary. Finally, the course concludes with education about how to refactor databases, data flows, and analytics to improve the scalability and performance of applications.

This course assumes general software engineering maturity and hands-on coding experience. Ideally, students will be familiar with one of C++, C#, Scala, Java, or Python.

Purpose
Learn how to apply design patterns in order to architect large, internet-scale applications.
Audience
Software Engineers that want to learn how to architect large, internet-scale applications and apply design patterns to build those applications.
Role
Software Developer
Skill Level
Advanced
Style
Workshops
Duration
4 Days
Related Technologies
C# | C++ | Java | Scala | Python

 

Productivity Objectives
  • Gain an in-depth understanding of key software architecture concepts and methodologies: Design Patterns, Refactoring, Tests Driven Development, Scalable Design, and Clean Architecture.
  • Grasp how to refactor complex systems to achieve test coverage and scalability.
  • Recognize the tradeoffs between alternate designs depending upon staffing, time to market, and scalability constraints.
  • Master the skills towards designing and managing the development of large software systems.

What You'll Learn:

In the Advanced Software Architecture training course, you'll learn:
  • Historical Overview of Technologies
    • The origin and GoF catalog of Design Patterns
    • Waterfall and the introduction of Agile Development
    • Refactoring, Test Driven Development, and their relationship to Agile Development.
    • Scalable software and SaaS
    • The Art of Scalability
    • The Clean Architecture
    • Service-Oriented Architecture
    • Microservices Architecture and Data Flows
  • Design Patterns
    • How and when to apply certain patterns
    • Singleton
    • Strategy and Factory Method
    • Observer
    • Fluent Builder
    • Adapter
    • State
    • Chain of Responsibility
    • Bridge
  • Building Systems
    • Refactoring into Design Patterns
    • Achieving TDD
    • Developing stable services
    • Scalability and other architectural constraints
    • Security and scalability testing
    • Large scale redesigns
    • Refactoring databases
    • Data flows and analytics
“I appreciated the instructor's technique of writing live code examples rather than using fixed slide decks to present the material.”

VMware

Dive in and learn more

When transforming your workforce, it's important to have expert advice and tailored solutions. We can help. Tell us your unique needs and we'll explore ways to address them.

Let's chat

By filling out this form and clicking submit, you acknowledge our privacy policy.