Lessons learned from running services at scale: 1


Tips for running services at scale with minimal toil

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).

Less work, More Impact : 5 tricks to boost productivity


These are a few strategies I employ to be more efficient at work.

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?

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.

What you didn’t know about 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.

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.

How to build Resilient Software


One of the most challenging aspects of software development is staging changes without breaking the service. Releasing new features always comes with a risk - bugs might be introduced and existing failure points might become more prone to failure.

A framework for shipping high quality software


Software engineers, technical leads and managers all share one goal - shipping high-quality software on time. Ambiguous requirements, strict deadlines and technical debt exert conflicting tugs on a software team's priorities. Software quality has to be great otherwise bugs inundate the team; further slowing down delivery speed.

Faking goto in JavaScript with Labeled Statements


What if I told you JavaScript had a limited form of the infamousย goto statement? Surprised? Read on.

5 Tips for consistently crafting delightful User Experiences


Have you ever wondered why someย applications always look and feel similar? Why for example does Apple have a unified experience across devices? Why are Google products starting to adopt the material experience?

Things to check before releasing your web application


A couple of things to validate before you press the 'go-live' button on that wonderful web application of yours.

Understanding JavaScript Property Descriptors 3


Now that we know the basics, this post covers the JavaScript methods for setting and modifying object property descriptors.

Why I am moving to Angular 2 from AngularJS


If you are thinking of choosing between Angular 1 or Angular 2, I'll say go for Angular 2; it's totally worth it.

How to detect page visibility in web applications


You are building a web application and need the application to pauseย whenever the user stops interacting with the page;ย 

How to track errors in JavaScript Web applications


Your wonderful one-of-a-kind web application just had a successful launch and your user base is rapidly growing. To keep your customers satisfied, you have to know what issues they face and address those as fast as possible.

Code complete != ship ready


I used to work for a team whereย whenever an engineer said he was done, the next question would invariably be are you 'done done'?

10 years of programming: Lessons Learnt


Looking back, I have learnt a couple of lessons the hard way and wanted to share some of these so that other engineers know what to avoid.

How function spies work in JavaScript


If you write unit tests, then you likelyย use a testing framework and might have come across spies. If you don't write unit tests, please take a quick pause and promise yourself to always write tests.

Chrome dev tools deep dive : Network


Tutorial on the chrome dev tools focusing on the network tab

Chrome dev tools deep dive : Sources


Deep dive into features of the Sources tool in Chrome

Chrome dev tools deep dive : Console


The console is one of favorite places. The REPL environment is a quick way to validate JavaScript expressions. However, there is a lot more it can do. Read on. 1. $0 - $4 selectors The last inspected element is always available in the console as $0. $1 points to the next most-recently element and so … Continue reading Chrome dev tools deep dive : Console