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
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
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?
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
Organizations which designs systems are constrained to produce designs which are copies of the communication structure of the organization. In other words, how we organize our teams has a powerful effect on the software we produce, as well as our resulting architectural and production outcomes. Thus, in order to get a fast flow of work from … Continue reading Organization Archetypes And The Concept Of Market-Oriented “Solver Teams”
One of the most important thing that I like about pair programming with other awesome engineers is you get to see their workflows. How they get things done? How they get find and make their way around tools, terminal, and editors? After witnessing and getting awestruck by many such experiences I realized that having an … Continue reading 7 Tips On Making Your Engineering Workflow Faster
It's close to midnight and you are about to wrap your day off. Suddenly you get a pager-duty to resolve a critical bug that's failing some of the automated reporting emails. You go on to check the logs in the log management tool. This is not the ideal time to find out that logs are not … Continue reading Fail Fast: Hone Your Ability to Recover and Respond Quickly
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!
Consider, you are a rockstar engineer and you are given a task by your favorite person, your project manager, to show some new fields in the dashboard. As usual, you are asked to estimate it as soon as possible. You think that well, seems like a quickie and you are tempted to estimate it a … Continue reading Estimation Peril: How To Estimate Software Projects Effectively(or How Not To Lie)
I have started reading the book Clean Code by Robert C. Martin, which is considered to be a industry standard for writing maintainable and elegant code. Because this book is such a heavy read, and each chapter is full of content and a knowledge bank in itself, for personal reference I've decided to summarise each chapter in … Continue reading Clean Code Chapter 1&2: Clean Code & Meaningful names