Skip to main content

Capacity Estimation

This guide provides a concise overview of storage and compute estimation, common sizes, and solutions by scale for system design interviews and real-world applications.

Read more…

A Generic Approach to LLD Problems

Design and Requirements

Every LLD problem has a set of requirements, but the framework that I'm going to discuss is based on real-life application development. There are 3 components in the design:

  1. Service Layer: This layer is responsible for handling the business logic. It is the core of the application.
  2. Persistence Layer: This layer is responsible for handling the database operations.
  3. Controller Layer: This layer is responsible for handling the incoming requests and sending the response back to the client.

Read more…

Designing a Chat Application

Overview and Requirements

We are going to design a chat application that will allow users to send messages to each other. The chat application should support the following requirements:

  1. One to One Chat: Users should be able to send messages to other users.
  2. Group Chat: Users should be able to create groups and send messages to all group members.
  3. Push Notifications: Users should be able to receive push notifications for new messages.
  4. Online Status: Users should be able to see the online status of other users.
  5. Read Receipts: Users should be able to see if their messages have been read by the recipients.

Read more…

Concurrent Programming Problems

Introduction

This blog page is dedicated to concurrent programming problems. The problems are taken from various sources and solved in Java. I will expain the various programming constructs used to solve problems.

Read more…

Journey to MLOps

Data Engineering vs Backend

When I started my career in software engineering, the first team that I worked with was a Data Analytics Team.

The primary product of that team was to provide a semantic unified layer across multiple data sources in the company. This enabled business analysts to have a drag and drop interface, report scheduling capabilites, and custom made fields for all their business queries.

However we were not responsible for the actual data. The part where data is loaded into the data lake was the responsibility of respective teams. We have a architecture that composed of the following.

  • UI / Middleware
  • Query Semantic Parsing
  • Data Fetch
  • Post Fetch Processing

Read more…

How To Solve

Introduction

This is a slight overview on how you should approach a problem based on my experience. And what are the things you should be ready be with if you are unable to solve it.

Some of Them are from the based on the book and additionally added by me.

Read more…

Rate Limiter

Rate Limiter: The Why?

Rate Limiters are fundamental tools in order to facilitate security measures against DDoS attacks. It also helps in managing cost, regulate QPS and render deterministic expections on the usage of our system. Almost all the services you know today have a Rate Limiter Service in place, which is also offered within your Cloud Subscription if you are hosting behind a Cloud Server.

Read more…

Am I back?

Am I back?

I am back to blogging after a long time. I have been busy with my work and a long time dissimilarity of leaving the world of linux to find other systems that the world. So I started to learn System Design in order to facilitate myself with all the other ways. I want to revive this blog as I no longer wonder about math support to be added.

How to revive this blog?

Admittedly, it was a big of discovery to find out how this blog actually worked. But to make sure that I can have it up and running again. Here is a bit of heads up on how to achieve that quick.

Read more…

Emacs Blogging

How I finally made a blog with org-mode.

When I started off with development, one of the first tasks that you are typically supposed to do is make a blog. Me, a first year undergraduate completely new to the world of programming was handed a bunch of .js files with the expectation to build a blog out of it.

Read more…