Failure culture: Beyond blaming

Posted on September 30, 2018 full post comments

It’s inevitable that people make mistakes. Often, the impact of these mistakes are high - sometimes it breaks other team’s code, introduces regressions which can lurk around for a long time. On large projects, especially where a good chunk of legacy is in play, mistakes happen more often and are way more harder to find.

You can also make a mistake by having the wrong idea; you stick to it, pour more and more of your (and others’) energy into it, and it turns out not being a solution to your problem.

At the end of the day, you will fail as everyone else, and you have to be able to make that failure useful, so it can contribute to your next success.

First-class Functions in JavaScript

Posted on February 19, 2018 full post comments

The notion of first-class functions can be somewhat puzzling for those who are just starting with JavaScript, especially if they come from a Java background (as Java has only introduced them in version 8).

Understanding first-class functions is crucial in the JavaScript world as they are unavoidable when dealing with event handlers, non-blocking (asynchronous) I/O and they are the fundamental to functional programming.

Discovering Nix: Provisioning a static webserver with NixOps

Posted on December 26, 2017 full post comments

A few weeks ago I decided to pick up Nix. It’s a lovely concept: describe environments / Linux systems in an immutable, functional manner.

Although Docker solves the immutability part, the idea never really resonated with me: I find it a crude, but effective solution to put an immutable layer over our mutable OSs.

Nix has a different approach: instead of making our existing systems immutable, it tackles the problem on a lower level: it aims to make the environment immutable from the ground up with a package manager called Nix, and an OS built around it called NixOS. And with NixOps, you can manage instances running NixOS.

In this article, I will put together a simple static webserver running Nginx using NixOps.