So, when we think about programmers, you know, the stereotype is, you know, a programmer is a machine that turns coffee into code, you're hunched over your keyboard late at night, furiously pounding away and trying to build something. And in the same way, I think that when people think about maintainers, it's kind of like a vending machine. And, you know, in the same way that programmers do a lot more than just write code. We're having discussions in Slack channels and GitHub issues. We're planning out architecture, or figuring out how to write loops and YAML or something like that.
And so, in the same way, maintainers do a lot more than just write features and fix bugs. And it turns out that a lot of what we do actually has to do with people. Now, with open-source, there's really this big dichotomy that exists. On the one hand, there's the open-source license. And license is basically boiled down to here's some code, you get to use it for free, and if it breaks, it's not my fault. That's on you. But on the other hand, when you publish a package or a library, there's sort of this community expectation that's very implicit, and it's this idea that if I've made this project, I have to maintain it. And that people expect me to respond to issues and fix bugs and keep it maintained. And that's not in the license, but that is very much in the culture that we've built around open-source.
So, what is actually a maintainer? There was a very good quote from Artem Zakharchenko, who's the creator of MSW. So, maintainer is a person who maintains a library, and maintains a library. And maintainer is a person who is a designer, dev advocate, tech support, salesperson, community manager, tech creator, and a human being all at the same time. That is a lot of different hats to wear. And for a lot of libraries, there might only be one person maintaining it, which is why we have the classic XKCD illustrating the Jenga tower, that is modern technology, and that is what we want.
Now, at one point, I was out looking for some possible job situations a while back. And someone sent me a job opportunity for a developer relations position. And I looked at it, and I was very confused. I'm an engineer. I want to spend my time writing code. Why would anyone think that I'm looking for a dev rel position? And someone pointed out that I've basically been a dev rel for three years. And I was like, well, that's kind of where I got started. It's kind of like, oh, okay. And if you think about, like, I looked up some definitions of what a dev rel does, and it's things like technical content creation, public speaking, community engagement. That actually does sound a lot like what a lot of open source maintainers do. So, for a bit of context, here are some recent download numbers for some of the major libraries in the React ecosystem, which are React, Redux core, Redux toolkit, React router, React query.
Comments