Do you want to sleep well at night?
Category: Software Development
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
Chrome dev tools deep dive : Elements
1. Search CTRL + F allows you to search for strings in the DOM but you can also search using CSS selectors and XPath expressions. 2. Color picker Ever wanted to figure out what colours exist on a web page? Or prefer some other colour format? Here comes the color picker: Shift click on the color … Continue reading Chrome dev tools deep dive : Elements
Quick estimation tips for engineers
Engineers need to estimate system performance and simulate real-life scenarios. For most engineering fields, there are rich banks of proven theories and mathematical relations to rely upon. Unfortunately, software engineering - the new kid on the block - has a few rigorous rules, most times we rely on heuristics and handed-down wisdom.
Tips for printing from web applications
How to get consistent print output across a range of browsers and their never-ending stream of subtle nuances.
What is Semantic Versioning (SemVer)?
Software Versioning Software versioning has always been a problem for software developers, release managers and consumers since time immemorial. For developers, the challenge lies in releasing new breaking changes while simultaneously minimizing consumer upgrade pains. On the flip side; consumers, when they finally decide to upgrade to new-shiny-release-10000, want to be sure they are not buying a one-way-ticket … Continue reading What is Semantic Versioning (SemVer)?
Code is Poetry : 5 steps to bulletproof code
Programmers have to love their craft and put their best into making it stand out.