Node’s Thomas Watson on Open Source: It’s a Great Feeling When a Stranger Wants to Make Your Code Better

We talked to Thomas Watson, Node.js core member, open source hacker, and a developer at Elastic.

JSNation
6 min readJun 3, 2019

--

Thomas Watson is a web developer, public speaker, open source hacker and contributor, who works on APM at Elastic, the company behind Elasticsearch, Kibana, and Logstash. Thomas had always been passionate about Node.js and, thus, quickly became a Node.js core contributor. In this interview with JSNation, he talks about open source, burnout, and why he chose Node among other technologies. Thomas is coming to Amsterdam to give a talk at JSNation Conference, June 6–8, 2019.

Hello Thomas, and welcome to the interview with JS Nation! Please, introduce yourself.

Hi, I’m a computer programmer from Copenhagen, Denmark and I’m really excited to join you all in Amsterdam for JSNation. I work for Elastic, the company behind Elasticsearch, Kibana, and Logstash where I work on Node.js instrumentation.

Tell us the story behind your involvement in open source?

I first got involved a little bit in open source back when I was a Ruby programmer about 8 years ago, where I contributed to a few Ruby projects. But it wasn’t until I was introduced to Node.js by a friend, who had already released a few npm packages himself, that I really caught the bug.

When I worked on my first Node.js app, I made a habit out of splitting the logic into small single purpose reusable modules wherever possible. Then it was only a small step to write a good README and publish it to npm as open source. Since then, I’ve defaulted all my GitHub repos to being public. Even obscure projects, which probably only I would care about, are public.

Over the years I’ve released several hundred npm packages, and while most are never downloaded by anybody, some have gained a lot of traction with millions of monthly downloads. I found that it’s sometimes hard to know what will be valuable to others, and it’s such a great experience when you get your first PR on a project from a stranger who is using your code and wants to make it better.

Why do you call yourself “open source hacker?” Is there any difference between “open source hacker” and “open source contributor” in your opinion?

When I call myself an “open source hacker”, it’s a bit tongue in cheek. But I think the term does have merit. A lot of my projects are hobby projects, where I’m scratching my own itch. For instance to get data out of a system that doesn’t provide an API by reverse engineering a protocol. You work around it and usually always find a way. And if you share it, hopefully, it will help others. I think looking under the hood, figuring out how things work, and tweaking things and adding new features to suit your needs are the essence of hacking.

How did you become a Node.js Core member and a part of the Node.js Diagnostics Working Group at the OpenJS Foundation? Why is it Node.js rather than any other technology or environment?

When I first saw Node.js I was blown away with how everything was async and evented, and how all I/O was non-blocking. It was such a powerful way to develop applications. But the community was also very young at the time, so it was really easy to get to know everybody. I joined the Diagnostics Working Group because I started to work with Application Performance Monitoring when I joined Opbeat who was later acquired by Elastic.

Developing an APM product on top of Node.js isn’t easy, and a lot of the underlying API’s needed to do it properly is either missing or still in active development. So joining the working group just made sense.

One of the biggest problems in open source is that it’s mostly volunteer-based, and people are busy. So if you ask if you can help, you’ll almost always be met with open arms. This was true back then and is still true today.

Where did you work before you joined Elastic? What do you do at Elastic now?

Back when I started using Node.js, my company shared an office with another startup called Opbeat. They were developing a really neat APM SaaS product, but they didn’t support Node.js, so I created an integration so that I could use their service to monitor our production systems — released as open source, of course.

When I later left my own startup, I joined Opbeat full time to work on the Node.js integration that I had written. Later Opbeat joined forces with Elastic to create Elastic APM — an open source APM solution that runs on top of the Elastic stack. So I’ve been working on the same code base first as an independent developer, then as an Opbeat employee, and now under Elastic. It’s a pretty good story about how open source can help your career I think.

What projects are you currently involved in? On your site, you feature some of the projects, why do you decide to feature exactly those?

The projects I feature on my website are the ones I’m most proud of. But I’ve had to take a step back from my own personal projects for a while because of time constraints and burnout — something that, unfortunately, plague a lot of open source developers these days. I hope to get more time soon to maintain the projects soon. Currently, I’m mainly active in the Elastic APM Node.js Agent project and in the Node.js Diagnostics Working Group.

You are a frequent conference speaker. What do you usually talk about? What’s your favorite or last talk?

I usually talk about Node.js diagnostics and performance related topics. But my favorite last talk was at DotJS in Paris, where I released the AirplaneJS project.

In your opinion, what’s the most controversial thing in Node.js?

There’s quite a few to choose from. Promises vs callbacks, ESM vs CommonJS, take your pick. But there’s a lot of good people working on reaching consensus. These things just take time.

Do you have any hobbies? What do you do in your free time?

To be honest, most of my time is divided between work, open source, and travel. But I really enjoy running. I’m a member of a local running club where I live and go running several times a week if I’m not traveling.

Are you excited about the upcoming JSNation conference in Amsterdam this year? What are you going to talk about?

I’ve heard a lot of good things about JSNation, but this is my first time attending the conference and I really look forward to it. Most of my work at Elastic and in the OpenJS Foundation evolves around Node.js diagnostics tooling and processes. My talk is about post mortem debugging with llnode, a tool that can inspect core dumps produced by Node.js either because of a crash or generated intentionally at runtime to investigate a memory leak.

The interview was prepared with the assistance of Marina Vorontsova, a copywriter from Soshace.com. Soshace is a hiring platform for web developers: hire a developer or apply for a remote job.

--

--

JSNation

#JavaScript community organizing confs and meetups, gathering 20K+ people online & 1K attendees in-person. #JSNationLive #AmsterdamJS