Practical Design Patterns Part 1: The Command Pattern

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

Advertisements

A plea for lean software: 6 Lessons I learned to help keep software simple

  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

Acceptance Tests: The Best Medium of Communication Between Stakeholders (if done right)

  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)

Creating Outbound Call Warm Transfer Using Twilio In Python and Django

Have you ever been connected to a call where it was transferred to a third person for further assistance? Well, that's call transferring. Warm transfer of calls, in contrast to cold transfer, doesn't disconnect the call in between and thus gives the customers a  more seamless experience. Recently at work, I was building a system … Continue reading Creating Outbound Call Warm Transfer Using Twilio In Python and Django

Tracking Metrics to Surface and Solve Problems: Metric Tracking Practices I’ve Learned So Far

It is a nice pleasant evening, you are sipping coffee and reviewing your code one final time, just so that you can gather enough confidence to hit the deploy button. But a fact of life as a software engineer is that things can go wrong. Small changes may result in unexpected outcomes, including outages, errors … Continue reading Tracking Metrics to Surface and Solve Problems: Metric Tracking Practices I’ve Learned So Far

Philosophy Behind The Offensive Programming

Recently I was listening to a podcast and there was this really smart guy Piwai talking about something that instantly captivated by attention. That was the coining of the term Offensive Programming. What is offensive programming? Well, you can find the literature on  Wikipedia and also I am not the best person to explain that. So … Continue reading Philosophy Behind The Offensive Programming