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