Utkarsha Bakshi - Open Source: Why, How and When?
Introduction to Open Source Software: The Why, How, and When
Welcome everyone! My name is Karha, and in this blog post, we will delve deep into everything open source-related. As a software engineer at ByteRender, I've had some fantastic experiences working with open source software and I'm excited to share with you. So without further ado, let's hop into the "why", "how", and "when" of open source software.
What is Open Source?
Open source is a community-driven software model. The definition of "open source" might slightly vary, depending on the licenses a software is using or the level of community participation permitted. However, the idea at its core remains the same. Open source software is publicly accessible and open for modification.
Common Practices in Open Source Development
Although there's no strict definition or rigid requirements, open source software development often follows certain established good practices such as:
- Treating users as co-developers
- Encouraging early releases and feedback
- Having frequent integrations
- Maintaining a highly modular code
This helps in creating a collaborative and flexible software development environment.
Common Open Source Myths
Despite its popularity, several misconceptions about open source cloud people’s understanding. Allow me to bust a few myths:
- Myth: Open source is always free. Truth: Its cost depends upon the license of the open source software.
- Myth: Only someone with a strong tech background can contribute. Truth: Anyone with a skill to offer can contribute.
- Myth: Open source has restricted licenses. Truth: Open source can have various patents or licenses.
- Myth: Open source quality is not enterprise-level and is less secure. Truth: Many enterprises use open source software for various purposes.
- Myth: Open source contributors are not paid. Truth: Funding does exist for contributors in some cases.
Impact of Open Source in the Software Industry
The impact of open source software is immense and extends to our everyday lives. Beloved platforms like VLC Media Player, Firefox, Chromium, and Android all stem from open source projects. Large organizations like Microsoft lead the way in open source contributions.
Web developers often use open-source frameworks like React, Vue, Angular, and more. Their wide-scale adoption signifies the extensive reach and influence of open source.
Contributing to Open Source
Why Should You Contribute?
Contributing to open source offers several benefits including:
- Improving your existing skills.
- Building your professional network.
- Showing off your skills and building your professional profile.
- Learning and growing with mentors.
- Getting satisfaction from giving back to the community.
- Earning extra money in some scenarios.
How Can You Contribute?
Contributions to open source are not just code-only. There's room for diverse skill sets. You can contribute by:
- Improving documentation
- Adding design elements
- Adding translations
- Writing or editing articles on platforms like Wikipedia
- Clicking and uploading photographs to platforms like Wikimedia
When Should You Start?
The beauty of open source lies in its flexibility. You choose when to start contributing based on your own schedule. Essentially, any time is the right time to start enriching the open source community with your contributions.
Concluding Thoughts
Starting with open-source contribution could be daunting initially, but with perseverance, you will gain confidence. Plus, the satisfaction you get from seeing your code impact numerous lives is truly unrivaled.
Whether you're a beginner or an experienced programmer, contributing to open source is an opportunity to grow. Remember, no contribution is too small—every bit helps build a larger picture. Good luck with your open-source journey!
To find out more about open source projects or discuss further, feel free to connect with me on Linkedin or check out my writings on Medium.
Video Transcription
Welcome you everybody to this talk of open source. The why, how and when uh I'm really glad to see you all and to connect with you all. And it really excites me that if there are so many people who want to know more about open source.Let me introduce myself. I am a Karha and I'm a software engineer at by render, which is a Canada based start up whose mission is to uh be a good trusted place where science can be communicated. And I work with a bunch of awesome developers and we are hiring. So, yeah, if you wanna connect, we can do it later after my talk. Also, I have uh participated in Google summer of code 2020 at open source organization KBX and I'm going to talk about it uh later in my site. So stay, stay tuned for that. I would like to uh start with my story here. Like, what was the first thing that uh got me attracted to the open source? And uh yeah, what was the first intriguing thing I heard about open source? So I was a full time at that time and I had a friend who was full time like me and we used to go to these very fancy sponsored conferences all around the globe, Europe, Spain and those sorts of uh yeah, places.
And I questioned him once, like, how are you getting these uh you know, sponsored conferences? He answered that in his free time. He works at this awesome open source called Wikimedia. And Wikimedia organizes a conference every year for its contributor to cherish, its contributor to celebrate the contributions that they have made. So that that's actually a funny story that I uh that that's how I got interested. But as I got to know more about community, as I became the part of the community I explored so much more. And I'm here to talk about my experiences about through this journey. And let me start with that. I'm no expert. But yeah, I would love to share some of my experiences that I had during the open source. I would like to start here with this code by Philip Khan who is a famous entrepreneur and a firm believer of open source. The power of open source is the power of people, the people. So basically, this short code delivers a very strong message about the power of people and together we can bring a change. Uh what is open source. Uh Right now, I'm not able to see any of you. So because I wanted to quickly know how many of you already know open source, how many of you already contributed in open source or know what's uh or had an idea like what open source is. Uh So I can't see you.
But uh yeah, so I'm gonna just dive into it. Open source is basically a community driven software which is publicly accessible and open for modification. But let me tell you at the same time, there is no strict definition of an open source because it can vary uh like with the licenses uh that software is using as well as the community uh participation that is permitted for that software. So there is no strict definition of an open source but it mainly more of more or less, this is the generalized concept of an open source, as I mentioned, no strict definition. So no strict requirements. But these are some very common good practices that are generally seen in an open source software that the user should be treated as co developer. Uh He should have the access for the contributions and all early releases. The very good benefit of early releases is uh we have a lot of early feedback. So a lot of early feedback uh gives result to several version because there are some several ration that goes on and frequent integrations. And one of the major practice is highly modul code, which is a very good practices practice if you are coding. Definitely.
And so yeah, these are some very good uh practices that the open source generally has this is my favorite slide because there are so many misconceptions out there about open source, so many myths and I want to like to talk about all of them, at least some of them. So uh this the the standard with that open source is always free, which is true, but it is not if you are using it, uh It actually depends upon the license of the open source. So if you are using it for your individual purposes, it is free. But if you're using it for your development purposes, your business purposes, it might not be free. So that's totally a myth that it's always free. Second is uh only someone with strong tech background is able to contribute. That's another a big lie. And I have a whole slide dedicated to bus the Smith. So yeah, I would like to talk about uh more of more, more of it in my next slide has restricted or access li license inc So uh this so many people think if there's a code which is publicly accessible, that's open source, that's not always the case, it has some patent or some license which is attached to it.
Software quality is not enterprise level and is less secure. Uh uh That's not the case. Many enterprises use from database tooling to software framework to analytics, tooling. They use uh the open source software at an enterprise level. So that is not true even uh the recent rover that went to Mars has so many open source packages. So that is not true that the quality is not as good as enterprise. The last point is open source contributors are not paid. Again, that is not true because there are uh people who fund the contributors for the contribution in the software. So that's again, not true. Now, after discussing like a little bit about myths and requirements and what the software is, what open software is, I would like to discuss the impact of open source software in software industry. That's really, really important. I would like here for you to take some seconds just to see the logos and just to see how many of these logos that you actually recognize or have used. So I'm pretty sure everybody has, has seen the VLC, the Firefox and the Chromium, the Android. Did you all know that all these are open source? That's pretty cool, right. So, yeah, so this is the level of impact that open source has on us right now. We use it in our day to day life without even realizing that we are using open source software.
So that's why I wanted to present some of the major things that like open source software are out there. Uh Some more stats about open source that we have around about 56 million developers who are actively contributing in open source software. We have 28 million repositories 1.9 billion contributions. That that's a lot, that's a lot of contributions in open source, which is great at the same time. And if you see on the right side, we have open source contribution by employees. Like if you see we have different organizations uh just uh uh with the uh with, with unique number of employees who are contributing in open source. And as we can see, the Microsoft is leading them all. So that's again a great thing. And you can see like all these are top notch companies. Uh Yeah, just continuing the stats here, these stats represent number of the live websites who are using these frameworks. And these frameworks are pretty close to my heart because I'm a full tech developer. I I use these frameworks uh like in my everyday job and these are some stats which like blow my mind that react is getting used in 7.5 million live websites, which is like huge, huge impact. So moving forward, I would like to uh talk a little bit about ingredients of the open source. So what open source is basically made of? It's made of people, of course, because it's a community driven thing.
So it has people, people could be uh contributors, authors, owners, community members. So that's there. And because most of the open source Softwares are remotely developed, so the community has come up with several tools to help the process. So the other options like documentation issue tracker pull requests, discussions. These are are basically tools for having an effective communication or effective development. So that's the ingredients, basically ingredients of an open source. Uh Now, if uh anyone is still on border, why they should be contributing to open source? I think this light is dedicated to answering all those questions at least. Yes, I have like some major good points like why you should be uh contributing. So first is improving your existing skills, even if it is coding, designing, writing anything. Like if you possess a skill, you can just go to the open source project, you will see that there is a task for you. So you can just uh make sure that open source is a practice ground for you and just improve your existing skills. That's a good way to do it. The second thing is build your network, meet the people like in conferences, meet the people who think like you and grow your network. That's, that's a great way to socialize and grow your network. Seriously. Trust me. I have done that. Third is showcasing and building your profile.
Just uh for this, I'll just give you a very quick and interesting example. So an interviewer asked me once like, what do you do apart from your regular 9 to 5 job? And I showed him my, you know, open source contributions and he was so so much impressed. So you can showcase and you build your profile build your reputation. So that's a cool way to do that. And learn from your mentors, grow to a level where you can be a mentor and teach others. So that's always a good thing and satisfaction. So the level of satisfaction that you get contributing to a project that you know, people are using, it's, it's another level. So it's just a satisfaction of giving community back and maybe it uh just earn some extra money because I've already told that you can earn money from open source. It's not always free. So yeah, so that's one of the reason that you should be contributing, how to contribute. So as I promised in one of my earlier slides that I will bust this myth that only uh someone from technical background should be contributing or should be allowed to contribute or like can contribute. That is not true here, I have put very simple distinction between the technical contributions and non technical contributions that you can do in an open source, technical contributions. You can do code contributions, testing automation and non technical contributions. You can do pretty interesting ones.
So first is improving the documentation. If you're a writer, just go ahead and you know, improve the documentation of the software, improve the read me file, improve the uh uh contributed uh uh code guidelines file. So something like that, if you're a designer, you can use your design skills in contributing to a software. Uh You can help in adding the translations to the existing Softwares and articles. This fourth way is like pretty simple and straightforward. If you go to a Wikipedia page, do you know you can edit it? Like uh obviously some of them if there are permissions to edit, so just edit the article or create a new one and Wikipedia and publish it on Wikipedia and just people will see and you know, you have contributed to open source and given the people access to knowledge. So yeah, that's, that's another level of satisfaction as well. The last one is click and upload photographs. I know uh you might be confused. What is this point? So there's an uh open source software called Wikimedia Commons and Wikimedia as you all know that it's whole bunch of kind of dictionary for each and every word like it has everything in it. So Wikimedia do accept photographs, missing photographs of the articles.
So you can just click a photograph and upload it to them, uh just uh submit it to the repository and they will, they might publish it. So that's another way of doing the contribution. So now after talking about why and how this is a very important question that A I welcome everywhere. If I wanted to contribute in any software, should I go and like should I get started? So the answer to this question is mostly yes, but that, but that is not always the case why. So let me just tell you about uh different types of open source that is there out in the market. The first one could be, the code is open source, but they are not very welcoming with the volunteers. Generally, the people who are contributing are part of organization. The second one could be the code is open but only for very small issues. They are accepting the PR S. And again, the core team is the part of organization. And third one can be totally free like open source where the contributors are the one who are running the show while making the contribution, seeing the road map and doing each and everything, maintaining the code. So that's the third and most popular type of open source. So depending on these, you can choose or you know, you can answer this question that do am I welcome here or not?
So, moving on the third part of my talk, when, when is the right time to start contributing. So uh it's either when you are studying between jobs, full time, part time, weekends, vacations, what's the right time? What do you think is the right time to start? Just to think about it for a second. I think the answer is pretty straightforward. It is whenever you get the time, whenever you are free, you should be contributing. Because the most enjoyable thing and most powerful thing, which I feel with open source is that there is no hard commitment at all. So whenever you get time, just pick a task and complete it, that's all making your first contribution. So that is very tricky for anybody who is joining the open source. So let me tell you a very straightforward process which can help you making your first contribution. First of all, find a project, find a project which you want to contribute. And for example, I'm a full stack. So I have a set of skills that I know I would like to contribute to a project which which, which you know, which aligns with my goals. So uh find a project which aligns with your goals. And then there would be some guidelines of how to you know, contribute, go to that guidelines.
The third one would be there are so many open source projects which has these cool labels, could first issue good first contribution like these, find those labels and try to filter the task uh from those labels. Put the task uh get, get the task, talk to your mentor or talk to anyone else in the team that you're interested in this task, pick the task up, double, create a pull request. And yeah, that's all. But let me tell you one thing of creating the pull request and merging it. So creating a pull request is one thing, getting it merge is another thing. So don't get disheartened. If your pull request is taking a lot of time to merge, it happens it is it happens. So be patient. There's, there were so many times when my pull request took months to get merged. So just be patient, it's, it's it's gonna get there. So that was my only feedback for the pull request. Just don't get disheartened if it is not getting merged immediately. Uh After this, as promised, uh I would like to talk a little bit more about my Google summer of code experience. So uh basically what a Google server of code is a program that is organized by Google, which funds students uh who are already contributing in open source during summer. So that's basically a program. And uh yeah, there, there's a whole selection process.
I'm, I'm not gonna go through like into that. So I got selected for that. And uh I work with an organization called KVX which basically creates uh offline uh online, which basically converts online uh wikimedia to offline Z files. And I worked on a project that was purely doing that, that's called MW offline. And the impact that I made was because the project, what it used to do was to convert the online wikimedia to offline uh Z file so that anybody without internet access can use it. So that computation, that computation time. This is, this is how many uh hours that I saved for that computation. So it was so much satisfactory because I knew that I am uh helping them accelerating their goal of, you know, giving access to knowledge and education to everyone.
So that was a great experience for me and some of the uh like takeaways of my GSOC experience, I wanted to share it with you guys is uh there is a steep learning curve. So when I joined, when not joined, when I started the code base was huge and there was minimal help because you have to figure out uh so many things out on your own. So be patient, don't get like uh frustrated, I would say. So there is a steep learning curve. I tackled multiple challenges and overcame them, which I which I myself couldn't believe that I could do that. So that was another very surprising thing that I learned about myself. The third thing was I, yeah, this is very important. So grasp of the importance of a sync communication with because my in my project, everybody was from different uh time zones, different countries. So it was really hard to, you know, fix a time for a meeting. So I learned how to do a remote communication elsewhere, received great support from mentors. There's always so much learning from mentors and definitely gained a lot, a lot of confidence after my first pr was merged. So that was my whole experience of the GSOC and my contributions.
Uh just concluding the talk here with the key takeaways that uh to get started, you find a project suitable for you and get started with small tasks don't over yourself with big features, start slow. Every contribution is not necessarily related to coding. And I think I have talked briefly about it. And that's true. If, even if you are not from the technical background, you can contribute, it's empowering and satisfying, which is again, a, a great point. I think at least it, it was, for me, it was empowering and satisfying at the same time and any time is the right time to start. So there is no hard and fast rule venture. You should be start whenever you get tired. So that's all. And here are some important things that I thought you would like to know about. If you're a new contributor. These uh I have, I'll, I'll post it in the chat later, the link for my slide. So you can just go here and see what are the best projects to start with the list of licenses for open source software. I know I talked about some of the licenses so you can just see what are the other kinds and uh which one you should choose for your open source software, some github sponsorship programs. And last the connect with me on linkedin and medium. So uh thank you.
And uh yeah, and now I would like to take the questions. Does anyone have any questions? Oh, yeah, that's a, that's a great question. Yeah, you can, you can definitely because uh you can do it in your, because I do it in my uh extracurricular activities kind of thing. You can just say contributed in open source project and uh give your project name even if it is minimal contribution does not. Yeah, don't be hesitant to not put it in your resume. So it should go in your extracurricular, it should not go in your actual, you know, technical uh section and linkedin uh please do it on uh linkedin. Sorry. OK. Uh I'm just addressing this. What stage in our university course are the students? Should we start? Sorry. What do you mean by uh university course as a student? Uh like as I told, like as a student, you can start any time and for this, for, especially for the students, I have this GSOC thing that I would definitely would love that you, I mean like stage in art degree. Yeah, you can start any time. That's e even if you are in the first year, I would definitely recommend for you to try for the G. So 2022 and uh go to the open source and see what GSOC, what, what Google sum of code is.
Uh you know uh what, what kind of organization they are selecting, start contributing in one of them and you might get selected in the another uh like in the 2022 pro program because 2021 is already happening. So yeah, uh just going to the questions. Do you have any preferred tutorials for people who are just starting out to learn vision control or kit? Oh, sorry, version control or kit. Uh There are they, uh there are lot of materials out there for learning the K but I'm not sure. What do you mean by that? Maybe Udemy is a very good platform to get started. If, if you don't know about it at all, I think you should see your Udemy courses. Yeah. Uh Where can we find you? OK. Let just, just a second. I will share it with you guys. Oh, so that was, that would be in in the contribution gui uh guidelines uh Michelle, right? So that is that what you are asking that if you have a project? Like what? OK. So yeah, that should be in the contribution guideline. If, if you are using, if there's an open source software out there, there should be a uh contribution, a contribution guidelines attached to it. So you should be able to find like how to get started or what are the things that you need to do? That's definitely that uh that's there. So you don't have to worry about that. OK. Are there any other questions? Can this be considered as a platform to learn? I mean, for someone who started learning a new language? Yeah, definitely.
As I told in one of my presentation, please do uh treat open source as your learning ground because there are so what uh if, if I might ask, what is that? What's the new language that you are learning? Maybe it's like Python javascript. Oh yeah, that's Python. OK, good. So there are so, so so many uh Python uh projects out there. Like I think the link that I have given you in my PPT, the good pro uh projects to get started. But I think that have uh many of Python projects in there. So please, there will be a small task. As I already told the first contribution, there would be a very small task with the label first code issue. Pick that up, start slowly and then start contributing to the features like go even more deeply. I did. Uh So let me just put the link in the chart here again. So this is uh the link to my slide and you will see the links at the very end of the slide. Uh If there are any new people out here uh for first contributions, I think please go and check out that claim there are list of projects that you can get started with. So, yeah, thank you guys. Thank you so much. You were so great. And thanks for questioning and answering around as you experiencing web. Which one of these options would you suggest? I would suggest a? Uh Yeah, if you are looking for. Uh Yeah, your goal to become a web developer.
Uh please go ahead with a Yeah, that, that's the one you should know because uh it's, it's, it's used everywhere. Uh I have put my contact details at the very end. Uh Like if you can see my linkedin and medium, so you can definitely con uh connect with me uh on medium and I we can chat whatever questions you have. Definitely, I would love that. No worries. Thanks. Thank. Thank you, everyone who attended the session and I hope you guys enjoyed this and uh yeah, learn something about open source.