Yesterday Node.js creator Ryan Dahl announced that Node Package Manager (NPM) creator and fellow Joyent employee Isaac Schlueter is taking over Dahl’s role as the “gatekeeper” of Node.js. Today I caught-up with Schlueter to find out what’s in store for Node.js under his watch, and how he went from being a vacuum cleaner salesmen to presiding over one of the hottest technologies in the world.
Ryan Dahl coronating Isaac Schlueter. Illustration by James Halliday. Used with permission.
First of all, Schlueter wanted to clear one thing up: he’s not the new BDFL of Node.js. “Ryan is still the benevolent dictator,” Schlueter says. “The FL is ‘for life’ and he’s not dead yet. Node will always be his project that he invented.”
“What I’m doing is more of the work,” Schlueter laughs. He’ll be taking over more of the day to day maintenance of Node.js, though he says that today’s day to day Node.js work is really more of what he’s been working on anyway. On theCube last week Dahl explained that the big challenges for Node.js are now in the modules, rather than the core of Node.js. And the modules are where Schlueter has been focusing his work. “That’s a problem set that’s near and dear to my heart,” he explains.
As the Node.js community grows, more modules and libraries are created, and the work of sifting through them and determining which ones solve specific problems, which ones have been abandoned and which ones simply don’t work is becoming more of a chore. Meanwhile the growth of Node adoption is also creating challenges for backwards compatibility with previous versions of the platform.
What’s Next for Node.js
Schlueter says has three things on his plate for the near future:
1. Creating a better website and experience for discovering modules. He says to do this he doesn’t want something that’s going to put too much of the work on any single individual. Instead he’d rather leverage the work that the community is already doing and expose the data they’re generating. That’s about all he would say about what the new site will do.
2. Improving the handling of binary modules in NPM. Almost half a percent the modules on NPM have some sort of build step, he says. That might not sound like a lot, but it does cause problems. So the project will add support for binary deployments for built add-ons.
3. Stabalizing the Node.js API. “What I want is to get to the point where you don’t have to worry about the version of Node, like with Awk” he says. He says that he’d like it to be possible for someone to simply be able to let their operating system update Node.js and not have to worry about it breaking anything. “I don’t think I’ve ever installed Perl on a computer, but it’s usually there and it’s usually on a relatively new version. I’d like Node to be like that.” To get there he wants to stop adding things to the Node.js core and start focusing on stability, testing and continuous integration.
From Vacuums to Nodes
So how exactly did these tasks get on his plate? Not that long ago, he was a college drop out selling vacuum cleaners during the dotcom recession. But through persistent participation in the open source community, he’s managed to become the leader of a major project – and get paid to do it.
In an interview on Mikeal Rogers’ CurlyBraceCast podcast Schlueter explained how he dropped out of Southern Connecticut State University after he was unable to afford tuition. He soon found himself competing for tech jobs with Phds and very experienced engineers. Unable to find a job at even a fast food restaurant, he was able to make ends meet as a door to door vacuum cleaner sales person. Eventually he moved to California, knowing that’s where the tech jobs were and found a job doing tech support for a company that made medical billing software.
Schlueter is best known in the Node.js community for NPM. Schlueter created NPM to solve some of his own deployment issues. “I’d been around for a while by then, and I knew the sorts of problems developers ran into,” he said.
He says that although he’s spent a lot of his time at Joyent working on NPM, he wasn’t hired specifically to work on it. Rather he was hired because of NPM. “Joyent hires smart people (not that I’m all that smart) and puts them near the problems they want them to solve, they don’t necessarily have people work on one specific problem,” he explains.
Schlueter says has become the standard package manager for Node.js mostly because he kept updating it. That was a pretty common theme in our conversation, and he encourages developers to keep working on the projects they’re enthusiastic about because it’s the best way to build a name for yourself.
A lot has clearly changed since Schlueter’s time as a vacuum cleaner salesman. In the early 00s, work was hard to come by, even for skilled developers. “Now if you know how to program, and you live in the Bay area, if you’re not working it’s because you don’t want to.” But Schlueter’s story is instructive for anyone wanting to build a new career. Even Bay area developers can get stuck in a dead-end career writing code on projects that don’t interest them. Getting involved in open source is not just a way to learn to skills and get noticed, but also a way to contribute to projects that feel more meaningful. But the important thing is to pick exciting projects and stick with them.
It’s clear that Schlueter loves programming, but he does warn against working too hard. “We as a technology culture need to learn how to stop burning out,” he says.
Schlueter took three months off in 2010 and didn’t work. He says it was a really refreshing way to clear his head. “Node wasn’t developed because Ryan was a Joyent employee,” Schlueter says. “It was developed while he was taking time off and living in Germany and had a great idea.”
“The insane startup culture work ethic thing is fine up to a point,” he says. “But you have to know when to step back and take a breather.”