All Blog Posts

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

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

System Design Interview – Top K Problem (Heavy Hitters) - June 7, 2021

Besides reading this post, I strongly recommend reading chapter 10 (Real-time Gaming Leaderboard) of the book System Design Interview – An Insider’s Guide: Volume 2 (Xu, Alex – Lam, Sahn) You can review alternative resources as well. Functional Requirements Non-Functional Requirements Hash table, single host Hash table, multiple hosts Hash table, multiple hosts, partitioning Count-min sketch […]

Read more

System Design Interview – Rate Limiting (local and distributed) - May 6, 2021

Besides reading this post, I strongly recommend reading chapter 4 (Design a Rate Limiter) of the book System Design Interview – An insider’s guide (Xu, Alex) You can review alternative resources as well. Functional Requirements Non-Functional Requirements Token Bucket Algorithm Interfaces & Classes Step into the distributed world Message Broadcasting How do we integrate all What […]

Read more

System Design Interview – Notification Service - April 5, 2021

Besides reading this post, I strongly recommend reading chapter 10 (Design a Notification System) of the book System Design Interview – An insider’s guide (Xu, Alex) You can review alternative resources as well. Functional Requirements Non-Functional Requirements High-level Architecture FrontEnd Service Metadata Service Temporary Storage Sender What else is important… Final Look This content was excerpted […]

Read more

System Design Interview – Distributed Message Queue - March 4, 2021

Besides reading this post, I strongly recommend reading chapter 4 (Distributed Message Queue) of the book System Design Interview – An Insider’s Guide: Volume 2 (Xu, Alex – Lam, Sahn) You can review alternative resources as well. Synchronous Communication Asynchronous Communication Functional Requirements Non-Functional Requirements High-level Architecture VIP and Load Balancer FrontEnd Service Metadata Service BackEnd […]

Read more

System Design Interview – Distributed Cache - February 3, 2021

Besides reading this post, I strongly recommend reading chapter 5 (Design Consistent Hashing) and chapter 6 (Design a Key-Value Store) of the book System Design Interview – An insider’s guide (Xu, Alex) You can review alternative resources as well. Functional Requirements Non-Functional Requirements Some Tips LRU cache algorithm explanation LRU cache algorithm implementation Stepping into the […]

Read more

System Design Interview – News Feed Service (Facebook, Twitter, Instagram) - January 26, 2023

The News Feed Service is a system that provides users with a personalized feed of content from social media platforms such as Facebook, Twitter, and Instagram. The system collects and aggregates content from these platforms, filters it based on user preferences, and displays it in a single feed. • Data Collection: This component is responsible […]

Read more

System Design Interview – Ride-Sharing Service (Uber / Lyft) - January 26, 2023

High-Level Overview A ride-sharing service such as Uber or Lyft is a platform that connects drivers and passengers for the purpose of providing transportation services. The platform is responsible for managing the entire process from the initial request for a ride to the completion of the ride. This includes tracking the driver’s location, matching drivers […]

Read more

System Design Interview – Search Autocomplete Service (Typeahead) - January 26, 2023

Overview A search autocomplete service (typeahead) is a service that provides suggestions for search queries as a user types. It is used to help users quickly find what they are looking for and to reduce the amount of typing required. High-Level Design The high-level design of a search autocompletes service consists of two main components: […]

Read more

System Design Interview – URL Shortener Service (TinyURL) - January 26, 2023

Overview A URL shortener service, such as TinyURL, is a web service that provides short aliases for the redirection of long URLs. For example, the URL “https://example.com/very/long/url” can be shortened to “http://tinyurl.com/abc123”. System Design The database should store the following information: • Original URL: The original long URL that needs to be shortened.• Short URL: […]

Read more

System Design Interview – Video Streaming Service (Youtube / Netflix) - January 26, 2023

High-Level Overview A video streaming service is a system that allows users to watch videos over the internet. It typically consists of a server that stores the videos, a client that requests the videos, and a network that connects the two. The server stores the videos in a format that can be streamed, such as […]

Read more

System Design Interview – Web Crawler Service (Google Search) - January 26, 2023

A web crawler service, such as Google Search, is a system that automatically visits web pages and retrieves information from them. It is used to index web pages for search engines, monitor websites for changes, and create web archives. The web crawler service consists of several components: • Web Crawler: This is the main component […]

Read more

System Design Interview – Message Board Service (Quora / Reddit) - January 26, 2023

Overview The goal of this system design interview is to design a message board service similar to Quora or Reddit. This service should allow users to post questions and answers, upvote/downvote posts, and comment on posts. High-Level System Design The high-level system design for a message board service should include the following components: Detailed System […]

Read more

System Design Interview – File Storage and Sharing Service (Google Drive / Dropbox) - January 26, 2023

The goal of the system is to provide a secure and reliable file storage and sharing service that allows users to store, access, and share files from any device, anytime, anywhere. The main components of the system include: • Storage: A secure and reliable storage system to store user files. • Access: A secure and […]

Read more

System Design Interview – Chat Service (Facebook Messenger / Whatsapp) - January 26, 2023

High-Level Overview The chat service system is a platform that allows users to communicate with each other in real time. It can be used for both one-on-one conversations and group conversations. The system consists of a client-side application (e.g. Facebook Messenger or Whatsapp) and a server-side application. Client-Side Application The client-side application is responsible for […]

Read more

System Design Interview Topic: Vertical / Horizontal Scaling - January 26, 2023

Introduction: System design interviews are a crucial part of technical interviews for software engineering roles. They assess a candidate’s ability to design scalable, reliable, and efficient systems. Two common concepts that frequently come up in system design interviews are vertical scaling and horizontal scaling. In this blog post, we’ll delve into these concepts, understand their […]

Read more

1 2 3 8