In this article, I’ve put together a list of resources (online courses + books) that I believe are super helpful in building a solid foundation in software architecture & designing large scale distributed systems like Facebook, YouTube, Gmail, Uber & so on.  

I’ll start with the online courses and then will move on to talk about the books.


Affiliate Disclaimer: The resources stated in this article contain affiliate links. That means if you find the resources helpful & worthy of spending your money on & you buy a subscription or a single or a few courses or a book. I get a small cut without you paying anything extra.

I present these resources before you because I think the content, they offer is pretty good & these will assist you big time in developing a solid foundation in software architecture and system design.


Online Courses On Software Architecture

Scalability & System Design Learning Track On Educative

Educative.io is a platform that helps software developers level up on in-demand technologies & prepare for their interviews via interactive text-based courses with embedded coding environments.

It offers a scalability & system design learning track for software engineers to help them develop large scale system design skills by having an understanding of what technology and architecture fits best for a certain use case.

Learners get to understand the trade-offs involved when picking different architectures and technologies to design and build their systems. They will have an understanding of how to develop large scale services like Facebook, Twitter, YouTube, Uber, Instagram & more.  

scalability and system design learning track

The track consists of four courses:

  1. Web Application & Software Architecture 101
  2. An Introduction To Microservices Principles & Concepts
  3. Microservices Architecture – A Practical Implementation
  4. Grokking The System Design Interview

Let’s have a look at what these courses have to offer:

Web Application & Software Architecture 101

This course gives you a right from the basics, insight into web architecture. That is a step by step walkthrough through different components and concepts involved when designing the architecture of a web application, right from the user interface, to the backend, including the message queues, databases, streaming media, picking the right technology stack & much more. The course also contains a lot of illustrations to help you grasp the concepts better.

scalability

In this course, you’ll go through the techniques of picking the right architecture and the technology stack to implement your use case. It will walk you through different use cases which will help you gain an insight into what technology & architecture fits best for a certain use case when writing a web application. You’ll come to understand the technology trade-offs involved.

If you are a beginner just starting your career in software development, this course will help you a lot. Designing software is like fitting the lego blocks together. With this course, you’ll develop an insight into how to fit them together and build cool stuff. It will also help you with the software engineering interviews, especially for the full stack developer positions.

By the end of the course, you’ll have a comprehensive insight into the web application architecture. You’ll be all set on the path to designing applications from the bare bones. If you have a startup idea & you are asking yourself, how do I implement my app? What technologies do I use? Where do I start? This course will help you kickstart your entrepreneurial journey.

This course is written by me you can read more about it here.

Click here to view the course on Educative.io


An Introduction To Microservices Principles & Concepts

Microservices architecture is being used by most of the large-scale services running today be it Netflix, Spotify, Amazon, Uber or any other. This course helps you learn microservices in depth & understand the trade-offs involved when picking the microservice architecture for your use case.

You’ll learn Micro & Macro architecture, strategies for transforming legacy systems to modern architecture & the technologies involved that enable you to achieve so. You can consider this course as the part 1 of the two microservices courses in the learning track.

8bitmen.com Microservices architecture

After you understand the fundamentals of microservices you can move to the next course that is the practical implementation of the microservice architecture.

Click here to view this course on Educative.


Microservice Architecture – Practical Implementation

This course focuses on the low-level details of a real-world microservice architecture implementation. You understand the tech stacks that can be leveraged to implement a microservice & the trade-offs involved when picking a particular tech stack.

Microservices course on Educative.io

These technologies include Frontend Integration with Edge Side Includes (ESI), asynchronous microservices with Kafka and REST feeds, synchronous microservices with the Netflix stack and Consul, Docker, Kubernetes, Cloud Foundry. Every use case comes along with implementation code. By the end of this course, you’ll be a pro in designing microservices. Whether you’re a software engineer or an engineering manager, this course will certainly prove useful to you.

Click here to view this course on Educative.

Grokking The System Design Interview

This course helps you prepare for your system design interview rounds. It deals with designing large scale services the way companies expect you to design large scale services like Twitter, Uber, Facebook. Instagram, Dropbox and a lot more. Collectively there are 15 case studies discussed in the course.

The course is developed by hiring managers who’ve been working at Google, Facebook, Microsoft and Amazon. The case studies that the course contains have been repeatedly asked at the top companies.

Click here to view this course on Educative.io


Or you can choose to buy the full track by clicking here.

All the courses on Educative have a no questions asked 30 day return policy.


Database Design Fundamentals

Database design skill comes in really handy when you are designing the database for your own startup or when asked to design a database for a service during your system design interview round.

Database design fundamentals is a beginner level course that educates you on the fundamental concepts of databases, why and when they’re used, what are relational databases & entity-relationship diagrams & so on. You’ll understand techniques like normalization that help notch up the efficiency of databases. When done with this course you’ll easily take on more advanced courses in databases and SQL.

Click here to view the course on Educative.io


Recommended Read: Why you should master the art of designing large scale distributed systems as a developer?


Now let’s move on to books…

Books On Software Architecture

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

Designing data-intensive applications by Martin Kleppmann is one of the best sellers in the domain of designing large scale applications. This book helps you understand the pros & cons of picking different technologies for processing and storing data in your application. It discusses the fundamentals of data processing also takes a deep dive into concepts like scalability, high availability, consistency, reliability, different kinds of databases, distributed systems and more.

