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

Summary

In this chapter, we designed the URL shortener system. We first looked at why it’s a useful service to have and what some of the real-world use cases for such a service are. This helped us understand the importance of designing this system correctly. This was also useful to understand the scale at which such a system can be used.

We then started listing the requirements, both functional and non-functional. We classified some of the functional requirements as core and some as extended. Then, we went on to list the core APIs needed for this system to function. We also did some quick calculations to understand the scale, storage needs, and the number of characters needed in the shortened URL to serve the 3.5 T URLs.

After this, we started exploring various solution ideas to solve the core challenge, namely how to assign a unique shortened URL for a long URL. In part of the exploration, we identified various problems and tried to mitigate them by using some strategies...

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