Sign in


Who is this FAQ for?

This is for Java and .NET developers wondering whether learning JavaScript on the back-end (i.e. Node.js) is worthwhile for their career.

Why should I trust this FAQ?

The author is someone who spent the first ten years of his career programming in C++, and the second ten years programming in JavaScript. He considers it the best career bet he made. Others have made the same switch.

How do I get started?

First, download and install Node:

Node is very simply a back-end runtime environment for JavaScript. It was created by Ryan Dahl in 2009. Under the hood, Node.js executes JavaScript using the V8 JavaScript engine, the same engine that powers…

It’s been a while since I’ve written a basic tutorial, but when I recently discovered that many developers are unaware of the true power of the CSS Grid Layout, I thought of doing a quick write-up.

Like many developers, you may be relying on third party grid systems such as the Bootstrap grid system, rolling your own using flexbox, divs and spans, or God forbid, HTML tables. …

Anatol Rapoport. Image: Wiley Online Library

It’s both easy and tempting to “demolish” an opponents viewpoint, especially when you can readily see weaknesses in their arguments. Even more so if you don’t like them personally. But if the goal of the debate is to win the other person over (rather than declare victory to an audience), then defeating an opponent in this manner can actually work against you.

It was while reading Daniel Dennett’s Intuition Pumps and Other Tools for Thinking that I first came across Rapoport’s Rules of Argument:

  1. You should attempt to re-express your target’s position so clearly, vividly, and fairly that your target…

Apollo 13 Mission Control, moments before the accident. Photo Credit: NASA

Two days into its mission to the Moon, both oxygen tanks onboard the Apollo 13 Service Module exploded. Without those oxygen tanks there was no way for the spacecraft to generate power or for the astronauts to breathe. There was oxygen over at the Lunar Module (LM), but it was not built for three astronauts and was certainly not designed for the sort of orbital maneuvering required to bring the crew back home. It was an insurmountable engineering challenge that would have normally taken months to solve. And yet, by the time Apollo 13 looped around the moon, the engineers…

The Creation of Adam — Michelangelo

I’ve been asked (and have asked) this question many times in the past. I’ve received (and given) various different answers at different points in time, none of which I have found satisfactory.

But recently, after working with two teams that for once, seem to “get it” (if you’re wondering “get what?”, please read this), I’ve boiled the answer down to this:

An agile team should be given as much autonomy as possible without compromising on the following:

  1. The team must meet their objectives and key results.
  2. The team must produce work that can be maintained by future teams.
  3. The team…

The Member’s Lounge at The Hatch, where I occasionally come to clear my head.

It was Bertrand Russell who said:

“Work is of two kinds: first, altering the position of matter at or near the earth’s surface relatively to other such matter; second, telling other people to do so.”

He went on to say that the first kind is unpleasant and ill-paid while the second is pleasant and highly paid. Having recently left a Fortune 100 corporation to scratch a startup itch, I’m tempted to disagree with Mr. Russell’s assessment.

I’ve been at the new job for a month now. I thought I’d miss my comfortable corner office. I thought I’d miss having various…

The common area of our new digs at The Hatch

TL;DR; I’m looking for a select few, high caliber software engineers to join me. If you think you’re it, drop me a line. Let’s chat.

Some of you may already know the story about how I gave up a comfortable, high paying job in the financial trading systems industry with ten years of C++ experience, and basically bet my career on JavaScript.

After a painful (and financially punishing) two-year apprenticeship/sabbatical to master everything about the web technology stack, I applied to join a relatively small startup. Again, I gave up two higher-paying and more “prestigious” opportunities to do so…

A Rube Goldberg Machine (credit:

Consider a (somewhat dramatized) progression of front end technologies from circa 1999 to 2020:

What they said: “Web apps will save us”

What they meant: Native desktops apps are getting harder and harder to develop and deploy on thousands of different machines running several different operating systems. HTML and JavaScript based apps served from the cloud will solve this.​

What they said: “jQuery will save us”

What they meant: JavaScript standards have not yet been uniformly adopted by all mainstream browsers. The jQuery library currently handles those browser quirks in a manner that is transparent to developers.​

What they said…

A Colossus Mark 2 computer, 1943. The National Archives (UK)

While recently attempting to put together an engineering process, and do so in a manner that engineers will follow it willingly and with comprehension (rather than grudgingly, or worse yet, mechanically), I was reminded of the peculiar way in which the famous Agile Manifesto was structured: four values, twelve principles aimed at achieving those values, and a conspicuous absence of anything resembling a prescribed process. So inspired, I set out to develop a set of values and principles that I felt was appropriate for the project at hand, and as a by-product, wrote this:

What is the most important thing?

“The most important property of a…

Abstract. Flux [1], while being a widely used architecture for applications built on the React UI component library, has demonstrated only limited success in battling the traditional complexities involved in front-end application development. Here we briefly look at some of the reasons for this, and propose an alternative event-driven MVVM (model-view-view-model) architecture.

1. Problems with Flux

For the purposes of this paper, the reader may consider the popular Redux [2] library as a Flux variant. While Flux (and Redux) makes specific UI workflows easier to reason about, as the application grows larger the code bases become increasingly difficult to manage. …


Designing and developing software for 20 years. Ex London Stock Exchange Group, Ex Sysco. Currently leading engineering at :Different. Views personal.

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