In this article, I’ve put together a list of resources (an online course + books) that I believe are super helpful in building a solid foundation in software architecture and 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: A few of the resources stated in this article contain affiliate links. That means if you find these resources helpful, worthy of spending your money on and you buy a subscription, a course or a book; I get a small cut without you paying anything extra.

I recommend these resources to you because I think the content they offer is pretty good & these will assist you big time in upskilling yourself enabling you to soar in your career.

Online Course On Software Architecture

Zero to Software Architect

Zero to Software Architect learning track is a series of three courses I’ve authored that educates you step by step on the fundamentals of software architecture, cloud infrastructure and distributed system design, starting right from zero. This unique learning track offers you a structured learning experience taking you right from having no knowledge on the domain to making you a pro in designing web-scale distributed systems like YouTube, Netflix, ESPN and the like.

It is meant for software developers, aspiring architects, product managers/owners, engineering managers, IT consultants and anyone looking to get a firm grasp on software architecture, application deployment infrastructure and distributed systems design starting right from zero.

The Track Consists of Three Courses:

  1. Web Application and Software Architecture 101
  2. Cloud Computing 101 – Master the Fundamentals
  3. Design Modern Web-Scale Distributed Applications Like a Pro

You can read more about the software architecture course in detail here.

Zero to software architect

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

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

To stay notified of new developments subscribe to my email newsletter –