[00:00:05] SY: Welcome to the CodeNewbie Podcast where we talk to people on their coding journey in hopes of helping you on yours. I’m your host, Saron, and today we’re talking about Node.js with Danielle Adams, Node Core Team Member, Lead Software Engineer at Heroku, and Director of Women Who Code New York City.
[00:00:21] DA: As you’re learning to code, you kind of more understand what that job looks like and how many opportunities there are, and I’ve just never been exposed to that. No one had ever told me that there was an entire industry looking for developers.
[00:01:17] TwilioQuest is a desktop roleplaying game for Mac, Windows, and Linux to teach you real world developer skills. Take up the tools of software development, become an operator, save the cloud. Download and play TwilioQuest for free at twilio.com/quest.
[00:01:34] Ambassador Labs enables developers to ship software faster on Kubernetes. Sponsor of both the Ambassador API Gateway and Telepresence open source projects, Ambassador Labs is used by tens of thousands of developers worldwide. Learn more at getambassador.io.
[00:01:52] RudderStack is the Smart Customer Data Pipeline. Easily build pipelines connecting your whole customer data stack, then make them smarter by ingesting and activating enriched data from your warehouse, enabling identity stitching and advanced use cases like lead scoring and in-app personalization. Start building a smarter customer data pipeline today. Sign up for free at rudderstack.com.
[00:02:17] New Relic helps engineering teams all over the world visualize, analyze, and troubleshoot their software. Discover why some of the most influential companies trust the New Relic One observability platform for better uptime and performance, greater scale, faster time to market, and more perfect software at developer.newrelic.com.
[00:02:43] SY: Thank you so much for being here.
[00:02:44] DA: Thank you for having me.
[00:02:45] SY: Tell us about your journey. Where did you get started?
[00:02:48] DA: Yeah, sure. So I have a little bit of a unique journey. I taught myself to do front-end development when I was in middle school back when we have GeoCities.
[00:02:56] SY: Oh, cool!
[00:03:32] SY: Interesting. So you started off doing some front-end, HTML, CSS stuff, and you ended up doing some Node stuff now. Where did the transition come from?
[00:03:41] DA: So at my last job, I did both front-end and back-end and really what project I wanted to work on, but I did do a lot of work in Ember. And so I really got to understand how front-end frameworks work. So there was another team at the company. They were using React. And so it really gave me an opportunity to understand and actually watch the evolution of front-end development. And then when I got to Heroku, I joined a back-end team and got to work on developer experience there. And then there was an opening for this Node language owner at Heroku. I guess it was more of an audition for this role and it worked out.
[00:04:21] SY: Nice! Nice! So it’s interesting that you were exposed to coding. You did some coding in middle school, but then you didn’t graduate with a CS degree. When you actually went to school, you graduated with an advertising degree. Why was that? Why not go to CS?
[00:04:34] DA: Yeah, that’s a really good question. I think I just didn’t understand that computer science did not mean I have to be a scientist.
[00:04:43] SY: Oh, interesting.
[00:04:43] DA: I really wasn’t interested in anything to do within my CS classes. I remember being in the labs and was in like the engineering building and there was just a lot of, I don’t know. At the time, I guess it was a little bit daunting to pursue a career in science. And at that time also, I did know a little bit about front-end development and how websites worked and this whole idea of companies coming out with these big internet campaigns was very exciting from an advertising perspective. And so that was what I wanted to do.
[00:05:15] SY: Yeah. What got you from advertising back into code? How was that transition for you?
[00:05:19] DA: Yeah. I got out and I was doing a little bit of coding and then I kind of pivoted into doing more digital marketing. I was doing some SEO stuff. And at the time, Facebook ads were super new. And so just helping companies, I was very technical. So the roles that I was taking I was finding ways to kind of put myself in these positions where I was able to help out with people who were a little bit more old school in their advertising knowledge and ways and just show them and be like, “This is what you should do. Here’s the data. Look at how many people this reaches. Look at how many clicks we got.” And so really trying to push the whole social media advertising and SEO to the companies that I was working at and show them that this is the future of advertising. Wasn’t quite the creative direction that I wanted, which is why I kind of got back into coding I think sometime. Now it’s been eight years, which is insane, but a couple of years ago my dad sent me this New York Times’ article about this coding school. It doesn’t exist anymore, but it’s called “Dev Bootcamp”.
[00:06:23] SY: Yeah, the first.
[00:06:24] DA: Yeah, exactly. And he was like, “Look at this. It’s like a school, you go, and you do it for a couple of months. You’ve always been into the coding thing. Why don’t you look at it?” And so I read about it. And at first, I didn’t understand the concept and I just kind of told him, “I don’t have time for this. I’m very busy at work.” And then I looked at it again and I thought about it. I was kind of thinking, “Well, I think this is my chance to do what I think that I wanted to do.” I still wasn’t sure what that meant to pursue coding. And then as you’re learning to code, you kind of more understand what that job looks like and how many opportunities there are, and I’ve just never been exposed to that. No one had ever told me that there was an entire industry looking for developers.
[00:07:07] SY: So what was that first coding job like for you?
[00:07:10] DA: It was really scary. It was scary, but it was exciting. I think that I was excited because everyone was really nice and they seem to really believe in me, but I did not believe in myself, and that was the scariest part. I spent so much time thinking about, “Should I ask this question? Should I not ask this question? They’re going to think I don’t know anything.” When now looking back, I understand it was me on the other side of that, I would have assumed, like we interviewed this person. They have this amount of experience. They probably don’t know anything about what we’re doing. They don’t know the libraries. They don’t know the infrastructure. They don’t know the code. They don’t know the language. And so it’s my job to teach them. And I did not understand that being on the other side of that. But I think that there’s a lot of resources now for people to understand that that’s what it’s like to be a junior developer.
[00:08:06] SY: So what did it take for you to start believing in yourself?
[00:08:09] DA: I think time and experience. To be honest, I think it’s halfway being given responsibility and also asking for more responsibility. Just maybe not feeling ready, but just doing it anyways. I still struggle with that where I say, “I want to do more. I want to do more.” And I think really the big answer there is just time.
[00:08:31] SY: And how long did that take for you to kind of transition to a place of maybe not complete confidence? We all have our moments when we’re scared, we don’t feel like we know what we’re doing, but at least getting some confidence.
[00:08:42] DA: I think maybe about two years, probably.
[00:08:46] SY: What did you enjoy most about these coding jobs?
[00:08:48] DA: I really liked being impactful and working on things that I know can help people and help people do their jobs. I think that’s a lot of why I really like working at Heroku because it makes some topics that are a little bit scary, like DevOps or cloud platforms, even just hosting your own website. It makes things a little bit easier for people. I like all of that aspect to it and just making software and web development really easy.
[00:09:21] SY: So let’s get into the star of the show, Node. We’re here to talk about Node. So let’s start at the beginning. What is Node?
[00:10:26] SY: And how did you get into Node? How did you end up joining the core team?
[00:10:29] DA: So I took this role as the language owner at Heroku. And I’ve been doing that for about six months. And you know how a lot of tech companies do, they give you a certain amount of time to work on open source, if you want to. So I think that’s something that’s been really important to me. It’s what I did when I was working a lot on Ember. I tried to give back to the community. It’s not for everyone and I don’t think everyone has an obligation to, but it’s just something that I like to do. So I was trying to figure out how I could get involved in the Node community because that was something that I was working on every day. So I talked to some people at first and it seems like working somewhere in the build and release pipeline was probably the best fit for me because I already was familiar in today’s integration work because of Heroku and how cloud platforms work because of Heroku. So I went to a conference and just kind of showed up at an info session for people that were interested in joining the release team. And I started going to mentoring sessions every other week. So about twice a month, I would meet with a few people that are Node releasers and they would go through what they were doing. And we would ask questions. And I was doing that for, I don’t know, maybe six months or eight months before I was nominated to join the releasers team.
[00:11:56] SY: Interesting.
[00:11:57] DA: So then after that, you get to pair on a release. I think I paired on a few releases after that just because I was a little bit nervous and some of the setup was taking a little bit longer than it usually does. But even then, I was like pairing with one of the releasers and I was just thinking, I’m like, “I don’t know if I’m ready to do this. I don’t have it committed to memory yet.” But they have steps there. It’s all in the guides. Once you’ve done it enough times, you don’t have to follow the steps anymore, but it’s not meant for anyone to memorize. We’re all human and people that even work on these big projects, they know that well because they’ve been working on them for a long time. Not because it’s like part of them or anything like that. It takes some time. So how it kind of relates back to my role is Heroku supplies all of their Node binaries to our users. And so there’s a huge overlap for me because I want to make sure that we get all of the releases out for Heroku users to use as well. And so being on the release team, that’s actually helped me a little bit in my role as well to kind of close that gap between, “Okay, when are the releases coming out? What’s going on with the schedule? Is there something delayed? Is there a security release coming out? Is something being deprecated?” And so that kind of puts me right in the forefront of the conversations.
[00:13:36] Want to learn more about Kubernetes, but don’t know where to start? The Kubernetes Initializer lets you build your own application right in Kubernetes’ playground in just a few clicks. Automatically configure Ingress, a continuous integration pipeline, authentication and more. Try it for free at getambassador.io/codenewbie.
[00:13:56] RudderStack Smart Customer Data Pipeline is warehouse first. It builds your customer data warehouse and your identity graph on your data warehouse with support for Snowflake, Google BigQuery, Amazon Redshift, and more. Their SDKs and plugins make events streaming easy, and their integrations with cloud applications like Salesforce and Zendesk help you go beyond event streaming. With RudderStack, you can use all of your customer data to answer more difficult questions, and then send those insights to your whole customer data stack. Sign up for free at rudderstack.com.
[00:14:35] SY: Let’s walk through kind of the different roles of an open source project. We talked about the core team. There’s the release team. There’s just being a maintainer or a contributor. And I assume there’s some kind of overlap between those different roles. Walk me through kind of the composition of people who are involved in an open source project and where the release team fits into that.
[00:16:49] SY: Oh, wow!
[00:16:49] DA: Yeah. So there’s a maintenance version, which does not get any new features. There’s the active version, which is the stable version. And then there’s the current version, which is the kind of edge version. And so there’s a lot of people that will tag pull requests and say, “This can go into maintenance data X and this one goes into the stable branch.” And so to make sure that nothing breaks.
[00:17:14] SY: So when I use Node, when I install Node, which one am I installing?
[00:17:20] DA: It really depends. If you got it from Homebrew, I think you’re going to get current maybe, which would be right now it would be 15. But only if you specify that you want the maintenance version, you’re going to get maintenance.
[00:17:32] SY: So how does the release process work? Is it like there’s a new feature, there’s a new release, do you kind of wait to collect a bunch of features? Is it like a big release? How does that work?
[00:17:46] DA: So Node follows SemVer release procedures. We have major releases every six months. And so the releasers will say, “Okay, we’re taking all of these new features and we’re putting them in this new version of Node.” So at the end of October, it was 15. So for instance, a big one that came out of Node 15 was that it was going to be bundled with NPM 7, which was something that I think a lot of people were waiting for. NPM 7 comes with workspaces, which is a highly anticipated feature. And there’s a team of people that kind of decide the direction of the project. And so the features that are being worked on, the releasers, the people that do the back ports, they call them, they’re pulling those different pull requests and pieces of work into Node 15 and Node 14 and Node 12. And so they decide what goes where. And then when we release Node 15, we say, “Okay, we have all of these new features. Feel free to try them.” And then usually we let that kind of bake is what we call it, kind of has this baking period where people are trying this new version and they give it about six months and then in the spring we’ll have another version that’ll be released and then the current one will be deprecated.
[00:19:06] SY: So one thing just as a user that’s always fascinated me about software is when something like Node that is tried and true and is very established and very mature in a lot of ways, the idea that there’s all this new stuff that’s still continuously happening and every six months there’s a major release, it feels like there’s just so much left to do. But what are those things? Aren’t you all done? You know what I mean? How many more things can there be? Looking into the future, where do these ideas, these additional features, where do they come from?
[00:19:42] AD: Yeah, that’s a good question. Node is part of the OpenJS Foundation. And before, Node was its own foundation. And so they have their own conference. Yeah, I mean, there’s communities all over the world that kind of influence what they want to see from Node, because it is this big force in the development space. And the Technical Steering Committee, I think they also kind of look at other communities and look at the feedback and decide, “Okay, what’s the future of Node? What are we going to do in the next release? What are we going to do to make sure that Node lasts for the next five years, the next 10 years?” And so I think that that is with this kind of evolution of front end that’s happened kind of alongside of it. Node was never built for front end, but here we are. It’s like what you install in your computer to do front-end development. And so how do you make sure that that’s sustainable?
[00:20:38] SY: What are some of your personal favorite features of Node?
[00:22:23] SY: When would you not want to use Node?
[00:22:26] AD: I don’t think you can do any AI with Node, right? I say that now. But I guess in all seriousness, I think there’s a time and a place for it. I think if you’re looking for something that’s a little bit lower level, that’s maybe something that you want that statically typed, that has maybe a slightly more stable kind of release process, you might want to be looking at something that doesn’t release at all, like C++ or something or something like Rust, which guarantees that it’s always backwards compatible. So those are both lower level languages. One obviously is older than the other, but I think Node is really good for web servers.
[00:25:14] SY: Coming up next, Danielle talks about her role as Director of Women Who Code New York City and how folks can get involved themselves after this.
[00:25:35] Explore the Mysteries of the Pythonic Temple, the OSS ElePHPant, and The Flame of Open Source all while learning the tools of software development with TwilioQuest. Become an operator, save the cloud. Download and play TwilioQuest for free at twilio.com/quest.
[00:25:54] New Relic knows that the planet needs our help. That’s why they’ve partnered up with our team at DEV to host Hack the Planet. From now through February 28th, you can take advantage of their free tools to build a climate change monitoring app with the power of software observability. It’s a great chance to win cash, community bragging rights, swag from New Relic and DEV, a tree planted in your name, and other prizes, too. Learn more about the Hack the Planet Contest on New Relic’s dedicated community hub, therelicans.com. The Relicans is your place to connect with other developers. Meet the team behind New Relic’s software monitoring platform and show off the app you built for Hack the Planet. That’s therelicans.com. Happy coding.
[00:26:43] SY: So I want to take a moment to talk about your role as Director of Women Who Code New York City, which is pretty cool. I’m curious, I feel like we talk about women in tech all the time and always talking about how there’s a big problem and we need to address it and we need to really improve the environment for women who are in this industry. And I’m wondering from your role as director, what are the ways that you found that actually work?
[00:27:07] DA: Oh, man. Well, this year has been, I mean, there aren’t words. There doesn’t need to be any explanation because I think everyone knows this was difficult, especially being in a city like New York where everything was in person. If you go to a Women Who Code event, you expect to network, you expect to learn, you expect to hear some great talks and maybe find your next job. And so just with all of that kind of cut out, it almost seems like we didn’t have a community anymore, but we figured out how to take it online. And I think that we really had to look at, “Okay, what made Women Who Code Women Who Code? And what made it so special in New York?” And it was really that networking aspect and the content. We have some of the best tech companies in the world that are based in New York. And so how do we really carry that over online? So that’s what we had to kind of figure out. We took a lot of our members on Slack and we’re constantly encouraging people to join. We started trying to get people more engaged, looking for content to give them, looking for people that would speak at online events, holding different panels online and talks. It’s actually easier to plan these events online because you don’t have to have a physical space for them. So that was really great. But I think the most difficult part was navigating this kind of community and making people feel like they’re still part of a community and they can still meet people. They might be talking to their next coworker. That was a big responsibility because we didn’t want to see it die.
[00:28:49] SY: So how can people join and get involved, especially during these very strange, very difficult times? How can people be a part of Women Who Code?
[00:28:57] DA: So you go to WomenWhoCode.com. And Women Who Code, first of all, has chapters all over the world in every continent except for Antarctica. And all of these chapters have all taken their events online and we have an ongoing list of all of the chapters. So if you go to WomenWhoCode.com and you go to the Digital Event, you’ll just see all of the events there. Women Who Code NYC, we have all of our events on Meetup. Then if people wanted to volunteer, they would be able to email Women Who Code HQ and then they will put them in touch with their respective city chapters. If you wanted to speak, each chapter does that differently. For us, we have a PaperCall. If you look for Women Who Code NYC on PaperCall, you’ll find us. We have just kind of like a general events submission page that we use to promote events.
[00:30:02] SY: Now at the end of every episode, we ask our guests to fill in the blanks of some very important questions. Danielle, are you ready to fill in the blanks?
[00:30:08] DA: Yes.
[00:30:09] SY: Number one, worst advice I’ve ever received is?
[00:30:13] DA: Oh, okay. The worst advice I’ve ever received is do not pursue computer science.
[00:30:21] SY: Tell me about that one.
[00:30:22] DA: So I was having a discussion. This is before I decided to go to the bootcamp and before I decided anything about kind of doing the career transition out of advertising, I wanted to go back and get my master’s in computer science, which I actually am doing now. And I was telling a friend and he was just like, “You’re not going to use that. You’re not going to use that. I know so many people that have tried to do that and it doesn’t do anything.” And I just remember getting so mad. Because I was thinking, “Who do you think you are?” So that was a really frustrating conversation because it was a really good friend. We’re not friends anymore.
[00:31:06] SY: Yeah.
[00:31:07] DA: That was frustrating.
[00:31:10] SY: Number two best advice I’ve ever received is?
[00:31:14] DA: Don’t wait for projects to come to you. Always look for projects that you could be working on.
[00:31:20] SY: I like that one. Is there a good example of that that really turned out well for you?
[00:31:24] DA: So at my last job, I asked for a project that I wanted to work on, and it was really cool. I had to create a service that interfaced with some of the fulfillment center machinery, and it was using different protocols. It wasn’t like web interfaces that we were dealing with. It was lower level. It was transport network layers. And so I had to create services to interface with these, with scanners and printers and other machinery. And it was really cool because it was really successful. I actually wrote it in Ruby and it was fine and it turned out really well. And I got to kind of compact that up into a conference talk. And I kind of traveled around the world and talked about how I created the service and with my little printer and a scanner that I would show people and be like, “This is what I did. And look, I can just show you right now how I’m talking to this printer using TCP requests and sending its packets.” It was really cool.
[00:32:26] SY: Yeah. Oh, that’s neat. That’s really cool. Number three, my first coding project was about?
[00:32:31] DA: So this is so embarrassing, but I created a Lizzie McGuire fan page.
[00:32:36] SY: Oh, that’s amazing. I love that. What did it look like? Do you remember?
[00:32:44] DA: Not really. It was probably very pink and I remember there was like an online community of people who were fans of the TV show. And we all used to link to each other and we’d use the graphics to make cool images and I would use using like Photoshop and eye frames and HTML tables. I mean, I’ve no idea where it is on the internet. It could still be out there.
[00:33:08] SY: I hope it’s still up.
[00:33:10] DA: Yeah.
[00:33:10] SY: Oh, that’d be so much fun. Very cool. Number four, one thing I wish I knew when I first started to code is?
[00:33:17] DA: Don’t be afraid to ask questions. I was terrified of asking questions when I first started and it didn’t matter if it was a question now, a question later. I think that even if you’ve let things kind of sink in and it takes you awhile to get up the courage to ask a question about something you do have, yeah, just do it. It doesn’t matter. Just take your time. No one’s going to figure you out or anything.
[00:33:45] SY: Yeah. Absolutely. Well, thank you so much, Danielle, for joining us today. Really appreciate it. This was great.
[00:33:51] DA: Thank you. Yeah. I enjoyed this.
[00:34:00] SY: This show is produced and mixed by Levi Sharpe. You can reach out to us on Twitter at CodeNewbies or send me an email, firstname.lastname@example.org. Join us for our weekly Twitter chats. We’ve got our Wednesday chats at 9 P.M. Eastern Time and our weekly coding check-in every Sunday at 2 P.M. Eastern Time. For more info on the podcast, check out www.codenewbie.org/podcast. Thanks for listening. See you next week.
Thank you to these sponsors for supporting the show!