Introduction The world of databases is very interesting. To build a loveable product, a core infrastructure piece that's needed is the data persistence layer. I find this data persistence layer to be like a tip of the iceberg, the get and the put calls have so much going under the hood that it's mind blowing … Continue reading Trying to Wrap My Head Around The Dynamo Storage System: A Deep Dive
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
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
Preface Recently, I was browsing the codebase of my company and saw that it has three versions of dashboards for an analytics page in it. I am pretty sure that customers don't need that. This sparked something in my naive brain and I started exploring the internet for related ideas. That's when I found … Continue reading A plea for lean software: 6 Lessons I learned to help keep software simple
It's a nice pleasant morning, and you have just entered the office. You greet your friends and grab a cup of coffee. You check your email and there is a new story assigned to you. "As a customer, I get my usage logs backed up" This is where is fun begins. Communicating Requirements A … Continue reading Acceptance Tests: The Best Medium of Communication Between Stakeholders (if done right)
In the technology value stream, work typically flows from Development to Operations, steps consisting of functional areas between our business and our customers. As stated in the lean principles developed by Toyota, we should optimize to get a single-piece fast and smooth flow for our releases. We increase flow by: Making work visible, Reducing batch … Continue reading Devops and The Principle Of Flow
At Squad, we strive to build awesome products to solve customer(internal and external) needs. As a product engineer, paramount part of your job is to design and build products. Dig deep into the root cause of the problems, design solutions and implement them as the end product. Over the course of my journey so … Continue reading 8 System Design Principles I learned After Doing It Wrong More than 50 Times!