If you work on the backend, deal with databases to store data when developing mobile apps, web apps & so on. If you want to understand how to make data systems scalable, this book will help you big time in developing a good foundation in large scale system design.

Click here to view this book on Amazon


The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise


The Art of scalability is written by industry scalable consultants that educates you on how to scale products and services for different requirements. The authors discuss case studies from their consulting practice. It also gives the readers insights into through cloud transitions, NoSQL, DevOps, business metrics, measuring availability, capacity, load & performance and more. The insights and the recommendations of the authors reflect more than thirty years of experience at companies from eBay to Visa & Salesforce to Apple.

Click here to buy the book on Amazon.


Web Scalability For Startup Engineers

This book discusses core concepts and best practices of developing scalable applications in a startup environment. It describes how infrastructure and software architecture blend together when building scalable systems. The book also contains diagrams and real-world examples to help understand the concepts better.

Readers of this book will learn the key principles of software design for scalable systems, concurrency and throughput, designing APIs, implementing caching, how to leverage asynchronous processing, messaging, event-driven architecture and more.

Click here to buy the book on Amazon.


Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing

Streaming of data, both in real-time and batches, is a key component in modern web applications. This book helps the readers understand the underlying architecture and fundamentals of streaming systems, right from the introductory level of how data processing streams function. This is a practical guide with real-world examples for software developers, data engineers, data scientists on how to work with streaming data in a conceptual and platform-agnostic way.

Click here to buy the book on Amazon.


Architecting Modern Data Platforms: A Guide to Enterprise Hadoop at Scale

Architecting modern data platforms contains in-depth information on big data technologies. It takes a practical approach in educating the reader on how to build big data infrastructure both on-premises or in the cloud.

It walks you through different component layers in a modern data platform also on concepts & techniques like high availability, disaster recovery, deployment, operations, security and more.

Click here to buy the book on Amazon.


Database Internals: A Deep Dive Into How Distributed Data Systems Work

Database internals as the title says takes a deep dive into how distributed data systems work. This book is a practical guide on the concepts behind modern databases and the internals of their storage engines. You’ll understand how storage is organized and how the data is distributed across the system.

The book talks about storage engines explaining concepts like storage classification, B-Tree based & immutable log-structured storage engines with their respective use cases. How database files are organized to build efficient storage using data structures such as Page Cache, Buffer Pool & Write-ahead Log. You’ll learn how nodes and processes work in conjunction with each other in distributed systems, how data consistency models work and so on.

Click here to buy the book on Amazon.


Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services

Designing distributed systems discusses patterns used in the development of reliable distributed systems. The author who is the director of engineering at Microsoft Azure explains how we can adapt existing software design patterns for designing and building reliable distributed applications. System engineers and application developers will learn how they can improve the quality of their system using the patterns discussed in the book.

The book also touches upon the distributed system patterns for large scale batch data processing involving work queues, event based processing and co-ordinated workflows.

Click here to buy the book on Amazon.


Building Microservices: Designing Fine-Grained Systems

This book educates the reader on the techniques of modeling, integrating, testing, deploying and monitoring a microservice. All the concepts are discussed with the help of an example of a fictional company.

The book discusses key concepts & challenges involved in scaling the microservices architecture, managing security with the user to service and service to service models, dealing with complexities of testing and monitoring distributed services, deploying microservices through continuous integration, splitting monolithic codebases into microservices and more.

Click here to buy the book on Amazon.


Microservice Architecture

Microservice Architecture discusses the right way to approach the microservices architecture speaking of the principles, technologies and the methodologies involved in building microservices from the ground up. The book also discusses the experiences of large scale services that have adopted microservices architecture.

The book is split in three parts that discusses –

How microservices work & what it means to build a system using the microservices architecture.

A design-based approach for implementing the microservices architecture.

Best practices on how to handle the challenges of introducing the microservices architecture in your organization.

Click here to buy the book on Amazon.


Site Reliability Engineering – How Google Runs Production Systems

The site reliability engineering book discusses the entire application deployment lifecycle that includes building, deploying, monitoring and maintaining the services at Google. Readers will learn the principles and practices that enable Google engineers to make their services more scalable, reliable and efficient.

The book is split into four parts – where the first part gives an introduction to SRE site reliability engineering and how it differs from the traditional IT practices. The other two parts talk about the patterns, behaviour involved in the day to day work of an SRE engineer when building and operating large scale distributed computing systems. The last part touches upon Google’s best practices for running their infrastructure.

Click here to buy the book on Amazon


Also Read: Platforms & resources worth checking out that give you a push ahead in your software career.


This list of software engineering resources will be continually updated as I find new quality resources on software architecture.

To stay notified of new developments you can bookmark this page also can subscribe to the email list.


If you liked the article, share it with your folks. You can follow 8bitmen on social media – Twitter,     Facebook,          LinkedIn to stay notified of the new content published.

I am Shivang. You can read more about me here.


More On The Blog

YouTube Architecture – How Does It Serve High-Quality Videos With Low Latency

Platforms & Resources Worth Checking Out That Give You A Push Ahead In Your Software Career

YouTube Database – How Does It Store So Many Videos Without Running Out Of Storage Space?

Open Banking Architecture – Build Fintech Apps Consuming the Open APIs

An Insight Into How Uber Scaled From A Monolith To A Microservice Architecture