The best books and resources for aspiring software architects

Blog, Books for Architects

First of all, there is some ambiguity in the term “software architect”. For those who are more familiar with the job title, this article will mostly talk about what training material I recommend to become a solution architect

Let’s start with cover books, and there’s one that stands out to me:Domain-Driven Design by Eric Evans. You may be wondering why this 20-year-old book is still relevant to modern application architectures such as event-driven microservices. When designing a microservices architecture, you need to find a good way to partition functionality into a single microservice. The best way to do this is to make a single microservice responsible for a portion of your domain or bounded context.

For architectural design patterns such as Event Sourcing and CQRS (Command Query Responsibility Segregation), which I recently implemented in a project, this book is again a great resource. Our event streams for the event store (audit log) are partitioned for our Aggregate Root domain entities. Finally, when dealing with a legacy system, you often need to create an anti-corruption layer. Another important concept from the book.

domain-driven design book by eric evans

Another good way to stay up to date or refresh your memory on a particular software architecture topic is to subscribe to newsletters that specialize in software engineering. The newsletters ByteByteGo and Refactoring from Substack, which I subscribe to, are recommended by my colleagues. Both have paid subscriptions.

Both subscriptions have paid subscriptions, but you can get a lot of information for free. Most of the time the topics are just a quick refresher on how things work behind the scenes and only take a few minutes to read. I don’t expect to ally gain in-depth knowledge by reading these newsletters, but it really helps to broaden your knowledge. Of course, there is a lot of information available online. I often read articles about software engineering on Medium.

There’s no substitute for real-world experience on a customer project, but what if you want to explore a new technology area in which you have no experience? Most clients won’t even let you start a project if you don’t have the experience. We all know that with the

experience you have and the basics you’ll learn quickly, but you need a chance to show your value in an interview. Last year I was not selected for an Enterprise Architect interview because I didn’t have any experience with the Sparx Enterprise Architect tool in my resume. I have Togaf and Archimate certifications, but experience with this tool seemed more important. Imagine that!

For example, you work for a customer and they have native cloud development on Azure but you want to get familiar with AWS cloud development. I recommend you to follow one or more courses on Udemy, like the course for a Certified AWS Certified Architect Associate.

The beauty of Udemy courses is that you don’t need a lot of time each day to learn. Learning an average of half an hour a day should be feasible for everyone. For myself, I download the courses to watch on the train. I also minimize the time I spend watching TV. My list of Udemy courses I’ve purchased in the past year is much longer than this, but these are my top picks:

  • Business Architecture Fundamentals with TOGAF 10 Standard
  • EA Part 1 & 2 with TOGAF 10 Standard
  • Enterprise Architecture by Example by Chris B Behrens
  • Ultimate AWS Certified Solutions Architect Associate/Professional by Stephane Marek
  • AWS Certified Developer Associate
  • AZ-204 Developing solutions for Microsoft Azure
  • Kubernetes Certified Application Developer (CKAD)
  • Certified Kubernetes Administrator (CKA) – Real World
  • HashiCorp Certified: Terraform Associate
  • LLM engineering: Master AI, Large Language Models & Agents by Ed Donner

A lot of these courses are more about DevOps or software engineering, but the best solution architect for me is someone who gets their hands dirty. It is so helpful to have hands-on knowledge to get the development team to follow the solution architecture because it is a pragmatic and realistic design. If you’re going for certification, always order the practice tests as well. A certification process can be expensive, so make sure you’re well prepared.

Using the Udemy courses, I was able to earn 8 certifications in just over six months. You can draw your own conclusions about the quality of the certifications, but I still think it’s a nice achievement. But most importantly, a certificate gives you a chance to start a project as a software architect, even if you don’t have enough experience yet. A chance to start a new project may be all you need.

So that was my brief overview of what books or other resources might be helpful if you want to grow into a software architect.

Curious what books or resources you would recommend?