Category: System Design Interview

Join me to stay up-to-date and get my new articles delivered to your inbox by subscribing here.

System Design Interview Topic: CAP Theorem - January 26, 2023

The CAP theorem, also known as Brewer’s theorem, states that it is impossible for a distributed computer system to simultaneously provide all three of the following guarantees: The CAP theorem states that a distributed system can only provide two of the three guarantees at any given time. This means that when designing a distributed system, […]

Read more

System Design Interview Topic: Consistency Patterns - January 26, 2023

Consistency patterns are a set of techniques used to ensure data consistency across distributed systems. They are used to ensure that data is consistent across multiple nodes in a distributed system and that any changes made to the data are propagated to all nodes in the system. There are several different types of consistency patterns, […]

Read more

System Design Interview Topic: Caching - January 26, 2023

Caching is a method of storing frequently-used data in an easily-retrievable format. It is used to improve the performance of applications by reducing the amount of data that must be retrieved from remote sources, such as databases or web services. A caching system typically consists of a cache server, which stores the data, and a […]

Read more

System Design Interview Topic: Availability - January 25, 2023

Availability is an important factor in system design, as it is the measure of how reliable a system is in providing services to its users. Availability is typically measured in terms of uptime, which is the amount of time a system is available to its users. Availability is a critical factor in system design, as […]

Read more

System Design Interview Topic: Load Balancers - January 25, 2023

Load balancers are a critical component of any distributed system, and understanding how they work is essential for any system design interview. Load balancers are used to distribute workloads across multiple computing resources, such as servers, in order to increase system performance and reliability. Load balancers are typically deployed in a network to provide a […]

Read more

Step-by-Step Tech Interview Preparation Guide for Medium Timeline (30 Days) - November 3, 2022

This guide is designed for final interviews. Generally, this type of interview panel consists of coding, system design and leadership / behavioural interviews. If you are here and reading this, highly likely you are preparing for this type of interview. If that is so, congratulations on making it to the final onsite interviews. Good luck. […]

Read more

Best Resources for Tech Interviews (Coding & System Design) - October 9, 2022

Best Books for System Design Interviews Best Books for Coding Interviews Best Online Courses for Coding Interviews If you need further guidance or mentorship, drop me a line

Read more

Preparation Guide for Tech Interviews – Ace Your Google & Facebook (Meta) Interviews - September 18, 2022

Resume Preparation Resources Create Your Resume for Google: Tips and Advice General Interview Tips Explain – We want to understand how you think, so explain your thought process and decision making throughout the interview. Remember we’re not only evaluating your technical ability, but also how you solve problems. Explicitly state and check assumptions with your interviewer […]

Read more

Distributed Systems – Time Synchronization and Logical Clocks - August 29, 2022

A distributed edit-compile workflow 2143 < 2144 -> make doesn’t call compiler Lack of time synchronization result: a possible object file mismatch What makes time synchronization hard? Quartz oscillator sensitive to temperature, age, vibration, radiation Accuracy ~one part per million: one second of clock drift over 12 days The internet is: Asynchronous: arbitrary message delays […]

Read more

Distributed Systems – Remote Procedure Calls (RPCs) and Failures - August 19, 2022

Failures, from client’s perspective The cause of the failure is hidden from the client! At-Least-Once scheme Simplest scheme for handling failures Client stub waits for a response, for a while Response is an acknowledgement message from the server stub If no response arrives after a fixed timeout time period, then client stub re-sends the request […]

Read more

1 2 3 4