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
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.
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.
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.
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.
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.
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?
A couple of things to validate before you press the 'go-live' button on that wonderful web application of yours.
If you are thinking of choosing between Angular 1 or Angular 2, I'll say go for Angular 2; it's totally worth it.
You are building a web application and need the application to pause whenever the user stops interacting with the page;
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.
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'?
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.
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.
Tutorial on the chrome dev tools focusing on the network tab
Deep dive into features of the Sources tool in Chrome
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
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.
How to get consistent print output across a range of browsers and their never-ending stream of subtle nuances.
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)?
Programmers have to love their craft and put their best into making it stand out.
We all have to track variables;while debugging; generally the easier it is to monitor changes, the faster bugs can be detected and fixed. Web developer tools expose various methods for tracking changes in variable values. There are a couple of drawbacks e.g. non-uniform support across platforms) but again, half-bread is better than none :).