Lance Ball

I am a Principal Software Engineer at Red Hat and the lead engineer for the Node.js activities within Red Hat Middleware and a Node.js core contributor. I speak at conferences around the world, and enjoy writing code in lots of different languages.

Areas of Expertise

Javascript, Node.js

Recent Posts

Node.js for Red Hat OpenShift Application Runtimes wins a Devie award

Node.js for Red Hat OpenShift Application Runtimes wins a Devie award

For the past year and a half or so, Red Hat Middleware has provided a supported Node.js runtime on OpenShift as part of Red Hat OpenShift Application Runtimes (RHOAR). Our goal has been to provide rapid releases within a week or two of the upstream Node.js core project, booster applications to get developers up and running quickly, and, of course, provide world-class service and support for customers.

This past week at the DeveloperWeek 2019 conference in San Francisco, that focus and dedication paid off as Red Hat was awarded a “Devie” award in the category of “Code Frameworks and Libraries.” I couldn’t have been more thrilled to accept the award on behalf of our team.

Continue reading “Node.js for Red Hat OpenShift Application Runtimes wins a Devie award”

Monitoring Node.js Applications on OpenShift with Prometheus

Monitoring Node.js Applications on OpenShift with Prometheus

Observability is Key

One of the great things about Node.js is how well it performs in a container. Its fast start up time, and relatively small size make it a favorite for microservice applications on OpenShift. But with this shift to containerized deployments comes some complexity. As a result, monitoring Node.js applications can be difficult. At times it seems as though the performance and behavior of our applications become opaque to us. So what can we do to find and address issues in our services before they become a problem? We need to enhance observability by monitoring the state of our services.


Instrumentation of our applications is one way to increase observability. Therefore, in this article, I will demonstrate the instrumentation of a Node.js application using Prometheus.

Continue reading “Monitoring Node.js Applications on OpenShift with Prometheus”


Data-hiding in ES6 (JavaScript) from an Object Oriented perspective

For a long time during my early career, I was an OO — object oriented — developer. I genuflected regularly in front of the altar of data encapsulation, object hierarchies and static typing. And the syntax. Oh the syntax!

But I have changed, of course, and so much of the dogma and ceremony that I participated in during those times has come to seem a lot less important than it was 20 years ago. Languages, and developers evolve. But that doesn’t mean there aren’t some really good lessons to learn.

Take, for instance, data encapsulation.

When I first began to seriously look at JavaScript as a language, data encapsulation – or the lack of it – was one of the things that really stuck in my old OO craw. While I loved the simplicity of the {} data structure, I hated the fact that most properties I chose to add to it were typically just there – sticking out for everyone to see and perhaps corrupt. The language didn’t make it very easy to keep this data protected. How do we handle this?

Continue reading “Data-hiding in ES6 (JavaScript) from an Object Oriented perspective”