In 2016 I worked in San Francisco for a year, as Senior VP of Engineering for a company in the solar industry. It was loads of fun, and I learned a lot about how American companies do business in Silicon Valley.
My CTO and I set out on an ambitious plan to introduce AI in the solar power industry. We rolled out an architecture that could support the entire sales process, from the initial lead to having panels on the roof. We hosted on Azure and crossed all the classic architecture boxes: a layered service-oriented architecture, REST-based, with a message queue for asynchronous API calls, and component-based for easy upgradability.
As I was designing the architecture, it occurred to me that most system architectures are just amalgamations of a few simple fundamental architecture patterns, something I could easily teach in an online course.
I also started thinking about personality traits of my co-workers. What kind of traits would I love to see in the architects I worked with? Which additional responsibilities could an architect take on in a project, to really make a difference in the job?
“Really, really good course.”
- Sebastian Burzak, course student
I've compiled a lot of material to get you on your way. We'll cover how the architect operates in an IT team, which soft skills are required to become an outstanding architect, and which extra responsibilities you can take on to really make an impression on your peers.
I will also teach you how to create great architectures, we will discuss all common architecture design patterns, and I will also show you how to design these patterns in UML. And we're going to look at all important design- and runtime quality attributes. Finally, we'll take a closer look at three systemwide concerns: caching, exception management, and deployment scenarios.
By the end of the course, you'll have a very clear picture of what it takes to become an outstanding solution architect.