Sometimes I mentor developers. I always tell them this one thing they should aim for: find something you love and build a project around it with the technologies you want to master. Practise what you preach, so that is exactly what I did myself! This is the story of how my pet project got out of hand and needed to be migrated to the cloud.

I love Magic. No, not the kind where you saw someone in half and put them back together, but the trading card game “Magic: the Gathering”. A lot of people know or are familiar with…


Recently GitHub released a new feature allowing users to show a custom README on their profile page. This is a feature that GitHub was missing in community building and user exposure: to customise your profile a bit to show who you are, what you can do, and why you are awesome.

Photo by dole777: https://unsplash.com/@dole777

There are some limitations though. As you may be aware GitHub READMEs only allow Markdown and some basic HTML. This hasn’t stopped people from trying to do something creative with it.

I took a look around how people have made awesome stuff, and decided to combine a few of…


Javascript has made enormous strides the past few years and functions like find, findIndex, map, filter, and reduce are now standard. Before these innovations, when you had to work through collections or objects, the tools needed to make code cleaner and more functional were always easy to find in Lodash. Even though I think it definitely used to fulfil a useful purpose, I feel it is nowadays a bad practise to use.

I used to work for a company that gave potential new colleagues a small coding assessment to take home. I was responsible for grading the Angular assessments and…


For a client we needed a dialog that contains some complex user experience flows. It basically boiled down to a wizard with multiple paths. This meant that we didn’t want the entire dialog in one huge component, but rather use separate ones to keep our components as small, atomic, reusable, and maintainable as possible. Since the application uses Angular Material, it made sense to also use their dialogs to stay within the same UI guidelines.

Since I love developing, and am always looking forward to the next Angular release, I sometimes get lost in solutions, because I want to utilize…


The past two decades the internet has taken enormous leaps in what we can do, and what users want to be able to do. The technologies involved in this have evolved just as rapidly. With the increasing available bandwidth we were able to push more data over the wire than we were used to, opening many doors. But this doesn’t mean we should no longer care about bandwidth and thus performance of our web applications.

Loading takes time

Not only our applications have gotten larger, but our images as well. We want higher resolutions, and better looking images, but this also leads to…


During ng-conf in May 2019, the Angular team announced that they would be changing how Angular works under-the-hood: Ivy. Ivy is their new internal view rendering engine. It is the engine that uses your components and templates, and in the end, turns all the logic into instructions that run in the browser when you ship your finished Angular application. These instructions update the DOM, update the page, and so on.

Angular 9 was supposed to have a stable release in October/November, but was postponed because replacing the rendering engine is no easy task. But the wait is over, and Angular…


Not too long ago, I wrote an article Your Angular app as Progressive Web App where I explained why Progressive Web Apps are the future of web applications. In that article I also briefly touched the Angular SwPush and SwUpdate APIs, where I also mentioned I might write an additional article to go deeper into that subject. A promise is a promise, so here it is! I’ll go a bit deeper into the possibilities these two APIs have to offer and show some examples. …


In your Angular components you’re able to specify a component’s ViewEncapsulation. It defines template and style encapsulation options available for components, and thus specifies the strategy on how styles are applied to a component. By default, styles are appended to the document’s <head> and is encapsulation emulated, but there are other options as well.

Shadow DOM

Before we can get into the ViewEncapsulation options, we first have to know about the Shadow DOM. In an HTML document all styles and elements are in one global scope and can be accessed through a querySelector. The selector will always find the object, no matter…


A Progressive Web App (or PWA) is a web application that provides a set of capabilities to give web sites an app-like experience. Personally, I always feel too many websites create native apps that provide next to no (or even less) additional functionality to their website except being able to have a shortcut. This is where PWAs can play a crucial role. Since Chrome 72 for Android, the Trusted Web Activity feature was shipped, meaning PWAs can be distributed in the Google Play Store, showing that this is an important development.

When building websites, developers have to face several challenges…

Arjen Brandenburgh

Fullstack Team Lead from the Netherlands @ Techspire

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