MJS 023 My JS Story Laurie Voss

00:00 1634
Download MP3

MJS 022 My JS Story Laurie Voss

This week we have another My JavaScript story. This week’s guest is Laurie Voss. Laurie has worked with NPM from the start and has been a vital piece to getting it off the ground. Hear how Laurie got interested in computers, how Laurie got started with NPM, as well as a few things about the newly released NPM 5.

How did you get into programming?

Laurie started by going into a computer camp, at the time Laurie hadn’t spent time around computers, and it wouldn’t be until the second time that he went to the computer camp that he would see a computer again. Laurie grew up in Trinidad where not many people could afford computers. He started making his first website in Angelfire using HTML before CSS became a thing.

How did you go from web development to hardcore Javascript?

Laurie had been writing JavaScript since it was invented. Laurie started a web development company in high school using JavaScript. Laurie met Issac while working at Yahoo and he introduced Laurie to Node which was a starting point to taking JavaScript more seriously for Laurie. When Node was ready in 2013, NPM Inc was on it’s way.

What do you do at NPM Inc?

IN the beginning of 2014, Laurie was doing a lot of the JavaScript and was the CTO. Laurie says that part of his strategy has always been to hire JavaScript developers that are better at writing JavaScript that he is. Making him the worst JavaScript programmer at NPM. Laurie’s main job was doing what was needed to get NPM happen, including talking to layers and the business side of things. There are many companies that don’t understand how open source works, and in many cases it leads to run ins with lawyers. Many times NPM acts as an umbrella for open source tools that aren’t able to fight overzealous corporations.

What do you think is your biggest contributions to NPM?

Laurie expresses that it has changed over the years. A year ago he would say that he would have to say it leans towards the piece of software that is the registry. It’s very scalable and has worked great for small scale up to very large scale. Laurie works hard to gather funds and help make NPM grow as well as be scalable. He says that he is very proud that he build something that let’s others build things.

How did you get involved?

Laurie has been with NPM since the beginning. He tells us how Issac had been running NPM on donated hardware in spare time while working with Node. NPM would break a lot and be down due to the borrowed equipment. They decided that they needed to create a business model around NPM to help it grow. Laurie had just finished working on a startup and knew how to get funding and got their first round in 2014.

How did you get to being profitable?

Laurie talks about making sure that their plan is in line with their customers. NPM could easily charge for many parts of NPM but they would rather charge for things that make sense to charge, so in this case the private packages. Enough people are using the private package to getting NPM to profitability. Laurie says that even if money stopped coming in they would have to git rid of a few employees but would be able to keep a small team and sustain the NPM registry, but would never build anything new. It’s always between being profitable or using money to build new things.

What are you working on now?

NPM 5 was just released and it’s much faster, five times faster. Laurie talks about being excited about the team and what they are putting into it. Things like making deployments easier. Many developers use NPM to put code together as well as to deploy it. If you didn’t have a lock file, it’s possible that it would change. But the lock file can take a long time, and you already know what needs to go there so they are adding npm store and npm fetch making deploys much faster. Additionally they will be adding a feature called insights. They are able to see information about different users packages, security information, performance information, etc. They can use that information to help developers with suggestions based off of data gathered by what other people are doing. Charles adds that it would be great for coming up with topics for the podcast.

Anything else?

Laurie reminds everyone about NPM Organizations as well as NPM Enterprise. NPM Organizations is a way to organize packaging as well as teams of developers and helps you to collaborate. NPM Enterprise allows for single sign on support, license auditing, and features that corporations care about.



Zite and NextJSSlides.com


VMWorldTweet or email if you’re looking at resources for learning VR AI or Iot


TwitterNPM OrganizationsNPM Enterprise


