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

Why systems fail and what can be done about it?

A recent team meeting at Squad touched the topic of "system robustness". Clients and business operations want their systems to work, which is a very reasonable expectation. That's what we engineers are paid for after all. Everybody gave their input over what a robust system means to them. The responses made two points very clear:1. … Continue reading Why systems fail and what can be done about it?