Dependency Injection: Taming the modules that make up our software.

Introduction All software projects, (even relatively smaller ones) are the result of aggregation of several components and modules. As these software projects grow and evolve, the way we connect these components becomes a win or lose factor.I believe, that the way we orchestrate these components decides if the software will evolve as fast as the … Continue reading Dependency Injection: Taming the modules that make up our software.

Advertisements
Featured

A Tale on Concatenated Indexes: Master Roshi and Goku’s fireside chat

Indexes make our queries run as fast as a cheetah! Right Practice. Right Results This post is part of newsletter that I run "Scamming the Coding Interview", which is geared towards continuous practice on concepts to ace the engineering interviews. Subscribe Once upon a time there was a master named Roshi whose relational database used … Continue reading A Tale on Concatenated Indexes: Master Roshi and Goku’s fireside chat

Introduction to LSM Trees: May the logs be with you

LSM Trees overview This post is a part of a newsletter that I run: “Scamming The Coding Interview“, which is geared towards helping people ACE their coding interviews. We send a coding question on weekdays along with a system design article like this one on weekends. Do subscribe If you find this article valuable. Introduction What will … Continue reading Introduction to LSM Trees: May the logs be with you

Architecting for Scale by Lee Atchison: Reading Experience

I recently read the book Architecting for Scale by Lee Atchison. The book contains a high-level overview of the major concepts that revolve around the topic of building highly-available and scalable apps.I felt the book to be more suited as a light read for people already familiar with these concepts rather than being an informative … Continue reading Architecting for Scale by Lee Atchison: Reading Experience

How To Objectively Reason About Systems: Correctness Properties Of A System

This post is a part of a newsletter that I run: "Scamming The Coding Interview", which is geared towards helping people ACE their coding interviews. We send a coding question on weekdays along with a system design article like this one on weekends. Do subscribe If you find this article valuable. When a new system … Continue reading How To Objectively Reason About Systems: Correctness Properties Of A System

Basics of Database Partitioning and Partition Strategies

You are a part of a startup which has recently scaled to reach a huge number of users. This means that the increased number of users are going to generate a huge amount of data that you have to store and manage.It soon becomes evident that managing a huge dataset is a major hurdle to … Continue reading Basics of Database Partitioning and Partition Strategies

Tackling Lost Updates Problem In Database Using Stricter Transaction Isolation Level

Introduction Databases are made for scale and are a highly concurrent system. Thus it is normal for them to expect multiple concurrent connections. Also, in most situations, we'll want our database to be the source of truth and always contain consistent data. There are many concurrency related phenomena that can occur in a database when … Continue reading Tackling Lost Updates Problem In Database Using Stricter Transaction Isolation Level