Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying System Design Guide for Software Professionals
  • Table Of Contents Toc
System Design Guide for Software Professionals

System Design Guide for Software Professionals

By : Dhirendra Sinha, Tejas Chopra
close
close
System Design Guide for Software Professionals

System Design Guide for Software Professionals

By: Dhirendra Sinha, Tejas Chopra

Overview of this book

Building scalable software systems is more critical than ever. Yet, many software professionals struggle to navigate the complexities of system design, especially when aiming for positions at top tech companies. Written by Dhirendra Sinha, a seasoned Engineering Leader at Google with a blend of experience working at large companies such as Cisco, Oracle, and Yahoo, and Tejas Chopra, a Senior Software Engineer at Netflix, a TEDx speaker, and a Co-Founder of GoEB1, this comprehensive and authoritative resource on system design offers invaluable insights and strategies to help you excel in interviews with all major tech companies. This guide covers the basics of system design, including the principles and techniques of distributed systems, and delves into core building blocks such as distributed system theorems, attributes, and the design and implementation of system components. Following examples of popular applications such as Uber, Twitter, Instagram, Google Docs, and Netflix, you’ll learn how to apply concepts to real-world scenarios. The book offers expert advice and strategies for preparing and acing system design interviews, along with a mind map/cheat sheet summarizing the key takeaways. By the end of this book, you’ll be equipped with unique techniques and the confidence to solve any coding interview question.
Table of Contents (21 chapters)
close
close
Lock Free Chapter
1
Part 1: Foundations of System Design
5
Part 2: Core Components of Distributed Systems
10
Part 3: System Design in Practice

High-level design

Now that we have a clear understanding of the functional and non-functional requirements, as well as the scale calculations, let’s dive into the high-level design of the file-sharing service. The goal is to create an architecture that is scalable, reliable, and efficient in handling the vast amount of documents, revisions, and user interactions. Figure 13.2 shows the high-level design of the file-sharing system, which includes load balancers, API gateways, microservices for document management, collaboration, access control, caches, databases, and storage systems.

Figure 13.2: The high-level system design of a file-sharing service

Figure 13.2: The high-level system design of a file-sharing service

Let us discuss the software components and modules shown in this Figure 13.2.

Software components and modules of high-level design

The following are the different components and modules:

  • Client-server architecture:The file-sharing service will follow a client-server architecture, where clients...
CONTINUE READING
83
Tech Concepts
36
Programming languages
73
Tech Tools
Icon Unlimited access to the largest independent learning library in tech of over 8,000 expert-authored tech books and videos.
Icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Icon 50+ new titles added per month and exclusive early access to books as they are being written.
System Design Guide for Software Professionals
notes
bookmark Notes and Bookmarks search Search in title playlist Add to playlist font-size Font size

Change the font size

margin-width Margin width

Change margin width

day-mode Day/Sepia/Night Modes

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY

Submit Your Feedback

Modal Close icon
Modal Close icon
Modal Close icon