Tell me a little about yourself and how you got into development.
I was like 12 or 13 and I wanted to be a hacker :)
Tell me about “request”. Where did the idea come from? Why did you create it?
Request is one of the first Node.js libraries. It was written before NPM existed, and was one of the earliest modules published to it.
I was working on the Node.js core http library at the time but there was a lot of ease of use that I wanted that had to live a layer above the stdlib http module. Eventually request and core http were developed in tandem, with core taking on some features that request needed in one of the re-writes.
Some of the advanced streaming behavior was prototyped in request and eventually lead to features being added to Core, like the “pipe” event.
Same question as above, but for your recent release “r2”.
Well, request is written for Node.js. We never really considered what it would look like in the browser until quite a ways into its development. if you browserify it, it clocks in at over 2MB.
The browser has made a lot of advancements as well. The fetch API is much nicer than XHR but not quite as high level as we usually want.
r2 is written for the browser first, on top of fetch, and works in Node.js using a Fetch polyfill. This means that it ends up being quite large in Node.js, where that doesn’t matter so much, and quite small for the browser where you need to save space.
r2 is quite new, so it doesn’t have a lot of the features that have gone into request, and because it will stay within the constraints of the web won’t even include all of them.
What’s the history of NodeConf? How/where did it get started? What made you decided to do it?
I had run a small conference called CouchCamp for the CouchDB community, in 2009. I wanted to do something for the Node.js community.
With CouchCamp, I worked for CouchOne and just sort of put everything on my corporate credit card. I didn’t have any experience with sponsors or running a truly independent conference, so I asked if anyone was willing to help out who understood that. Chris Williams, who created JSConf, offered to to teach me and to run the first NodeConf alongside JSConf to make it easy.
I learned a tone from Chris and ran about a dozen conferences after that and tried to pass on what I learned to new organizers like Chris did for me.
What type of development are you doing these days?
Very recently, like today, I wrote a piece on how we can use new HTML elements as distribution mechanisms for framework agnostic components.
I’m pretty sold on WebComponents and will probably continue building them.
What technologies do you currently find most exciting?
The technologies that enable blockchains are pretty central to future decentralized technologies. I spend a lot of time in that space.
I work for an innovation group in Samsung and part of my job is looking at potential early stage investments. Looking at blockchain companies is particularly interesting because each token has its own set of economics you have to model out, which I find pretty fun :)
What are some of your hobbies? How do you spend your free time?
I follow chefs and restaurants and make a lot of stuff at home. I usually dive deep on a technique or dish the way that you might obsess about a new technology :)
What is something you’d wish people would ask you about but they never do? What do you like to do/talk about that you don’t get to very often?
People either ask about future predictions or they ask to hear stories about the “old days.”
What people don’t think about enough is objective analysis of the present. People thought I was trying to be a pundit when I spoke about Node.js becoming the largest platform and ecosystem in the world, but all I was doing was looking at the existing growth rate and comparing it to the available data.
Asking why something succeeds, especially when it outlives a few different technology trends, is something almost nobody does. People love to talk about the buzzword of the week, or the current favored framework, but the technology that sticks around long enough to get boring and to find a permanent place in our tech stack, we never talk about that.
What is a piece of advice you share with other developers, or just anyone in general?
Spend more time thinking than writing.
Developer culture is a little too obsessed with output. I try not to write any code until I feel like I can’t stop myself. Same with long form writing.
Go on a walk, get out of the house or the office, let things bounce around until you can’t take it any more. You’ll end writing better code, and probably more of it. Working 12 hour days produces terrible results. Thinking for 4 or 5 hours until you just have to write code for 3+ hours is how you get the best results.