Windows Operating System Metrics: CPU


This is a screenshot I took of my CPU metrics on my computer. This post provides a deep dive into the information contained in the Task Manager panel. The Graph The graph shows a sliding window plot of CPU utilization against time. Utilization: shows how much 'work' is being done by the processor. This includes … Continue reading Windows Operating System Metrics: CPU

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

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

Three high-impact non-coding tasks for software engineers


There is more to software development than writing code. this post describes three of the most oft-repeated tasks I have been asked over the years. These are not strictly programming tasks but help magnify the impact. 1. Documentation As a grad student in 2012/2013, I set up a continuous delivery pipeline on AWS for my … Continue reading Three high-impact non-coding tasks for software engineers

Simple, Complicated and Complex Systems


A simple system can be understood by studying each of its components; similarly, complicated systems can be understood by studying the intricate details of components. It becomes possible to model complicated systems by reducing them to fundamental principles. Complex systems cannot be reduced down to a basic set of rules as the whole is larger than the sum of parts. Inference is only by observing the entire system as a whole.

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