How To Get Started With Open Source Software Contribution (Apache Solr)
How Open Source Software Contribution Led to a Career at Salesforce
Welcome to my blog. I'm excited to share my journey into the world of open-source software (OSS) contribution and how it led to my current position as a software engineer at Salesforce.
Introduction to Open Source Software
Before we dive into my story, let's take a moment to understand what open-source software is. In its simplest terms, open-source software is a type of computer software where the source code is freely available to its users. These users, mainly developers, have the ability to modify, update, and maintain this code, thereby contributing to the software's development and improvement.
In today's modern tech landscape, open-source software can take many forms. From programming languages like Python and Ruby to operating systems like Linux, a vast number of tools and technologies are open-source.
What's even more interesting is the concept of open-source projects. These projects, often hosted and managed on platforms like GitHub, are powerful resources for programmers and developers around the world to learn, collaborate, and contribute to. Some examples of open-source projects include Apache Solr, a popular search engine library, as well as TensorFlow, a machine-learning platform.
My Journey as an Open Source Software Contributor
As a college student studying computer science, I found myself at a crossroads, unsure of which path to choose within this broad field. Among the many paths available, contributing to open-source projects caught my interest.
I began my journey by contributing to an open-source search engine project, Apache Solr. Through trial and error, I learned how to contribute effectively and became a part of the developer community for this project. Not only did this experience grow my technical skills, but it also connected me with a global network of developers and allowed me to give back to a community that provided tremendous value for free.
Moreover, my experiences as an open-source contributor caught the attention of Salesforce, leading them to offer me a job. This showcased to me the tremendous potential of open-source contributions as a career stepping stone.
Why Should You Contribute to Open Source Software?
Building an open-source portfolio can offer several benefits:
- Gain valuable experience: Participating in mature open-source projects can provide valuable programming experience.
- Improve coding skills: Navigating and understanding large codebases can dramatically improve your coding skills.
- Join a global community: Open source is a global movement. By contributing, you'll be joining a community of talented developers from across the globe.
- Give back: Contributing code to an open-source project provides a sense of personal reward, as your code will be used and appreciated by others.
Furthermore, many hiring managers view open-source contributions favorably, as it shows you have real-world experience working on large codebases.
How can you get started with Open Source Contribution?
Getting started with open-source contribution is a multi-step process:
- Find a Project: Look for an open-source project that aligns with your interests.
- Connect with the Community: Reach out to the developer community associated with the project. Introduce yourself, express your interest, and ask for guidance.
- Pick an Issue: If you have some coding experience, pick an issue from the project backlog and start contributing.
- Contribute to Documentation: If you're new to coding, consider contributing to the project's documentation. Quality documentation is crucial for any software project.
Several programs exist to help beginners get started with open-source contributions. Some of these include Google Summer of Code, the Linux Foundation's 'Lift' program, and Outreachy.
Final Thoughts
Open-source software contribution is more than just writing code; it's about being part of a community. Contributing to open-source projects can shape your career path and expand your professional network. Most importantly, the process opens doors to a multitude of opportunities within the tech industry.
If you have any questions or thoughts about open-source software contribution, feel free to share them. As for me, I'm grateful for the opportunities open source has provided, and I look forward to continuing my contributions to the Apache Solr project and beyond.
'Software is eating the world and open source is eating software' - this statement beautifully sums up the relevance of open source in today's world!
Video Transcription
Uh My name is N uh I'm a software engineer at Sales force uh currently uh working in Search Cloud. So, before bringing this topic, basically, there is a story behind it. So why did I decide to talk about open source software contribution?Uh Basically, while I was studying at a college um back in the days, um maybe um almost three years ago, uh I was kind of puzzled and then, and I was a big lost what I'm going to choose, you know, in computer science, because as you know, computer science is a very big field, there are so many paths, so many ways to choose.
And then one day I found this open source project, I heard about open source project contribution, all this kind of stuff, but I didn't know how to contribute basically. And then at the end, you know, finally I figure it out how to contribute. And then I found one project. Uh basically that is a search engine, open search project. And then I pined the deaf deaf community to ask their help, like how I'm gonna sort in this journey. And so in short, basically, that open source contribution brought me to, to get a job at sales force. And so I got a job at salesforce thanks to open source contribution. Because in open source uh communicate, there are so many like engineers or like usually uh companies like like sales force, the way tech companies love um open source contributors uh to hire. And that's why I thought maybe I will, you know, just talk and share my story and to help others, maybe if they are puzzled and they don't know how to get sorted. And so today, I will talk about what is open source software and why to contribute to open source in this sort. How to contribute. The last one, I'm gonna give an example uh that currently actually, I'm working on that project.
Uh By the way, if I have any questions, please put in the chat, I will uh respond them at the end of the chat. Um feel free. So uh what is open source software? Basically if we based on the definition, open source software is a source code, you know, which is available to its users, like developers like to us and so that we can modify update or share or basically maintain that code. And for example, open source can be anything, basically can be, can be a programming language. Currently very popular open source open source is programming language like Python Ruby or operating system like Linux or the orchestration system is like K me learning and tensor flow.
Uh The we have native or a de atom or a search engine like SOLR. All of these are open source. Basically, the source code is available on, on the internet so that you can just fork it, you can modify, maintain and then contribute. So then there is a saying that I really love in our open source de community. This is kind of uh very um very like um like statement software is eating the world and open source is eating software apparently. Uh nowadays, many, many tech companies are leveraging this open source project. Because what because you don't need to pay. So already there are if, if the open source is very solid, they are really nice and and well developed maintained community. And so they are so helpful and basically everything is free. You just like to leverage. This is why currently in tech industry there are so many companies are using open source projects. So the basically there is in um in um in the globally, there is a nonprofit organization so called open source initiative uh who maintains this open source projects in general. And this open source initiative also supports and then all looks basically takes care of this open source definition, like free distribution or distribution of a license or anti discrimination, et cetera because because we need some rules, right, open source, open source projects to update, to modify because we can't like modify how we want So that's why there must be some regulations.
For example, license license are very important in open source projects. Uh Why, because you basically license define how to modify open source project. So very popular open source license. Uh for example, attach it to the O or mit uh license or BS T Berkeley uh um license and et cetera. So every open source project has a license where uh the regulations are written, how you can motivate or what extent you can modify or update, maintain the open source project. Let's join. So um then you know, basically you have kind of understanding of what is open source project.
So open source project is source code that is available to users, its users and can modify update, maintain the project. Uh contribute that Erin and the next question, why do to contribute to uh to open source? The there are many reasons and the main line I brought here, some of them uh that I thought might be useful and interesting. So first is of course, is the experience because like when you were at school at university, literally um some companies of many companies ask you experience, but how are you gonna get the experience? You know, because you are just studying at university. And so the open source is contributing to open source is one way of getting experience. Basically, the solid open source project gives you valuable experience in in programming. The second one is improved coding skills because improving uh because the open source is a very large code base, many open source projects like millions of lines of code so that you get to know this is how the code is written because every open source code has their own standards, you know, um like how it's written and then all these like documentations, that's why it's a, it's the best practice to learn.
And then also uh there are uh tools or cutting edge technologies, every open source project use, for example, build, build system, for example, or package management, et cetera. So every open source has so that you will have a great opportunity to learn this kind of tools technologies along with. And the third one is a global community uh because open source is to everyone basically. So then you will have a chance to collaborate uh or communicate with people around the world to not only tie to your location or to your place, but its global community and um giving back as also is very important because you know, once you contribute to source and then you see that you commit or you like pr which is merged to master, for example, let's say um that's yours, you could and your name is written on it so that you feel kind of reward, you know, uh like personal reward, I would say so once you have some open source contribution, and so then um then when you put it on your resume or CV.
Then the employers love hiring um uh software engineers or new guts with some kind of open source. Um Because so you have some experience, you know how to browse a large code base and then, you know, some tools colleges. And so yeah, currently software engineers with open source background are in high demand. Um uh So this is our several of them there are, but uh I'm sure there are many, many opportunities if you have open source uh background. And so, so now next question is, so, you know, now what is open source, why to contribute to this, how to sort? So basically, um you could sort first is the first and foremost is project communication, basically ping or reaching out uh the open source project, basically a deaf deaf community because every open source project has a deaf community where developers, contributors, commuters interact with each other.
And so then, well, first you have to find an open source project you are interested in and then just ping that community deaf community to do, hey uh introduce yourself. And then I'm interested in the project, please uh help me figuring out this kind of thing where I'm willing to learn basically, right? Is there any like kind of issue that that is suitable to me, et cetera? So then this community is, you know, they're uh they're just helpful, they can help you. I'm sure. Uh so then, or if you have some experience, you know, you know how to code and you have some experience in coding programming, you just like pick up your one issue and then you fix and then you just create APR basically. And then uh this community will review it and give some feedback. And the another way is doing um in open projects, there are backtracking systems like Jira or backlog and et cetera. So you just, you know, you just like uh sign up for that backtracking system and you keep an eye on that uh backtracking system on your particular project, open source project.
So then you continuously uh look at these issues, maybe sometimes uh you might be interested in that issue and to fix quickly and to get some review, right? And that's the one or uh if you are not sure this coding or if you are uh if you don't know how to code, you know, at school, it's possible to, for example, in your early years, maybe junior, for example, first or second year at a university. So you might start from documentation basically because documentation is very, very important, good open source project has very good documentation, well documented so that like outside people or users come to that project. So by reading the documentation, they have a kind of a sense of feeling, you know, oh the project is this kind of things that is why documentation is very crucial. You just, you know, you just again ping the project um project and then say, hey, I would like to hey, I read this one. This is kind of uh unclear to me. Maybe I could help with this documentation, you know, with this part of it. Um So then they, of course, they welcome you. And that's another part of document uh contributing uh to open source project. And this documentation is very valuable because many among software engineers, I see that they don't see this as valuable, you know, oh I need some documentation.
This is not coding or it is it just, you know, kind of um wasting time but it's not, this is important as, as like coding. I, so now, you know, this um basically how to get started. And then also I would like to um mention some opportunities um globally, there are many opportunities for open source contributions. And then here I would like to name three of them, which are very popular currently in the trendy uh Google uh Google, summer of code. This is very popular sponsored by Google. And so this is kind of summer internship remote, I would say. Um so you during summer, you can pick up an open source project and you contribute um to the project and then you will get some stipend uh during that period. Um And then Lyx Foundation, for example, Links Foundation has a one project called Lift program, which is again open source project. Uh So you contribute and this is once a year or maybe three months um internship program. Uh The another one is very popular. Again, it's about um again, open source uh projects out um sponsored by outreach. Um So this is a twice a year. Um Basically, they are hired mostly students who are studying bachelor or master students and to contribute uh to opensearch project, you can select any open search project basically. Mm So, and here is an example uh apaches or why?
Because currently I'm working in this apaches or project, I started contributing to this project um since 2017 when, while I was studying at school. And then thanks to the solar, I, I was hired by sales force and K I'm in that project still, I'm still contributing to, to, to, to this open and still in that team that we contribute to open source. And so what is a pa source? This is basically a search engine or a library I would say for enterprise. So we build a search engine like for example, when like um like bing, for example, when you tap something, you will search something behind this, of course is search engine and this is the back end uh project um written in Java um distributed um and distributed uh scalable high reliable platform.
This and if you're interested uh in search, for example, you, you could just um search for the solar. So how it works all these kind of things and we have a very solid de community uh to, to help you and uh to, to help you start it with this open source project. Uh So, and the open source, as I mentioned is uh everywhere and currently many tech companies are using open source projects. So for you is just to choose the source of field, what topic you are interested in? Like me, I'm interested in search and then look for open source in that field, you know. So what kind of a research projects out there related to search the same applies for you? For example, if you're interested in funding, maybe you could choose a React native which is very hot topic, hot like framework currently developed by Facebook. And so then you just pick and start contributing. Then once you are familiar who is code based, maybe you get hired by other companies who are using this React native. Uh So thank you very much for listening and if you have any questions, uh I will answer, I'll have three more minutes that will go here.
Uh So um if you have any questions, please uh ask me otherwise I am done speaking. Um uh huh uh uh beginner tickets get taken very fast. How do you go around this? Um uh 00 yeah. Uh What do you mean by uh tickets? Um Maybe you could elaborate. Oh, and get home. Oh, I see. Oh, I see. So that's not like, you know, so the first thing is just going to the um deaf community, just go in and ask what I did was basically before I did, hey, I'm looking for a man. Basically, I introduced myself to the community list. Uh I'm here and then who has barely like, you know, knowledge in Java, but who is willing to learn um learn this open search project. And then I'm looking for a mentor who had helped me along with this open search contribution. And then, and one guy who is a commuter in open source projects, like respond to email that. Then my journey started basically in open source. That's why first not like immediately picking an issue is not a good idea, just first interacting with the community pinging yourself, you know, hey, this is the one my experience, this one, but I'm willing to learn this one. Is there anybody to help me uh along this way?
Then you'll get, you know, uh because I see some people go to the jury issue and then pick that issue and then figure out then no one looks at that code and then, you know that you will be disappointed because no one looks at the code when I have to contribute. And that's why a communication in a solid communication is very, very crucial um in this project. Uh So any other questions? Um I um uh uh I was wondering your thoughts on offering open source as free to use to companies for profit. Do you think this has been trained to open source community? Do you think there isn't enough support Global Force? Um Basically, like usually um the the open source project is free, everyone can use it. But the other side that open source uh developers benefit is that they support this open source project because uh open source contributors and the commuters do know the code. Basically, they know everything in open source project so that they can help these, you know, profit organizations by supporting this project. Basically, if something doesn't work, uh basically, company asks developers, these contributors and how to fix, maybe I'll hire you, you know, as a contractor or like full time to help me uh to, to fix my issue. And that's why the open source project benefits uh from this.
Basically, there are, there are two ways, two streets. Um Yup. Um uh I don't know, Samantha. I ask your question or um I answer your question or not if you get an answer. Um OK, guys. Uh Thank you very much time is over and I hope uh you learn something, you know uh from this uh from this talk 20 minutes. I didn't speak for nothing. I hope you learn. Thank you very much. And uh I'm happy to connect on linkedin and have a nice day.