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
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?
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
Introduction Most software these days support undoing/redoing actions. For example, text editors support undoing what we have written, file managers support undoing file creation/deletion etc. It's a good UX practice to make software forgiving and allow users to undo their actions. I always wondered how was this implemented? On a critical analysis, it seems as … Continue reading Practical Design Patterns Part 1: The Command Pattern
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)
Time flies. Recently I had completed one year as a full-time employee at my current employer Squad. A year has passed, and I decided it was time to revisit instances, memories, and experiences and to recollect what I had learned as a professional in this past year. It was also a wake-up call to reassess and … Continue reading 6 Lessons On Work Ethic I Learned In One Year Of Professional Career