I recently completed Introduction to Backend Architectures by Erik Reinert on Frontend Masters. This is one of the very few online programming courses I’ve gone through that does not have you coding alongside the instructor, but that I still found beneficial.
My main criticism of the course was that it didn’t feel long enough. It runs about 5 hours in length. To me, it seemed like the first half of the course discussed general software architecture practices. The second half specifically discussed backend architectures at a high level. I wanted and expected more of this second half.
The first half discussed principles to consider during the backend architecture design process, specifically: modularity, scalability, robustness, and flexibility. It also discussed challenges you’ll have to consider during the design process, highlighting: complexity, adaptability, security, technology, resources, and stakeholders. Although worthwhile, the content seemed like it could apply equally to frontend architecture.
The second half covered the steps to implement a backend architecture: research, implementation, and iteration. The highlight of the course, in my mind, was the section covering common backend architectures. Reinert went over the pros, cons, and use cases for monolithic, distributed, and serverless architectures. He also discussed generic services and microservices. This section on common backend architectures was under 2 hours of the 5 hours of the course.
This was a good course to listen to. I appreciated that the instructor weighed in with personal experience. I would set expectations going into the course that it’s more like a really good introductory podcast episode to the topics covered.