Aisha Blake interviews Principal Software Engineer at Microsoft, Board Director of The Rust Foundation, and Lead Editor of the This Week in Rust newsletter, Nell Shamrell-Harrington about the patterns and systems that we all use to write software effectively.
She also talks about her involvement in The Rust Foundation, community, and how Rust is infiltrating the gaming community and web development (in an awesome way)!
Should you find a burning need to share your thoughts or rants about the show, please spray them at email@example.com. While you’re going to all the trouble of shipping us some bytes, please consider taking a moment to let us know what you’d like to hear on the show in the future. Despite the all-caps flaming you will receive in response, please know that we are sincerely interested in your feedback; we aim to appease. Follow us on the Twitters: @PolyglotShow.
Jonan Scheffler: Hello and welcome to Polyglot, proudly brought to you by New Relic's developer relations team, The Relicans. Polyglot is about software design. It's about looking beyond languages to the patterns and methods that we as developers use to do our best work. You can join us every week to hear from developers who have stories to share about what has worked for them and may have some opinions about how best to write quality software. We may not always agree, but we are certainly going to have fun, and we will always do our best to level up together. You can find the show notes for this episode and all of The Relicans podcasts on developer.newrelic.com/podcasts. Thank you so much for joining us. Enjoy the show.
Aisha Blake: Hello and welcome to the Polyglot podcast. My name is Aisha Blake, and I'm here with Nell Shamrell-Harrington. And we are here to talk about the patterns and systems that we all use to write software effectively. Thank you so much for joining me.
Nell Shamrell-Harrington: Thank you so much for having me. It's great to be here.
Aisha: I'm so excited to get into this conversation because part of the work that I've been doing as I've gotten into this role as part of the Relicans for New Relic is that I am attempting to learn Rust for the first time.
Aisha: Yeah. So I've had a really great time. I'm partnering with one of my co-workers also on the Relicans to stream this process of learning Rust from the ground up. And so I was excited to see that you have been named to the board of the Rust Foundation. And I just feel like there's so much that leads up to some of the leadership positions that you've held over the years. And I'm just really excited to hear more about your story.
Nell: Sure. And may I first say I'm the lead editor of This Week in Rust as well. I would love it if you would submit your streams to the newsletter.
Aisha: Ah, that's a great idea. We'll totally do that. [chuckles]
Nell: That's awesome.
Aisha: So I guess let's maybe start with Rust, and we'll see where it goes.
Nell: That sounds fantastic.
Aisha: But what first drew you to the language?
Nell: I was working as a software engineer mostly in Ruby at a company called Chef Software, which the Relicans have at least heard of. It was recently acquired by progress.com. But when I was there, they came out with a new product called Habitat, which was very much a distributed systems framework. And I wanted to work on it. I wanted to not only use it, but I also wanted to work on the Habitat software itself, and it was written in Rust. So I sat down with the lead developer of Habitat at that time, Jamie Winsor. I had coffee, he had a Red Bull, and I said, “All right, I want to work on this project. I want to learn Rust. How do I get started?” So he pointed me toward The Rust Book, which is available free online at the Rust language site. And through that, I was introduced to the fantastic, global Rustacean community. And so I started learning Rust to work on Habitat. I stayed with Rust when I saw that it's a community where personal maturity and empathy are as important, even possibly more important than technical excellence, which can be hard to find on internet communities. [laughs]
Nell: That can be hard to find on the internet. And I was never called a noob. I was never condescended to; I still never have been on my Rust journey. And I thought, okay, this is a very cool language. Number one, it handles memory so elegantly, and I feel so much safer programming with it than I did with Ruby or with other languages. And there's a fantastic well of support available for learning this. And something I've loved as being lead editor of This Week in Rust is I see all the articles come in, and Rustaceans are very committed to teaching other people about Rust. When they learn something, they write it up, or they do a YouTube video about it, or they stream it even. And people can learn from their experience. So that is what led me to Rust. And it turns out there's a lot of former Rubyists in the Rust community as well.
Aisha: Yeah, absolutely. My co-worker who streams as ChaelCodes is, in fact, a Rubyist. And it's so funny; we independently decided that we were going to learn on stream. And that's absolutely been my experience, at least; the Rustacean Twitch streamers of the world have been so welcoming. There's always at least one person in the chat who knows what they're talking about and is able to help guide the learning process. And it has been really wonderful. It's refreshing.
Nell: Absolutely. And where the Foundation comes in is after I was at Chef, I moved to Mozilla to work on Rust full-time. Oh, I should say I'm at Microsoft now. And when I was at Mozilla, we were starting the work of creating an independent Rust Foundation because a lot of the people who worked on Rust worked at Mozilla, and there was an understandable fear in the community of what if Mozilla lays all these people off? Where does the project go then? Well, that happened. I was one of the 250 people, and almost all of the Rust engineers were laid off as well at once. And that accelerated the need for an independent foundation to ensure one– that all the really big companies or even smaller companies who are supporting Rust have a place they can write a check to donate to. And two, there's an independent entity charged with stewarding the language with not necessarily making tactical decisions about the language, though I do that as a member of some of the technical teams with Rust, but that they have the responsibility to make sure the language continues to exist, moves forward, and that we support the maintainers who are the real people who keep the language evolving and getting better for everyone.
Aisha: Absolutely. So we talked about your initial interest in the language and then about your part in the stewardship of the language itself. What's the in-between? How does one go from I'm really interested in this tool that uses Rust to I am going to steer the ship; I'm going to help steer the ship?
Nell: It happened on Twitter, oddly enough. So one of my last big projects at Chef was Chef made a decision to do all of its primary product code. It originally had done some of that in an open-source fashion, some of it in a closed source fashion. They decided they wanted to do all of it in an open-source fashion. And my boss at the time came to me and said, “All right. So of the 80 engineers, we've got maybe 15, 20 who have a lot of experience with open source. All the rest of them are probably going to freak out when we announce that we're making this change. I need you to figure out how to make it work.” And part of that was forming a cross-functional team. We tallied up all the open-source projects that Chef had at that point. It was over a thousand that were for some meaning they were active; they were not archived. And we realized okay, we need a way to govern these on a technical level as well as a less technical. I don't like the word non-technical because it's all technical or more on a social communications level. We can't do this uniformly across a thousand projects because they're so different, but we need to do it consistently.
So I formed a cross-functional team. We worked with the Chef engineers. We worked with the larger Chef community, and we eventually came up with what we called The Book of Open Source, which was basically a guide for practices for doing software in an open-source fashion and emphasizing that you need to do more than just put the code on GitHub; there's much more to it. I tweeted about that. And one of the Rust Core team members at the time, I believe it was Aaron Turon, who tweeted back at me and said, “Can you help Rust with this? This is something we're struggling with. And we really could use some additional perspective on it.” So I joined the Rust Governance Working Group, and I was on that for, I think, six or seven months. And that directly led to me being asked to apply to Mozilla and then receiving an offer from Mozilla. So I was getting involved with one of the smaller groups and meeting all the people in leadership at Rust. I'll tell you upfront that, like me, they're just people. They are wonderful people. They're not rogue geniuses by any means. They're very good humans. [laughter] And so becoming involved in a smaller part like that led to the bigger opportunity to come to Mozilla, which my experience there working on various parts of the language led to the ability to be one of the people steering the ship. And I think the reason for that is I built up trust each step of the way, trust in a smaller working group, trust working on several teams and groups. And that eventually allowed me to form enough trust to have a place on the board.
Aisha: That makes a lot of sense. It's so important. And I think that it is also something that some folks tend to forget how important building that trust is in not only building community but also in building a product or, in this case, a language. They're all interconnected. I love that there was that Twitter connection. I feel like more and more (hopefully, we're limiting our in-person interactions) the opportunity to make those meaningful connections online, which has existed as long as the internet has been around; I think that it's a lot more accessible now. I think that more people are taking advantage of it, and it can lead to some really cool things.
Nell: Absolutely. I find social media, as much it's ridiculous and sometimes infuriating; if I treat it as a form of correspondence, it's fantastic for that. I have met people once at a conference and then made very deep connections with them afterward through talking on Twitter, through talking in other forums even though we'd only met face-to-face once or in many cases now, we've never met face-to-face. There is something to be said for places that allow that meaningful human interaction.
Aisha: Yes, for sure. What are some ways that you've been able to connect with the Rust community at multiple levels?
Nell: The good thing about the pandemic, if there is something good about it, but one of the effects of it is all Rust meetups, almost all of them at least are online now. And in This Week in Rust, we list all of them, or at least all of them that we know about, every week. And all you need to do is click a link to join a Zoom at the time. So I've been to a meetup in Dublin. I've been to meetups in other places. And it's wonderful to connect with other Rustaceans face-to-face. I mean, face-to-face most of the time but also in real-time. And that has been a great way to get to know the people who are working because there are a lot of places that Rust is used, a lot of different contexts. It's not just systems programming anymore. And getting to hear how people are using it, getting to hear what people are building from it and what they need from it that has been fantastic. And one of the best ways to do that is attending the Rust meetups whenever you can. And since they're all virtual now, it's much more accessible than it was before.
Aisha: Yeah. One of the things that has definitely piqued my interest on Twitch is this concept of game development in Rust, which seems like a thing. [laughs]
Nell: It is.
Aisha: It's something that I have been interested in personally, learning what goes into game dev. And so this has been a really cool opportunity to combine interests. And so what are some of your favorite projects that you've seen that are maybe unusual uses for Rust?
Nell: Game development, as you mentioned, is a big one now. At RustConf 2020, we had a great talk from; I think her name was Micah Tigley, who was at Mozilla at the time at least. And she was talking about a game she created using Amethyst, which is a game engine written entirely in Rust. And someone asked me at a meetup, “You know, I've seen games written in Rust. They're mostly two-dimensional, or they are three-dimensional ones.” I don't know the answer to that. I know there are some questions around compatibility with GPUs because those libraries are very, very C++ heavy. But I think there is work being done in it.
And then the other context which I don't personally have a lot of experience in is in embedded devices, Infrastructure of Things. People like how fast Rust is. Memory is limited on your IoT devices, [chuckles], and they like the way that Rust handles it. So those are the big three that I can think of off the top of my head, but I'm certain we're going to see more of them coming out. Also, at RustConf, we had a talk about someone who's using it in biological computing and using it to do things like simulate viruses and things like that. There are so many cool applications out there.
Aisha: Yeah, that's wild. I was actually first introduced to Rust through web development.
Aisha: Like you said, the Toast framework that Chris Biscardi is working on. And so I saw him learning Rust. I saw my friend, Laurie Barth, learning Rust. And I was like, ooh, that looks like fun. And at the time, there was so much going on that there was no space in my brain for Rust, but I'm excited now that I get a chance to dig in a little bit. Hopefully, contribute back some little projects.
Nell: It's been fun. I took a C++ course after I learned Rust. I didn't have a lot of experience with C++. And once I started doing C++, I saw all the things that Rust prevents you from doing, which is really, really helpful. And I also learned what a shallow copy is. And we were talking about musical theater and such in the pre-show, and I always want to sing the song Shallow from A Star is Born whenever I make a shallow copy in C++. [laughs]
Nell: Oh, I would love that.
Aisha: [laughs] For anyone who is not aware, is a musical tech conference that I and some friends are absolutely going to put up whenever it is safe for us all to meet in person again. There will be a literal stage, musical and theatrical performances. It's going to be beautiful. And hopefully, we will have Nell there.
Nell: I would love to.
Aisha: To sing songs of Rust and whatever else you like.
Nell: Yeah. And I've got some recommendations for other people you might want to invite too.
Aisha: Perfect. [laughs] What about your work now as a member of the board? What are you most excited for?
Nell: Something the Executive Director of Rust Foundation Ashley Williams has said is Rust makes systems programming accessible to people who normally wouldn't feel welcome in systems programming. And what I'm hoping we as the board can do (And this isn't an official announcement by any means. I don’t have the authority) what I'm hoping we can do is fund more educational initiatives. There are a few colleges and universities; Stanford is one of them that are starting to teach Rust. But I would love to go -- I went to a small liberal arts school. I'd love to go to the small liberal arts school and introduce people to Rust. I'd love to go to universities that usually aren't on the list that the elite tech companies usually want to draw on and introduce them to Rust. I think the more perspectives we have, the more use cases we have, the better the languages. So I'm hoping we can fund some of those educational initiatives and spread the good word of Rust beyond its current audience.
Aisha: That sounds fantastic. I would love to see a curriculum that we could then take out to -- I've done courses for kids as young as middle school and really break it down and get them going and see if something sticks. It's not about getting people in as much for me as it is presenting an opportunity.
Nell: I think that's great. One of the reasons I didn't major in computer science, I did take computer science coursework, but I majored in theater, is the computer science courses at my university were very geared toward people who already had programming experience in high school. My high school didn't offer that or offered very, very little of it. I took all the computer classes they had, but they were very applications-focused on things like spreadsheets, and Adobe Illustrator, and Photoshop, which is great. But I didn't have that exposure that I think would have really allowed me to excel. Even though I got through them, I didn't feel like I really excelled in my computer science courses in college. So I think that would be a great way to help set people up for success.
Aisha: Absolutely. I had that experience as well. I have an Information Science degree, and there were definitely moments where I was like, did I miss a semester of what I was supposed to have taken? [chuckles] I don't know. And so yeah, coming to Rust, I'm recalling some of the things that I learned so long ago that really didn't connect. And it's so helpful to see some of the resources that are available and things like the Rust Programming Language Book, Rustlings, and all of the content that folks put out, as far as blog posts, YouTube videos, and even Twitch streams and even down to the error messages.
Nell: Yeah, the compiler is a guide. It feels like you're fighting it when you first start out, but then you realize no, it's a guide. It's guiding you where to go. And the error messages are very empathetic, which is good. It's not telling you, “Something is wrong, fix it. We're not giving you a clue as to what's wrong.” The best kind of friend is the one who tells you when you're doing something wrong. And they not only do that, they tell you how to fix it or what you need to do better. It's the same thing with the compiler, for the Rust compiler, at least.
Aisha: Yes. I've definitely found that to be true. There is a certain amount of panic that sets in when you realize you've done something wrong. And in my case, that includes realizing you've done something wrong in front of at least a few dozen people. [laughs] And it's refreshing. I'll probably keep saying things about Rust are refreshing. [laughs]
Nell: I like that.
Aisha: It’s refreshing to see a calm message that tells me, “Hey, something's up here; perhaps you meant this. Doing this will probably fix your issue.”
Nell: I think we're seeing a shift. I hope we're seeing a shift, at least from software developers treating their users with contempt to understanding no; you need to provide a path and guide people along the right path. Expecting people to do a 40-step process in the exact sequence, they're not going to remember that. And it's remembering that you're running software for humans. You're not just writing it for machines.
Aisha: Absolutely. So, how about your work at Microsoft? So you came on as, I believe, a Principal Software Engineer.
Nell: I did.
Aisha: What does that look like for you?
Nell: So I came to Microsoft in October of last year, and there are two main responsibilities I have, and one is to the Rust programming language, helping with its usage within Microsoft and also making sure Microsoft understands the needs of the Rust community. That's my job as a board member on behalf of Microsoft. The second application is called ClearlyDefined, and ClearlyDefined crawls the web looking for license information about open source components, collects it all in one place, and then when there's conflicting information, we see if we can determine what is most likely the source of truth. As bigger tech companies have started using more and more open-source, they have realized how badly they need to make sure the licenses for all the components they use and all the dependencies of those components are compliant with their guidelines like; a classic example is a for-profit company does not want a component that's under the GPL license, which prohibits use for profit or for corporate use, essentially. I'm badly paraphrasing that, but that's the essential part of it. So we provide a central place that people can come, know that that information is pulled. It is, in some cases, curated by humans when it's not clear what the license is. And they can understand the licensing information for their entire open-source toolchain. So that is part of my work at Microsoft as well.
Aisha: That is massively important.
Nell: It is, and we're hoping eventually to expand that to a security focus, knowing where in your giant chain of open source dependencies, you know, if there's a vulnerability in a dependency of a dependency of a dependency, you want to be able to know what that is and where we're using it. We haven't done a ton of work on that just yet, but that's definitely something we'd like to do in the future because the goal of open source in the ‘90s, early 2000s that every company, every government, et cetera, would be using open source software well, we won. [laughs] That's happened, and now we have to answer the question, okay, now what? How do we do this in a safe way? How do we do this in a compliant way, in a sustainable way?
Aisha: That sustainability question I feel like is the one that comes up for me the most often. What aspects of the open-source Rust ecosystem do you think are building towards that sustainability?
Nell: I believe the compiler has and or the team working on the Rust compiler is one example. Part of that is a lot of the initial sponsors of the Rust Foundation, including AWS, Google, Microsoft, Huawei, and others they're not just donating their money. They're putting full-time engineering staff working on just the Rust compiler. So when it comes to open-source, it's not enough to throw money at something and call yourself a good open-source citizen. We're not going to say no to the money; it definitely helps.
Nell: But putting engineering effort on it, so it's not just one person or two people working thanklessly on a project that's used by all the Fortune 500 companies, or even that's just used by a few of them. It's giving back not just with your money but also with your engineering talents. And I think that that is going to play a big part in the sustainability of the Rust project.
Aisha: That's an excellent point. Having the money is great, but there's only so much that a handful of folks can do without having more brains and hands.
Nell: Absolutely. If I may make a gentle plug, Microsoft is hiring for the Rust team. And if you want full Microsoft benefits and a full Microsoft salary to work on Rust full-time, definitely look us up. I'd love to work with you.
Aisha: It sounds like a pretty sweet gig, not going to lie, for all of our Rustaceans out there who are looking. I know that you have some previous experience working, again, open source non-profit, working with Operation Code.
Aisha: Would you be willing to talk about that work as well?
Nell: Sure. I found Operation Code also on Twitter. A little bit of backstory, both my parents were U.S. Air Force officers. I very much grew up in military culture. I wanted to go into the military myself very much, but I had a medical disqualifier that disqualified me from doing that. So I went into the tech industry, and I've always felt a pullback to that culture or to help people in the military because a lot of people in my generation, we went to college; we went through the financial crisis. I'm not going to say we got good-paying jobs immediately, but eventually, a lot of us found our way there. And then you have a lot of our same generation, the 9/11 generation (I was almost 17 when 9/11 happened), who went into the military, fought in the Wars in Afghanistan, served in other places. And now they're coming to the end of their military service. And when you come out of the military, that is sometimes a dangerous place mental health-wise to be in because you've had this massive purpose when you've been in the military. You've known exactly what you're doing, what you're supposed to be doing. You're connected to a larger mission. And then you have to answer the question of now what? And if all of a sudden that sense of mission that sense of belonging is lost, that can be a dangerous situation.
So I put on Twitter, “Does anyone know of any organizations that are teaching military veterans engineering skills or tech skills?” Someone said, “Oh, you should talk to so-and-so on Twitter.” That was David Molina who reached out to me, and David Molina is the founder of Operation Code. And he said, “We're working on this project. We're working on getting our 501(c)(3)funding. We would love your help in doing this.” So I started off as a volunteer; I think this was in 2015. In 2016 or 2017, I became CTO. And my role as CTO was -- one of the ways we taught was we ran several open-source projects. And my role as CTO was to not only have relationships with vendors and such, though that certainly was part of it but also to make sure our projects were set up in a way not just to be open source projects or products but to be teaching tools. Like, our corporate websites ran on Kubernetes, which is way overkill for a non-profit website. But Kubernetes is one of the most in-demand skills there is out there, so we put it on Kubernetes. We worked with veterans who are learning software engineering skills, and there are some who prefer front-end, and there are some who prefer back-end, and there are some who liked the infrastructure programming. And we want to give them real-world demonstrable experience on their GitHub profile that they can take to potential employers. And we'd have a good number of success stories along with that.
So I was a Principal Engineer at Chef Software and CTO of Operation Code at the same time. I could do that for about a year, but I realized I was burning out hardcore. I had trained a lot of people who were doing great work. And I talked to the executive director of Operation Code, saying, “I'm burning out. I have to step down in three months.” I wanted to give them some transition time. And he asked me, “Would you move on to the board and take on more of a strategic role?” And I said, “Absolutely.” And this is the most meaningful work that I've ever done—seeing someone learn, seeing them move into employment, seeing them find a community. The best part of our organization is our Slack community, which I think has over 7,000 people in it and I think maybe 3,000 who are active every month, at least. And seeing them learn from each other, learn from each other's experiences and grow and find their next mission that has been absolutely fantastic. I'm so, so glad and so proud of them and so proud to be a part of it.
Aisha: That's wonderful. I am sensing a theme here. Find out about a thing, post about it on Twitter, become the leader of the thing. [laughter]
Nell: Yeah, that happens. I've been learning to use the phrase “I can help, but I can't lead it” more often. [laughs]
Aisha: It's an important phrase. [laughs]
Nell: Yeah. I've had some mixed success on it. But yeah, that is a common theme. I take an interest in something, I learn about it, I find people who are doing cool work in that area, start contributing with them, and that eventually leads to a leadership role. I seem to be drawn to those, whether I realize it or not. [laughs]
Aisha: I can understand that tendency, for sure. Where do you see this going? Where do you see the Rust Foundation going? Where do you see Rust, the language, progressing in the near future?
Nell: Good question. On a technical note, I see async functionality in Rust continuing to expand. That's one of the working groups that I've been working with the past year or so. There's a huge hunger we're finding for async programming, or we have so many different data streams coming in from every which way now in our applications. Being able to work on them without blocking the entire application every time we have to do some functionality on one of the items from that stream I think that is going to continue to expand quite a bit, especially as a lot of cloud services…we've got the three biggest clouds in the world as sponsors of the Rust Foundation, as they want to use Rust more in their programming.
On the Microsoft side, the Microsoft Security Research Center they have been investigating Rust as a systems programming language for a while. And they posted that of all the security vulnerabilities; the research center assigns a CVE to a Critical Vulnerability Exploit; I think that's what that stands for, saying, “This really needs to be fixed, or you really need to update.” 70% of those are due to memory safety issues and likely would have been eliminated if Rust was used. In some ways, it's growing up as a language, and it's proven its usefulness. It's proven that it is a better way of programming. I occasionally get the question people say, “Well, why don't you just hire C++ programmers who know what they're doing?” Because we're human. And when you're working on millions, sometimes hundreds and millions of lines of codebases, like Microsoft has, like a lot of big enterprises have, you can’t keep track of every single thing. You need to have guide rails in place to prevent accidents from happening, to prevent people from accidentally doing something that would introduce a security vulnerability in the code. So I see it continuing to grow and continuing to be used in places where safety is really critical. I know there are people exploring Rust on automotive, which sounds really cool. I haven't delved into it too much yet, but I'm looking forward to learning more.
Aisha: I could definitely see that being very much a thing. I’m located in Detroit.
Nell: Oh, yep.
Aisha: [laughs] I'm just thinking about all of the friends in tech here who would find that useful for sure.
Nell: Detroit's downtown is fantastic. I was there for a tech conference a few years ago. Also, the tech scene is fantastic. It's awesome to see.
Aisha: Were you there for Self?
Nell: Yes. 2016, I think, 2016 or 2017.
Aisha: Oh, wow.
Nell: It was a while ago. [laughter]
Aisha: 2016 was my first conference, Self Conference.
Nell: We may have met there. Oh, that’s awesome.
Aisha: It's possible. It was my very first conference. First time I was speaking. And it eventually became the first conference I organized.
Nell: Awesome. What did you speak on?
Aisha: I think that first talk was creating safer spaces at work. I forget what I called it.
Nell: Oh, that’s great.
Aisha: But it was essentially like a D&I talk where I talked about creating essentially like a team charter that you then hold yourself to. But yeah, those were good times. That was a great community to get that start in.
Aisha: Well, hopefully, we'll have you back here for a Self Conference in the future.
Nell: I'd love to.
Aisha: So before I let you go, I'm interested to know how you would suggest folks get into open source, get involved in open source right now if they're interested.
Nell: Sure. So I find one of the fears I had when I got started with open source, and one of the fears a lot of people have is that they'll submit a pull request, and the maintainer will be mean. And that's not an unfounded fear, but there are things to look for and see if there's a healthy culture community around a project. Find a project that you use or that you've used in your learning or in your work, and check out the issues page on its GitHub repo. Something to look for is if there are labels like good first issue or mentoring available. That shows that it's number one, a healthy project, and two, they are dedicated to bringing in new contributors. They're not content to only be working with the contributors they have that have all the contexts in their heads. That's a good place to look. Second is if you use a project, you hear a lot about providing documentation, and that is correct. That's one of the most valuable pull requests a maintainer can receive but providing documentation from the perspective of a user is really, really helpful because as a maintainer, if I've been staring at the code or staring at the project for so long, I quickly lose the perspective of someone who's coming in and using it for the first time or even using it for the 10th time but doesn't have all the contexts that I have. So one of the things I did early in my career was I would write up tutorials and then submit them as pull requests. And soon as they put them in the docs folders, as soon as they'd add them to the README file, that's a great way to get started. And that's a great way, again, to get to know the project and to get to know what it's like to interact with the maintainers of the project, so I would definitely recommend that.
I know there are meetups around Rust, of course. If you want to get started with a Rust project, come to a Rust meetup. Look for those signs of healthy communities. I think that's a great way to get started because you can't learn everything about what it's like to contribute to open source from the documentation that's out there, from books that are out there (you can learn a lot), but that's because it changes so much. When you're learning a new language like Rust or learning any new technical skill, you learn 20% of it, I would estimate from things like books, tutorials, et cetera. I've heard that estimate, and I agree with it. The other 80% comes from doing. And if you're not feeling comfortable in the doing part yet or getting into the code part yet, documentation can be a good way to start to bridge that gap, to get more comfortable with how the project is used. And the thing about open source is you don't have to understand the entire project to contribute to it. You only need to get to know one small part of it where the contribution needs to be heard. And projects with issues that are labeled good first issues, often the ones they label that good first issue, are the ones that are confined to one specific part of the project. So that would be my advice. That's a good way to get started.
And also, if there's a language that you've learned that you like, find where people who use that language gather and say, “I'd like to get started contributing. Are there any projects that would welcome a beginner with the language or a beginner with contributing to your project?” And you'll probably get some good responses. You might get some snarky responses too, ignore them; wherever there's internet, there's going to be snark. And if you feel a revulsion to it, feel that emotion for a moment and then, as much as possible, let it go. Allow yourself to feel it, then move forward; that doesn't have to stop you.
Aisha: I love that. That's super solid advice and particularly the point that you don't have to know everything.
Nell: No one knows the entire Rust language codebase; it's way too big. No one knows all of Rails or other ones. We specialize in specific parts of it. And again, with coming to Rust, I specialized in a specific part of it, which was the open-source governance aspect of it, both the technical and communications part and then that grew into something bigger.
Aisha: Awesome. Well, thank you so much. I have so enjoyed this conversation.
Nell: Thank you so much for having me.
Aisha: Absolutely. So before we head out, where can folks find you?
Nell: As noted, on Twitter @nellshamrell, at GitHub nellshamrell is my GitHub username; on LinkedIn, I’m the only Nell Shamrell or Nell Shamrell-Harrington on there. Those are good ways to get in touch with me. And yeah, I hope to be returning to the conference scene when things open up more. I've been doing some remote presentations, which are better than nothing, but I'm a show woman at heart, to be honest. And there's nothing like being on a real live stage presenting. So I miss that very much, and I'm looking forward to returning to it.
Aisha: I'm with you. I'm so with you. Awesome. Well, thank you all so much for tuning in. A couple of reminders, FutureStack is coming up; the Relicans, my team here at New Relic, are going to be organizing a whole section called Nerd Island. I am very excited about it. We have some really, really wonderful folks who are going to be presenting. We've got Sam Aaron with the Sonic Pi. We've got Kelsey Hightower coming to speak to us, and we've got Andy Baio, who is going to be presenting Skittish for the first time on such a large stage. So I'm excited to see how that goes. And, of course, we will be there streaming. Thank you so much for tuning in. Be sure to check out our other podcasts, Launchies, which is a podcast for developers with non-traditional backgrounds and as well as Observy McObservface, which is about observability. Thank you so much. And I will see you soon.
Jonan: Thank you so much for joining us. We really appreciate it. You can find the show notes for this episode along with all of the rest of The Relicans podcasts on therelicans.com. In fact, most anything The Relicans get up to online will be on that site. You'll also find news there of FutureStack, our upcoming conference here at New Relic. We would love to have you join us. We'll see you next week. Take care.