There are many statistics going around about how fast your website has to load. Some stating that if your page does not load under 2 seconds 50% of your potential visitors will give up and leave. That sounds a little weird but my take on this is that if it takes 2 seconds for you then it takes much longer for mobile users on mobile data or people on a slow connection or slow PC. …

As a web developer, you will likely sooner or later be required to use node.js. Whether it is directly required as a server solution or if it’s required as a supporting tool for your web development it is a very good idea to know what node.js is, how it differs from running javascript in the browser and what exactly it can do.

The big picture

First and foremost, node.js is a javascript runtime based on chrome’s javascript engine called V8. In simple terms, people extracted the javascript engine from chrome and made it able to run standalone. …

Javascript has always had a bad reputation of being slow or the root cause of all slowness in websites. The truth is that javascript has become super fast over the years thanks to the browser wars. It is by no metric a slow language. But that does not mean that it can never make a website slow. The post will focus on how to diagnose javascript runtime performance not page load times or other metrics by which a page can be slow.

Javascript performance caveats

One big thing with javascript performance is that something that performs well in one browser may perform terribly…

If you ever had the pleasure of writing a single page application or other non trivial web application you no doubt asked yourself at some point, does my app leak memory? The answer is almost guaranteed to be yes. It’s easy to forget to remove an event subscription and ending up retaining objects. Most of the time it’s not a big deal, what’s a few more KB of ram nowadays?

A few kb here and there will sometimes add up into several MB or even hundreds of MB and then the infamous “Aw, snap!” screen will show up. …

It’s easy nowadays on the web to find tricks and guides on debugging javascript. But do you know when to apply which technique? It’s not enough to know what tricks and APIs are out there, you have to know what situations each tool is best suited for. In this a series of posts I will show you some examples of difficult issues (performance, memory leaks, race conditions, bugs) and how one might approach the debugging process.

Debugging deeply recursive algorithms

Let’s say you have a tree of data that you want to iterate over and aggregate data from.

It could look something like this:

Joao Santos

Webdeveloper, interviewer and author of Aurum.js

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