u/michaelnovati posted · ★ FEATURED
What true Open Source Software means from my perspective in the industry and how I recommend contributing to it to get your foot in the door (spoiler: it's not what most bootcamps do)
Hi all, I've been having numerous intense debates publicly and privately about open source projects. They have become the cornerstone of the resumes of many bootcamp grads, from Codesmith to Launch School Capstone, to Hack Reactor. But some people are trivializing the meaning of "open source" and I wanted to summarize my thoughts in a post I've been working on on the side for a while. When I did my first SWE job back in 2006 as an intern at IBM, I had a similar gross misunderstanding of open source... so much so I bombed an internal fun competition to create a business plan around a new open source product. I thought I would just share it here or on Quora, but I have a decent following here so here it goes:
First, what is open source software? Open source software refers to software that is freely available for anyone to use, modify, and distribute. The concept of open source has been around for decades, but it has gained significant momentum in recent years, as more and more companies and individuals have begun to realize the many benefits of using and contributing to open source projects and the proliferation of cloud computing and online tools has made the deployment of small projects cheap and simple.
One of the key principles of open source software is that it is built and maintained by a community of people who contribute their time and expertise to the project over a long period of time. This can, and usually does, include developers, designers, documentation writers, and others who work together to create and improve the software. The community-driven nature of open source projects means that anyone can participate, regardless of their background or experience level.
However, to truly understand the meaning of open source software, you have to look into how these communities operate. They are not just a group of friends writing code and putting on GitHub and seeing what happens. While open source software is often developed by hobbyists and volunteers, many large open source projects are also maintained by paid engineers. There are several reasons for this.
First, large open source projects often require a significant amount of resources and expertise to maintain and improve. This can include things like server infrastructure, development tools, and testing environments, as well as the time and effort required to fix bugs, add new features, and improve performance.
Second, many companies and organizations rely on large open source projects for their business operations and therefore, they want to ensure that the software is of high quality and that any issues are addressed quickly. To achieve this, they may choose to hire engineers to work on the project full-time, or to contribute funds to support the development of the project.
Third, open source projects can provide a great opportunity for software engineers to build their professional reputation, gain experience, and learn new skills. By contributing to a well-respected open source project, engineers can showcase their abilities and expertise to potential employers, making them more attractive job candidates.
So if you are a new engineer looking to contribute to open source as a way of building a resume, I would highly recommend spending time to become a part of these large communities - outside of your bootcamp - learning some of the best practices that companies use by observing the open source contributions of those engineers - and contributing to projects yourself to make an impression.
This might seem incredibly daunting - it sure was for me when I was starting out and I couldn't get myself to that point! - but confidence aside, if you aren't at the skill level to contribute to these projects even in a very minor way, then I would ask yourself if your bootcamp is really preparing you to be an engineer.