How to run better stand-ups

There is a high chance that you attend or have attended an inefficiently-run stand-up. I have seen various stand-up styles over the years. Sadly, most of the roughly 2000 stand-ups I attended were unproductive. Mildly put, most were status reports for some manager or higher up.

Doers, not Talkers

Common refrains This problem is all because of team ABC... I know the problem very well, it is because of XYZ condition but ... I did not do that, John Doe caused it! Why isn't leadership changing anything? I bet you've heard these before. Is there always a reason, an excuse or some other party to point … Continue reading Doers, not Talkers

Understanding JavaScript Array methods (2): slice

An idiomatic way to create shallow copies of arrays uses slice. This post dives into the slice method and describes a few more tips and tricks. At the end of this post you should know the output of [1,2,3].slice(-3,-1). Slice The full method signature is arr.slice(start, end). Start and end are optional parameters defaulting to 0 and arr.length respectively. … Continue reading Understanding JavaScript Array methods (2): slice

Results over Actions

A lot of time, I see engineers promising to boil the Pacific Ocean while climbing Kilimanjaro. I love optimistic engineers however there are also physical limits to what is possible. Another common refrain is "I worked so hard on x but I don't know what happened". Whenever I poke deeper, it's nearly always a case … Continue reading Results over Actions

The Single Question to Ask before starting anything

What does success look like? That is the question I like to ask nowadays at the beginning of anything: a sprint, a project or a book. It is a conscious decision to clearly and unambiguously articulate the end goal. That way, I can align my efforts for maximum leverage. Once the goal is obvious, all … Continue reading The Single Question to Ask before starting anything

Five challenges of engineering teams

1. Clarity What does success mean? For Leads and Managers Are you working on the right problems? Would your VP/Director/CEO be interested in your work? If the answer to any of those questions is no, then why are you doing all that work? If yes, great job! More questions!! What are the secondary and tertiary … Continue reading Five challenges of engineering teams

Chasing fads or solving problems?

Sample chat between two engineers Engineer 1: We should use Hadoop/Kubernetes/Cassandra/insert-random-cool-tech. Engineer 2: Why? Engineer 1: Well, all the cool guys rave about it: latest-fad-tech is the next big thing on the tech horizon. All the hot startups are using it too! Engineer 2: So what will we use it for? Engineer 1: Well, we … Continue reading Chasing fads or solving problems?

How to backup files to Azure Blob Storage from VMs using managed identities

A couple of months ago, I needed to create backups of a database dump on one of my VMs. I initially thought it would be a difficult task but was pleasantly surprised to find it easier than I thought. Despite the excellent documentation; I still needed to do some research to get my automated pipeline … Continue reading How to backup files to Azure Blob Storage from VMs using managed identities

Not all Technical debt is bad

Some engineers believe they have to go to great lengths to eliminate every single piece of technical debt in their codebase. This focus on perfection ignores the cost of fixing debt, the risk of introducing new bugs and contagion (the chances of debt spreading). As is with real-life decisions; not everything is black and white; … Continue reading Not all Technical debt is bad

Less work, More Impact : 5 tricks to boost productivity

1. Automate Automate toil away! Everyone has daily tasks that could be automated. Automating mundane tasks leads to immediate time savings, skill acquisition and huge cumulative benefits in the long run. For example, a 10-minute task costs about 2600 minutes a year (assuming 260 working days). Automating the task to run in 5 minutes leads … Continue reading Less work, More Impact : 5 tricks to boost productivity

Less Work, More Impact

Habits die hard It is hard to focus in a fast-paced work environment: there can be live-site incidents out of the blue; bugs to fix and meetings to attend. I have always struggled with coping with incessant demands and distractions; the urge to drop whatever I am doing and hop on the next fire is hard … Continue reading Less Work, More Impact

Do you want to sleep well at night?

Do you want to sleep well at night? That was the question a senior engineer asked me in 2015. I had sought his feedback on some elegant code I wrote. While I was sure the code covered the scenario; I could not prove it would cover all possible scenarios all the time. That was a grey … Continue reading Do you want to sleep well at night?

Essential Pillars for running a service at scale

Software services need a solid foundation that guarantees near 100% uptime. The work needed to establish such a base is termed devops, infrastructure or platform. About 18 months ago, my team got a new charter: launching a brand new service. I was involved in the setup of new platform resources as part of that effort. … Continue reading Essential Pillars for running a service at scale

Guaranteeing software behaviour

My foremost goal while building software is to build stable self-healing systems with deterministic behaviour. I want to ensure my code continues to work even when unexpected events occur. In the event of unknown unknowns, the expectation is a graceful degradation in the worst case. This requirement is even more important when implementing high-risk projects. … Continue reading Guaranteeing software behaviour

What you didn’t know about JSON.parse

Now that you know some more about JSON.stringify; let's dive into its complement: JSON.parse. 1. JSON.Parse The JSON parse function takes in a string (invalid JSON will cause a SyntaxError exception). If parsing succeeds, JSON.parse returns the corresponding value or object. 2. The reviver function JSON.parse accepts an optional reviver function. This reviver function, if specified, allows you … Continue reading What you didn’t know about JSON.parse

Nope, You don’t need lodash for that

I recently had to reduce the size of an Angular Web app for performance reasons. A quick run through the webpack bundle analyzer identified MomentJS and Lodash as the main culprits. Consequently, I had to eliminate both libraries and implement replacements in pure ES6. The upside however is that it was easier than I thought! Thus, … Continue reading Nope, You don’t need lodash for that