Node.js Developer Fedor Indutny Weighs Performance and API Elegance


nodejsThe Linux Foundation hosts numerous Collaborative Projects — these are independently funded software projects that harness the power of collaborative development in an effort to drive innovation. For these projects, the Linux Foundation provides the essential collaborative and organizational framework so that participants can focus on innovation and results.

To increase understanding and provide greater insight into these collaborative projects, we are producing a series of articles highlighting some of the people involved. In the series, we talk with key contributors about what they do, what motivates them, and how they got involved.

The Node.js Foundation is a community-led, industry-backed consortium created to advance the development of the Node.js platform. Node.js itself is an open-source, cross-platform runtime environment for developing server-side web applications. It is used by thousands of organizations, including PayPal, GoDaddy, Joyent, and IBM, and is the runtime of choice for high-performance, low-latency applications. Node.js can be found in everything from cloud stacks and enterprise applications to mobile websites and the IoT.

Formed earlier this year, the Node.js Foundation supports the growth and evolution of the Node.js platform in a collaborative environment. Fedor Indutny, a key contributor and a member of the Node.js Technical Steering Committee (TSC), says the Foundation is something that many in the Node.js core team have craved for a long time.

Fedor crop“To me, the Node.js Foundation is a way to join the efforts. Big companies, startups, contributors — the Foundation provides a way for us to collaborate and determine the project’s future, while accounting for as many views and opinions as possible. The project governance is really important to me; it was the reason for io.js to appear, and is the reason why it merged back with Node.js under the roof of Node.js Foundation,” Fedor says.

Fedor, who is a Software Engineer at PayPal, has been involved in Node.js core development since 2010 and a core member since 2012. His first big commits to Node.js were improvements for the command-line debugger. Since then, he has moved to working on HTTP protocol support, crypto APIs, and fixing some V8 issues. Currently, Fedor’s daily duties are split into two parts. He says:

  • As a contributor, I triage GitHub issues that are relevant to my scope. Many of them fall to my email inbox, so most of my activity is an attempt to reach “Inbox Zero.” Quite often, I switch from this activity to experimentation: trying to improve performance or create a new useful feature.

  • As a TSC member, I participate in a weekly call, where we discuss and make technical decisions on various questions raised by the community. Whenever any controversial idea arises, we discuss what to do with it on a TSC call.

Finding the balance between performance and API elegance for Node.js is a particular area of focus, according to Fedor. “This is very challenging, and this struggle is not going to end anywhere soon, because the features that Node.js offers and their APIs are constantly growing and improving. Another, contrary, challenge is to not overdo with the API growth. Having a small core of essential features is important for the diverse and productive user-land modules (npm) progression. We have recently hit the mark of 200K npm modules, and this is fantastic!”

The rise in Node.js adoption is a serious motivator for keeping Indutny involved with the project. However, Fedor continues, “that feeling would not be complete without doing this in the open and making the code that I write available for everyone for free. The Open Source model is what keeps me involved with Node.js.”

One of most rewarding aspects of being involved, however, is seeing the deployment of new projects that are running on Node.js. “Knowing that the code you wrote runs on many servers throughout the world is an incredible feeling,” Fedor says.

He has also contributed small patches to various other open source projects, including Mozilla’s Rust compiler, but one of the most delightful experiences he’s had was being involved with Google’s V8 JavaScript engine, which is the “rocket power” of Node.js (referring to the famous rocket and turtle image). According to Indutny, “Many components of V8 are one step ahead of what we currently do in Node.js core. This Google team is pretty serious about innovation, and this continuously fascinates me.”

If you’re considering becoming involved with Node.js or another open source project, Fedor advises, “Don’t be afraid to contribute minor changes to the project. It starts with a small patch and then eventually will end up rewriting all of the existing code (obviously kidding, but sometimes very major changes happen, too!).”

When asked about the future of the Node.js Foundation, Fedor says, “I try to avoid doing any predictions, but I’m sure that the Node.js Foundation support that we have now will lead the Node.js community to a prosperous future.”