Photo by David Troeger on Unsplash

Does your team use GitHub as their main source version control? Mine does and because of that my email client is constantly populated with GitHub messages. A part of me dies every time I resume work after taking PTO knowing that I’ll be coming back to pages and pages of GitHub notifications. Also, if you happen to work in a distributed team or your team’s work is open source, then there is a high chance you wake up to a page or two of notifications…everyday. …


I recently got a new laptop and a coworker of mine suggested I start automating my setup configurations. The goal is to allow me bootstrap and replicate my configuration preferences on different machines almost instantly. One item leading the todo’s list is the management of dotfiles. Today I will share with you how you can harness the power of the Unix shell to create a script that you can use to manage your dotfiles between different machines.

Dotfiles are used to customize Unix-like systems. The neat thing about them is that they could be modified to suit your own preferences…


In this guide we’ll create a starter application that uses routes with code splitting.

For big web apps, it’s not efficient to put all of your code into a single file. Large apps should only download the JavaScript required to boot the app. We want to be able to break a single file into many fragments. Splitting your code into multiple chunks is what we refer to as “code splitting”. Chunks will be loaded as the user navigates around.

Neutrino, will be used to see how we can achieve code splitting with React, Webpack, and React Router. Neutrino is an…


Arrays are everywhere in JavaScript and with the new spread operators introduced in ECMAScript 6, you can do awesome things with them.

In this post I will show you three useful tricks you can use when programming:

1. Iterating through an empty array

JavaScript arrays are sparse in nature in that there are a lot of holes in them. Try creating an array using the Array’s constructor and you will see what I mean.

> const arr = new Array(4);
[undefined, undefined, undefined, undefined]

You may find that iterating over a sparse array to apply a certain transformation is hard.

> const arr = new Array(4)…


CSS is a messy “language” and its goal is to style the intended elements without introducing side effects to the rest of the code base. If you don’t pay attention to your rules, you will quickly find yourself in a state of clutter, where confusion reigns over and your CSS accidentally matches unwanted elements. This post serves to introduce you to standard guidelines to keep in mind when writing CSS. For the rest of this post, I will refer to the last selector in a rule as the key selector.


While I was working on the Unified Log Viewer, a project initiated by Eli Perelman, I came to realize how a single threaded environment can easily be impacted. For the sake of understanding, an example that explains the meat of the problem without necessarily diving into the specifics of the code will be used.

const update = (response) => {
if (!response) {
return;
}
...
};
xhr.responseType = 'arraybuffer';
xhr.overrideMimeType('text/plain; charset=utf-8');
xhr.addEventListener('progress', () => update(xhr.response));
xhr.addEventListener('load', () => update(xhr.response));

To explain what’s happening in the code above, we have a buffer that fires the progress event whenever new data…


I am on my last week of internship at Mozilla. I started on May 23 and ending on August 12. This summer has been by far my favorite of all time. Interning at Mozilla exposes you to some of the brightest people in the world.

I applied to Mozilla through their website. I was sent an online coding challenge invitation; completed it then did 3 Skype interviews, 2 of which were live coding before getting an official offer. The whole process took around a month.

I arrived in San Francisco on May 21st, 2 days before my first day at…

Hassan Ali

Front-End Engineer at Mozilla

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store