[S6E19] What Could Have Been
Click Here ---> https://urlca.com/2tlFp9
If this episode had aired earlier in the season, I think I could have felt differently, but after last week and with what we speculate to be coming, this episode was so out of place and entirely too lighthearted and disconnected.
Laurence Bradford 3:56Wow. So you've been working. Are you Working I guess on high school, but programming for quite a long time then if you started when, while you're at 10 or 12 years old Yeah. Wow, that's really awesome. And how did you get I don't know if that's the right way to phrase the question. But I would love if you could talk a bit about how you got into open source and what that means. So bear in mind, a lot of folks listening to this show are brand new to technology. And some maybe have only been learning about it for a few weeks. So you could tell me about that'd be great.
Laurence Bradford 5:32And how long has this been Like, around for like it again, if that's like the right word to phrase, I'm sure people have been collaborating on different kinds of software for ages. But what like, I don't know. Like, when did it become more popular or more common, I guess
Safia Abdalla 5:52Yeah. So open source software has been around since forever. You have pieces of open source software from the 60s and 70s. I would say more More recently, it's gotten popular with the advent of tools like GitHub comm, which is often described as a social coding platform. I think this was a really monumental technology because it gave people a place to share their code and to collaborate on it in one centralized location. So I think the advent of those kinds of technologies was really helpful. And I think in general, just the emergence of the web and the internet as more accessible technologies for some people kind of brought about the advent of open source because now you had a way to communicate and interact with people who, you know, didn't just work at the same company, as you are studying the same computer science department at university, maybe you were a programmer at one university collaborating with a software engineer at a different company. And the internet kind of opened up these opportunities where people didn't have to be in the same space in order to have capital. Hold conversations and to build software together. So I think it was the really the internet is, is what did it. And of course the internet made a lot of important things happen in technology. So that's I think that's fair to say.
Safia Abdalla 9:41You know, I just have to put in time and I can do it. And I've been doing open source ever since it's been about oh boy, like five years now. Sometimes people will joke that I've spent a fourth of my life or more in open source. But yeah, that wasn't Kind of the catalysts for me is I had this personal goal of contributing to open source that was tied into my kind of other goal of starting to build my brand as a software engineer. And then I just got hooked on it. So it's such a very, it was a satisfying experience. It's always great to collaborate and work with people and form a network of other software engineers that I work really well with to understand how I work that, you know, if I have a really interesting idea, I can go to them and they'll hear me out and help me out with it. It's it's great to have that network.
Safia Abdalla 10:58Yeah. So I would say I think I went to the event. Gosh, I had to dig through my brain. I think I went to the event it must have been the winter of my freshman year of college. And then the I spent like the winter in the spring, you know, blogging and I had found like a conference to speak at and some meetups to speak out. And then the summer is the summer after my freshman year of college, I was doing an internship in the Bay Area. And that's when I did the open source bit. So it must have been maybe, I think it's safe to say like, five to six months after that conference is when I got around to submitting my first pull request in open source.
Safia Abdalla 12:01Yeah, it was for a project in the Python ecosystem. It was called Pandas. It's essentially a data analytics tool. I was familiar with that project because I had used it during my part time job during my freshman year of college. So I was already familiar with it as a user. And the other thing that was really appealing about that project is they did a really good job of labeling all of their issues in their GitHub, their issues, essentially a list of bugs and features that they need to implement. And they had a really great labeling scheme where they kind of labeled things by how easy or hard it was, how much time they expected it to take. And then what category it was in, so it was really easy for me to essentially find an easy bug that would not take me a long time to do and to fix it. And those are really great because they tend to be the kinds of things that are just small enough that The maintainer of the project might not have enough time to do something so small, but small enough that you know, a new contributor or someone who's never been working in open source can tackle them. So, that's how I got, I chose the pandas project as the first project that I submitted a PR to.
Laurence Bradford 13:18Nice, nice. So, so, okay, so I know and I, I feel this way, and I know, we can just feel this way that contributing to an open source project. Well, first of all, you have to like understand the entire right like if you're using GitHub and know what all these different terms mean. And once you're like up to speed with that, understand how it works. I feel like there's a lot of, I don't know, maybe imposter syndrome like like, like being nervous too. Because what if you're wrong, right Like what if you suggest something What if you're wrong, what steps to take all that How would you recommend to someone who's like somewhat new, like go about educating themselves and learning like how to contribute and like the proper steps to take.
Safia Abdalla 14:01Yeah, so I would say, if you're interested in contributing to open source, one of the first things I would do, and it's a little bit counterintuitive, is find a project that has a good culture. And what I mean by that is find a project where the maintainers are going to be supportive, and provide good mentorship, where the community is going to be tolerant if you make a mistake, or mess something up and kind of aim to work in that kind of a project. And I say this because the reality is, we all don't know everything. Even now that I've been doing this for almost five years. I don't know everything about open source or GitHub or things, the technologies that I work with. So finding a place where it's okay for you to make mistakes, and it's okay for you to learn is the first most important step. I would say that there are some projects that are not as tolerant of learners as others.
Safia Abdalla 18:57There's also weekly recorded video hangouts where we provide updates on what we're doing and what we're working on and interact, we will post those to our YouTube channel so that folks who are interested in what's going on in the project can go to the YouTube channel, watch those weekly uploads and kind of get a sense of what's going on. So there's a ton of different ways to communicate. We try and keep all of it digital, oh, I will add. We also do have some in person, we call them sprints where maintainers and contributors who can will fly out to a single location for a week and we will all be working on the project at that location physically together for a week. So yeah, there's a ton of variety in the way that people communicate and open source from text base to video to audio to in person. It's kind of whatever is the most appropriate for what we're trying to do.
Safia Abdalla 23:48Yeah. So I do not have a couple of people on who do work on open source full time. For some of them. What they will do is they will work on it full time and they will have some sort of patronage page. I don't know if If you're familiar with Patreon, it's essentially a web service where you can donate monthly to an individual. And what these open source maintainers will do is they will work on open source, ship all these really useful open source tools that tons of developers are using. And then those developers will donate to them on a monthly basis. And that's their income source. As they kind of live off those monthly donations from individuals who use their technology.
Laurence Bradford 25:50Got it. Okay. And the private company one Yeah, I was, you know, aware of that too, but Okay, so that and then there's the people with the Patreon pages. Were there Yeah, getting money through donations that way. Okay, that's really cool. So how long have you been a maintainer Like, how long did it take you to go from being a contributor to open source to Yeah, becoming a maintainer of a project
Safia Abdalla 27:15So you can go in and review code, post comments and things like that. So we've like completely reduced the barrier to being a maintainer. And personally, I think, in a lot of ways, I don't feel like it's for project it's for projects that do have a culture where there are lots of really arbitrary barriers that are placed into what it means to be a contributor to becoming a maintainer. It's not super healthy. My view on it is if someone's enthusiastic about something and they really care about the software, and they really want to help maintain it and keep it going. Then they there shouldn't be anything that gets in the way of that. So for my person, like experience I was that way I was enthusiastic, I really wanted to do it. And that opportunity was given to me. So I like to give that opportunity back to people. Um, if you really want it home, you should have it. 59ce067264