[This episode is sponsored by Newbie Remote Conf. Newbie Remote Conf is a two day completely virtual conference hosted by none other than Charles Max Wood. If travel expenses are an issue or you just can’t afford to be away from home for two days, then join us. It’s virtual! This conference is focused on people who are new to programming who want to learn what the pros know or just get a leg up in getting a job and getting into the programming community. We’ll have speakers from all over the programming community to help you stay current and a Slack room where you can connect with speakers and other attendees in real time We’ll also have a live roundtable video chat for attendees and speakers. Plus, we’ll provide the talk recordings to you within days of the conference.] Charles: Hey everybody and welcome to another My JS Story. This week we’re talking to Laurie Voss. You want to say hi? Laurie: Hello everybody. Charles: Now you were on episode 99 of JavaScript Jabber, a nice round number there. We talked about NPM Inc. Laurie: Yeah. That’s when NPM Inc. was a brand-new thing that had just got started. Charles: Yeah, back in 2014 and here we are three years later and still going strong. Laurie: Indeed, going stronger than ever before. The registry is 400 times bigger than it was the last time we spoke. Charles: Oh, wow. That’s crazy to think about. And what that means about the community, right, as far as either how many more problems are being solved in JavaScript these days in a standardized way, or how much larger the community is as a whole. Laurie: Yeah, absolutely. We do math occasionally for the purposes of working out how big is this thing going to get. We think there’s about 11 million, maybe 12 million JavaScript developers in the world, and NPM has seven and a half million users. Charles: Oh, wow. Laurie: So, something like 65% of everybody who writes JavaScript is already using NPM and we’re pretty sure it’s going to hit 100%. We don’t see any reason why it wouldn’t. Charles: Yeah, I can’t think of a reason why not, I mean, unless people are just terrified of third party libraries but... Laurie: I feel like that ship has sailed in JavaScript land. Charles: Yeah, that ship has sailed in development land in general I think. All the other systems out there, Ruby, Python, Peal, I mean they all have package systems that you pull stuff down from. Laurie: Yeah, I had an interesting experience of going to OSCON two weeks ago. OSCON, if you’ve not heard of it, is Open Source Convention which just, in and of itself, feels like an anachronism these days. It’s like, “What isn't open source?” Like everybody uses open source. How can a conference about open source software feel like having a conference about software? It feels way too general to be a thing. And it just shows OSCON’s one of the granddaddies of conferences. It just shows how far the industry has gone. It used to be this sort of risky thing. You’d have a conference about how to convince your company to use open source and that’s just not a conversation anybody has anymore though. We have to use open source. That’s how you write software. Charles: Yeah. The other thing is recently it’s been a large conference but I remember when it wasn’t as big a conference. It was just the diehard people out there and now anybody who’s anybody, who at least talks about open source, even if they’re not heavily using it or promoting it. Laurie: Right. Charles: So, yeah. And then NPM Inc. just released NPM 5 which is exciting. Congratulations you guys. Laurie: Thank you very much. I am extremely proud of the team who put it together. They have just been absolutely kick ass and NPM 5 is just the beginning of all of the stuff they have planned. We actually had to stop them. We had to go “slow down. I need you to put a release on this stuff.” And “get a release out the door” and “save some stuff for NPM 6.” But the stuff that they’re putting together is just fantastic. I’m really, really looking forward to just showing everybody what’s in it. Charles: That’s right. Make our lives better and then keep making our lives better. We appreciate that. Laurie: Happy to help. Happy to help. Charles: Nice. Laurie: Feel free to slip us a couple of bucks. Charles: Yeah. I’ll have to think about that. Well let’s go ahead and jump in on some of these questions that I sent you. The first one that I typically ask is how did you get into programming? Laurie: I got into programming a couple of times. Sort of I dipped my toe into the water. Before I would say that I became a programmer I went to a computer camp when I was 11 years old. It was hampered somewhat by the fact that that was the first time I’d ever seen a computer and I didn’t know anybody who had a computer and we didn’t have a computer at home. So, I’d go to the computer camp, enjoy myself enormously and then go home and it would be another year before I went to computer camp again before I saw a computer. Because I grew up in Trinidad, which is an island in the Caribbean and it’s not a particularly rich place. So, a computer was a very expensive and rare thing when I was growing up. So, around about 1996 the internet arrived in Trinidad for the first time and that was when I really got into what I would call programming. Like everybody else I got onto the internet and the very first thing I did was like, “I want to build my own webpage.” So, I went on Angelfire and slapped together some HTML. CSS didn’t exist yet so it was just HTML and that was how I got into programming and I was hooked. I really, really love the web. I tell people that I’m a web developer first and a programmer second. I’m only doing the programming because that’s what you need to do to build web pages I really love the web and it’s always my driving force. Charles: Yeah, that makes sense. And it’s funny because you mentioned Angelfire. That’s kind of where I got in too. I was in high school and Angelfire and GeoCities. I think I built sites on both of those way, way long ago. Then I kind of got away from programming and got back into it. Laurie: Which GeoCities neighborhood were you? Charles: I don’t remember. Laurie: I remember being Athens and being very, “I’m a philosopher. I feel good in Athens.” Charles: That’s funny. So, I’m curious. How do you go from web developer to hardcore JavaScript? Laurie: It’s funny because I’m not really a hardcore JavaScripter. I’ve been writing JavaScript since it was invented. Netscape released Netscape 2 I guess was the first one that had JavaScript in it, narrowly escaping calling it LiveScript. And I had already started a web development company in high school so as soon as JavaScript was invented everybody was like, “We must have the JavaScript!” So, I learned it as soon as it existed for the purposes of putting it together but I was never breaking new ground in JavaScript. Isaac and I met about 10 years ago now when we both worked at Yahoo and we were both old time web developers there. And he was the one who got me into Node which got me into JavaScript in a more serious way. He was like, “I think this Node thing is going to be a thing. I think it’s going to be important. You should probably pay attention.” I was like, “well, can I build web pages in it yet?” And he was like, “well, no not really.” And so, it wasn’t until 2013 he was like, “yes. It’s ready. You can build web pages in it now.” I was like, “All right. We’re in.” That was when NPM Inc. really got underway. Charles: Nice. Yeah, I guess I just assumed since you’re at NPM and NPM is all things JavaScript that you’re a hardcore JavaScript person but What do you do a NPM Inc. then? Are you still managing web property stuff or…? Laurie: At the beginning of NPM in 2014 I was definitely doing a lot of programming and putting stuff together. I was the CTO when we started and so I was writing a bunch of JavaScript, I was architecting JavaScript but mostly what I was doing was recruiting other people to write JavaScript. Charles: Ok, okay. Laurie: I’m proud to say that I’m the worst JavaScript programmer at NPM because every time we’ve hired anybody I made sure that they were a better JavaScript programmer than I was. And that means, that by definition, everybody’s better at it than I am. So, I can do it but the people we have here are the real wizards. The people who put amazing stuff together. What I do is I help make NPM happen. I was doing opts, I was doing some of the initial coding on the new version of the registry, I helped architect the registry, I did a ton of recruitments and these days I like to joke that my job is like yelling at lawyers and accountants. Charles: Nice. Laurie: I do models and ID data and I do funding. It’s a lot of technical stuff about putting the numbers up behind stuff but my contributions in JavaScript is to make NPM happen rather than to write any JavaScript in particular. Charles: You know that’s fair and I think it’s interesting to see that angle on things. Just the…oh, well I never really thought about yelling at lawyers and all of the other things that go into making this run, right. We just kind of take for granted that I type NPM install on my project and I get all of the stuff I need. And so, yeah, there are people in the background folks that do all this stuff but it’s important to make it happen. Laurie: Yeah. One of the things about the open source is that there’s a bunch of companies around who don’t understand open source. And so, they get confused and they do stupid things with lawyers. Like recently, this is about a month ago I think, a magazine called Express decided that...they found out that there was this package called Express, in fact a whole family of packages called Express on the NPM registry. And just so… Charles: oh really? What did they do? Laurie: Just through keyword matching they were like, “these people are violating our copyrights. They are stealing our magazine”. So, they DMCA’d the whole shebang. The entire express ecosystem was removed from Google search results and I had to be the one who is like “oh my goodness. Let me get my lawyer to draft your lawyer an email explaining what the hell copywrite is because that’s not how it works.” So, that’s my sort of yelling at lawyers job is protecting open source from overzealous corporations who don’t understand what it is because if they had just gone to the authors of Express or any of the other open source packages that this kind of stuff happens to…they don’t have any lawyers. They don’t have any resources. They just get crushed. So NPM is there just to be the umbrella for that to the degree that we can possibly manage. Charles: You know, that makes a lot of sense. It’s something that’s important because if you’re writing apps in Express you kind of want Google to work for that. Laurie: Yeah, exactly. Charles: Yeah, cool. Well, what do you think is your biggest contribution then to NPM? Is it sort of the backend wrangling of all of this kind of business-y, legal, fundraise-y kind of stuff? Or Is it hiring the engineers that make the stuff that we run on our machines? Or is it all of the above? How do you think about your job and what it means to everybody else? Laurie: That’s a really interesting and complicated question. It's definitely shifting. If you’d asked me a year ago it would have been I am proud of the piece of software that is the registry. I architected the first version of that that we released and it scaled a long way right? It scaled to 200 times its original size and there's NPM Enterprise which is another version of the same service-oriented architecture shrunk down to single Docker container. It's just sort of intrinsically cool, technically that you can take the same architecture and run it at scale of thousands of machines or one machine and it works. That's cool and I was really proud of that but in the years since I moved out of the CTO position every single piece of that service-oriented architecture has been upgraded or replaced or changed in some way. So, it’s now pretty much CJ's creation and I sort of take a sort of second-degree pride in what's going on and I recruited these people and I kept this team from busting up and I raise the money that keeps them all paid until we hit profitability. I just—really am proud of how NPM has managed scale. Both the software and the company and the community behind it. There’s seven and a half million people and getting seven and a half million people to do anything without dissolving into a gigantic fight is kind of difficult. It's just amazing that everyone is so good-natured. It's one of those things about NPM… is that you hear…it gets into the press when there's a fight against his address when there's some kind of dispute or a fork or two people are arguing about something. But those are a tiny minority and the vast majority, 99.99% of these seven and a half million people they’re just getting along great and they really like the tool and they’re just building websites and it makes me super happy as, like I said, one of the sort of diehard proponent of the web that I build this thing that everyday lets people build more websites. Charles: That makes a lot of sense. I’m a little bit curious. So, have you been with NPM Inc. since day one? Laurie: As a co-founder I was there at day zero. Yeah. Charles: And how did that all come about? Did Isaac say, “hey, we’re going to do this. Do you want to be involved?” Or did you all kind of come up with it together? Or… Laurie: So, Isaac had been running NPM on donated hardware and in his spare time when he worked at joint on Node he was the head of the Node project of the time. And NPM sort of became famous for being down all the time because it was on donated hardware and only one person was working at it and not all of the time, so just break a lot. We had a choice at that point. We could try and put it into a foundation and exist on donations or we can try and wrap a business model around it. We decided to wrap a business model around because when you have a business it scales with the popularity of foundation. It gets the same amount of donations every year no matter what is happening with the service so you get more and more popular with less and less money. But a business,it makes more money if more people use. It scales better as a design. So, Isaac decided that the way to do this was to put a company together but at the time the only thing Isaac knew how to do was write NPM. He’d never run a company before but I had. I’d done a startup just before that and I was taking some time off so he was like, “who do I know who knows how to put a company together and knows how to hire engineers and knows how to do any of this stuff? I know Laurie who I’ve conveniently known 10 years at this point that will be really good.” So, yeah. That was when I got involved and we formed the company at that point and got our first round of funding at the beginning of 2014. Charles: Gotcha. So, then how do you get from, “hey we've got this idea. We're going to build this business around it” to being profitable? Because I know that you raise some money but that’s not the same thing as being profitable. Laurie: Absolutely. So, we are very careful to have to come up with a business model that aligns with our users. So, there's 9 billion downloads a month, we could charge a penny a download and would be enormously profitable tomorrow. But that would be terrible. We would never do that. So, instead we charge for the thing that people are willing to pay for, the thing that you would be suspicious if we gave it to you for free, which is private packages. If you want privacy you pay for privacy. So, if your company wants its own private NPM Enterprise server we will give you one of those. If you and your team, if there’s three or four of you, wants to share packages between yourselves then you can do that. And you just sign up on the website. That is getting us where we need to be. Enough people have the problem of sharing code within their company and enough people appreciate the convenience of being able to use the single NPM tool to do everything, whether it's of the code or private code. That were going to get some profitability eventually and were really looking forward to that. We’re looking forward to being able to say the NPM registry is self-sustaining by doing yet more things in the open source community that they appreciate. Charles: Can you talk about how close you are to profitability? Or is that not something that we should dive into. Laurie: It’s not a question that has a firm answer. We make a certain amount of money right now and if I needed to, if I knew that we’d never get any money ever again, I would have to lay off a bunch of people who work and NPM, but not all of them. There would be enough left that we would be profitable tomorrow and the registry has for a long time covered its raw operating cost, it’s servers and its bandwidth. So, if we needed to, we could survive forever right now but we’d never build anything new ever again and life would suck for the people who remain. So, when you’re talking about a funded company it's always the case that you know you could become profitable or you can take more money and do more things. So, that's always a thing up in the air but I am confidence in the future of NPM. I am confident that NPM can and will exist forever at this point. Charles: So, what are the things that you working on right now? Laurie: Well, as you have mentioned, we just released NPM 5 today which is five times faster.The set of…the banner feature is it's a lot faster. But it also does a bunch of other stuff really well and the CLI team are really excited about the new stuff that they’re going to be able to put in there that’s going to make it easier to deploy and it’s going to make it easier to handle frontend package and stuff like that. The stuff that on the service side that I am interested in is there’s two things that we’re going to do. One is we're going to make deployments easier. So, lots of people right now, they use NPM to put their software together and then they also use NPM to deploy their software. They check out their code on a production box and they run NPM install on a production box and it downloads all of their dependencies and the server’s ready to go. That comes with some risks because if you didn’t have a lock file, NPM 5 puts a lock file by default, but if you didn’t have a lock file then it’s possible that the packages would change between what was running on your box and what was running on the server. But more importantly, even once you’ve got NPM 5 and it’s lock file, that just takes a long time. If you have to deploy to 1000 boxes and each one takes 30 seconds to deploy, that’s a lot of time and you know what packages need to be there because you've already installed them to your local box. So, why would you to do it again? So, we’re probably going to add two new commands to NPM, NPM store and NPM fetch. And NPM store will take your entire Node modules search or your entire app and cram it into a single file and put that on the server. And NPM fetch will fetch one single file and put it back onto your production box because the average app has like a thousand dependencies these days. That will literally be a thousand times faster because most of the speed of deploys through a quest, not the actual bandwidth. Charles: Right. Laurie: So, we're really, really looking forward to making people’s app deploys a thousand times faster. I think that’s a feature people are really going to enjoy. And on the other side is a set of grab bag of features that we called insights. One of the things about being in NPM is we set up this sort of Nexus of all of the activity of JavaScript in the world. So, we see these seven and a half million users doing things. We can see what packages are getting more popular. We can see what packages get downloaded at the same time as other packages. We can tell when a package is a known security vulnerability. We know which, how big packages are when they're put into a front-end application. We can tell you whether they are slow or fast. We get 1.2 billion requests a day. That's an enormous amount of data about what JavaScript developers are doing. And we can expose that to JavaScript developers. We can tell you, “tell us about your app. Tell us what’s in your app and we will tell you what do with it.” We will tell you, “this thing will be slow on the front end, you should use this package instead. This thing’s a security hold, you should use something else instead.” We can tell you, “you’re using this package. A lot of people who were using this package has switched to this package recently. You should investigate.” We can tell you, just by looking at what everybody else is doing what the best practices are and that is really useful information to the developers of JavaScript. We can give them what I don't think anybody else can. So, I’m really looking forward to being able to help you not just write JavaScript but write better JavaScript than you use to. Charles: That makes a lot of sense. It’s really exciting, I guess, to be able to get that information because at least in my case, then I can go through that list and say, “okay. Which of these areas of interest are we not covering on the podcast? Or, which of these areas of interest are people really looking into?” And you know, I should look into too for my apps and for my things that I have going on. Laurie: Right. We just have so much information about what JavaScript developers are doing and we’ve barely begun to scratch the surface of turning that into useful information for the community about what they can do with it. Charles: Nice. Well that’s really exciting. Is there anything else that you want to talk about as far as your experience as a developer or as an enabler of NPM before we go to picks? Laurie: Well, I should plug our paid products obviously, NPM organizations is our SaaS offering for your team to organize their JavaScript and help each other collaborate. NPM Enterprise, if you’re a big company and you need single sign-on support or you want security plugins or license other than the kind of thing that really big companies care about, NPM Enterprise will give you that. So, I appreciate the opportunity to plug there. Charles: Oh, absolutely. All right, well. Let’s go ahead and go to picks. Do you have any other things that you want to shout out about? [Have you ever felt like you’re falling behind? Or that the programming world is moving so fast that it’s impossible to keep up? Then there’s the issue of where to go to make sure you’re up to date. The answer is to join a community dedicated to discussing the latest in JavaScript. I mean, wouldn’t it be nice if you got JavaScript Jabber all day? Well you can, kind of. We’ve created a Slack community for JavaScript Jabber. That means you can connect with our listeners and guests on a platform you’re most likely already using. Plus, we’ve set up a keeping current channel to pull stories from across the web to help you know what people are talking about. And coming soon we’ll be holding monthly webinars and round table video chats to connect with experts in the community and with each other. So, come join us at javascriptjabber.com/slack.] Laurie: The thing that I’ve been shouting out to everybody about recently is this company called Zeit who are doing really, really fantastic things in particular a web framework called Next.js. Like I said we sit at the center of the JavaScript universe so we can see when something is really popular and React is really, really popular. React is not a train leaving the station. The train left the station. You’re three stations behind, you need to get in a cab and catch up to the train because it’s where web development is going and one of the things that's kind of annoying about React is that you have to sort of get a lot of build chain stuff going to make it work really well. You have to have web pack, you have to have battle to really do it properly. On what I love about Next.js is that it’s a sort of kitchen sink included framework for React. It will get you up and running and you can just start writing React components without having to master all of the extraneous stuff. Like any other kitchen sink framework, it has to make a bunch of choices for you in order to do that to make it simple. It has to limit you a little bit. You probably wouldn’t design your second system to use it but as a prototype as your first system just to make sure you know what's going on and get some practice with it, it's great and I’ve been recommending it to everybody. Charles: Very cool. Laurie: And my other one is my favorite web app in the whole world which I use every time I give a presentation which is slides.com. If you’ve ever used a framework called Reveal.js to put together a slide deck, slides.com is from the same people. Reveal.js is the service really and it's just a masterpiece of web engineering. It is perfect. There’s no edge case, there's no awkward corner. Everything works smoothly. Right clicks do what you expect it to do. Copy and paste does what you expect it to do. You can move stuff around, you can resize things, you can scroll through stuff. It’s just seamlessly and perfectly engineered and it’s just the pinnacle of what web development can be when people are at the top of their game. So, I like it as a tool and also I love it as a developer and I’m like, “I could be that good one day.” Charles: Nice. Very nice. I'm going to shout out about a couple of things here myself. One of the first ones is I'm going to be going to. I just barely signed up for the ticket in fact and I'm really interested to see how these kinds of things impact development and that is I'm going to be going to VMworld, which is VMware's conference and that’s in Las Vegas in August. So, if you're in Las Vegas and you want to hang out or meet up then definitely check that out. They have product for all kinds of things that I didn't really consider having VM product for like IOT. So, I’m really looking at getting a little bit more involved there and seeing what's out there. The other thing is that I had a really great conversation earlier today which is the episode right before this with Corey House who’s one of the panelists now on JavaScript Jabber. Just talking about the future of JavaScript and where we think it’s going. And I don't know if that made it into the recording or not but I see a lot of movement in basically three areas: IOT, artificial intelligence and VR AR. And so, I'm really curious to get into that. So, this is more of a shout-out for people to tweet or email me and just let me know if you're looking into some of those things what resources you recommend because I like to get a little bit more of that content into the shows and just see what else is out there. So, yeah, in general if you have something you like, an online course or book or anything like that, let me know. All right. Well, if people want to follow you on Twitter, or GitHub or see what you're doing these days where are the best places to go to do that? Laurie: My Twitter handle is Seldo, S-E-L-D-O seldom and that is definitely the best way to get in touch with me. Charles: All right. Well, thank you for coming. It's really interesting just to see the story and, in this case, kind of the face and the person behind a lot of this work that we just don't think about with this stuff and I think I speak for everybody in the community just saying how much we appreciate all the work that goes into NPM. And a lot of the people work that we just don't think about you wind doing. So, thank you from all of us. Laurie: Thank you very much for participating and for having me on your show. Charles: Yeah, no problem. We'll wrap this one up and we'll have another one for folks next week. Laurie: Cool. [Bandwidth for this segment is provided by Cachefly, the world’s fastest EDM. Deliver your content fast with Cachefly. Visit Cachefly.com to learn more.]      

Sign up for the Newsletter

Join our newsletter and get updates in your inbox. We won’t spam you and we respect your privacy.