Meet the people who make Node.js: James Snell

Vladimir de Turckheim
Node.js Collection
Published in
7 min readApr 24, 2017

Hey, it’s me again, I am happy to introduce another key person of the Node.js community: James Snell. James kindly accepted to play the interview game with me.

He is often responsible for the brand new features we love so much in the Node.js Core. Therefore, following him on Twitter and Github can be a nice way to get hints about what’s up in the Node.js world!

Hello James, can you introduce yourself?

Absolutely. My name is James Snell, I’m a contributor to Node.js Core, a member of the Core Technical Committee and Technical Steering Committee, and up until a few weeks ago I’d been working on open technologies and open source at IBM for 16 years. On March 20th, however, I started on a new path with nearForm that has me working on Node.js Core full time.

Do you have any hobbies?

Software really is my hobby! It is something that I love that I just happen to get paid to do. Beyond that, I try to put all the electronic devices away for a few days from time to time and just enjoy time with the family.

What is your educational background? How did you become a developer?

I’m one of those developers who has just been doing it for so long it’s really just become hard wired into my brain. I first started learning to code when I was 8 years old — so over 32 years ago now — on my parent’s TRS-80. After that I graduated up to Visual Basic, C, python, perl, Java, and so on. Throughout school, it was just a hobby, however, and I had never really once considered making it a career.

That changed one day a few months after graduating from high school. I was working the graveyard shift as a security dispatcher at a casino in California. A very small part of the job involved making photocopies of all the forms and documents the casino used for a variety of purposes. There were hundreds of such forms and we had this massive drawer full of the hard copy masters. The job was so incredibly boring that I wrote a new automated document management system for them in Excel to pass away the hours. One day the IT director came in and asked for a form and he was surprised that I punched it up on the computer and printed rather than jumping up and running to the copier. A day later I was working for him and soon after that I was writing a new accounting system for the casino.

It wasn’t until after I went to work for IBM that I actually went back to college to earn my Bachelor’s degree in Computer Science.

What is your professional background?

Well, after working for the casino for a while, I worked for a couple of small system integration firms doing relatively simple contract work for a number of years. Through one of those contract engagements, I got involved with an Apache open source project that was working to implement the SOAP protocol.

One thing led to another and within a few months I was working for IBM prototyping emerging Web services technologies. Within IBM, I moved around a bit and spent some time helping to launch, develop, and administer the internal social networking environment within the company; then moved on to help launch a new security innovations team; and then on again to work on partner integrations with IBM’s social networking products.

Even though I was with IBM for 16 years, I moved around frequently, always staying very close to open source, open technologies, and open standards. Whenever a particular role stopped being fun, I moved.

When and how did you start using Node.js?

My first experience with Node.js was not a positive one. I was doing some prototype work for an IETF specification I was co-authoring to standardize the PATCH request method. I had built a test on top of Node.js, but discovered a bug in the way it parsed HTTP request names. I reported the bug and was promptly told that I didn’t know what I was talking about. I opened a PR to fix it then left, not looking back at all. The bug eventually was fixed but I had no intention of using Node.js again at that point.

Not too long after, my manager at the time approached me with this new initiative IBM was getting involved with... They were getting involved with the Node.js project, heard that I had some prior experience with the Node.js community, and wanted me to jump in and start contributing to the project with an eye towards helping to solve the deep rifts that had emerged in the community. I can’t say I was all that thrilled at the time, but I jumped in. Now I am extremely happy that I did.

Can you tell us about your personal/side projects?

My personal side projects tend to involve hammers and power tools more than computers and code. Adding a new bedroom to the house, for instance. Fairly soon we’ll be starting a fairly extensive remodeling of our backyard.

Why and how did you join the TSC and the CTC?

For the simple reason that I am passionate about open source, collaboration and community. Ensuring that Node.js remains a healthy, vibrant, open, and effective community and project is something that I am absolutely committed to above everything else I may do professionally.

I am passionate about open source

What are your achievements within the Node.js community thatyou are most proud of?

There are several, if I’m being honest, but the types of things that stand out the most are when some initial bit of work I may do takes off among the collaborator base and takes on a life of it’s own. The Canary in the Goldmine tool, for instance. It started as a random weekend project for me and the first version that I had written was extremely rough and raw. Today, through the hard work of people like Myles Borins and several others, it has become a robust tool that is critical to Node.js’ stability and testing strategy.

The new WHATWG URL parser is another example. I wrote the initial implementation but almost all of the more recent enhancements have been done by others who just picked up the ball and ran with it.

I love it when I step away from a bit of code that I’ve put time into and realize that I’m simply not needed to help it continue to thrive. It truly is the sign of a vibrant and healthy community.

What are the future challenges (technical or community related) you see in the future of Node.js?

Technically, the challenge will always be to find the right balance between stability and relevance. New language features, evolving protocols such as HTTP/2, new use cases, and so on will always put constant pressure on the platform to evolve. On the other hand, the ecosystem relies on Node.js being as stable and minimal as possible to thrive.

In terms of the Community, the challenge will be on maintaining the positive momentum we have achieved in the governance of the project. We’ve made great strides towards ensuring the community is open, diverse, inclusive and free, but we still have so very far to go.

What do you think the Node.js ecosystem will look like in 5 years from now?

Oh, I wouldn’t even want to guess! It’s so much more fun to be surprised. Technology evolves. People evolve. That said, Node.js is not going away any time soon. I suspect it will continue to thrive and grow, and will continue to be one of the most important software platforms in history.

Any final thoughts?

Only this: in the 32 years that I have been writing software, I have never had as much fun, nor have I been as passionate about a community and a software platform as I am with Node.js right now. The project is not perfect — if it was, there’d be no need for any of us to work on it still — but the project is definitely amazing in so many ways. My goal is to ensure that anyone who wishes to participate and contribute in the project feels capable, empowered, and safe to do so.

New contributors enrich the project only further and I’d love for anyone reading this to jump in and get involved.

Thanks a lot for answering my questions. I hope readers will answer your call to contribute!

Once again, I invite you to follow James on Twitter. As a follower myself I love being kept updated by James on what is going on in Node.js.

If you liked this article, please upvote and share it!

Also, you can follow me on twitter so you don’t miss my next articles!

See you soon for another interview!

--

--

Vladimir de Turckheim
Node.js Collection

JS enthusiast, software engineer, world traveler. AppSec and QA!