Software Architecture

How do you avoid making your project a big ball of mud? How do you balance a wide range of design concerns and constraints? How do you map customer requirements to working software? This course provides you with the means and methods to face these challenges.


Developers and architects who design systems or assume the role of the architect in a project.


A couple of years of development. Preferably in an object oriented language (Java, C#, C++). The course, however, is language and platform independent.

About the instructor: Tore Nestenius

 Tore has worked as a consultant since 1997 and is a very knowledgeable system developer and has in the past worked for large companies like Ericsson and Flextronics. Early in his career, Tore Nestenius started Programmers Heaven - a portal with over 750 000 monthly users. He’s behind several other successful projects like CodePedia - a Wiki for developers, the Open Source project TNValidate, and the C# School e-book with over 100 000 downloads.

Course outline:

  • The Role of The Architect

    • Why design matters
    • Complexity
    • The architect's place in the team.
    • Why architecture is hard.

    Getting feedback

    • TDD
    • Continuous Integration & deployment
    • Refactoring
    • Software metrics

    Domain Driven Design (DDD)

    • Bounded contexts
    • Ubiquitous language
    • Entity and value objects
    • Invariants
    • Aggregates
    • Event Storming

    Data Access Architecture

    • CAP theorem
    • ORM mapping
    • NoSQL databases
    • Polyglot persistence
  • CQRS & Event sourcing

    • Semantic operations
    • Event sourcing
    • Read vs Write
    • The CQRS pattern
    • Commands and events
    • Write and read sides
    • Integration
    • Testing

    Architecture patterns

    • Sagas and process managers
    • Circuit breakers
    • Resilience patterns


    • Micro-services
    • REST APIs
    • Hypermedia
    • Creating scalable and reliable APIs
    • Webhooks
    • OpenAPI and Swagger
    • GraphQL


    • The security challenges
    • Hacking your self
    • Social engineering
    • Securing your architecture

Other relevant courses

2 days
13. January
2 days
26. January
3 days
16. February
3 days