2. BUILDING A SKILL
•The start of this journey begins simply by building on a skill that you are good at.
•Many developers work with open source in their free time, building on unskilled
areas and channelizing these to tech fields.
•Skills like machine learning (ML), cloud native and Big Data analysis are in demand
since many projects revolve around them.
•The only way to skill up is to apply what is being learnt into a live project.
•Once you have worked on a particular technology and project for a long time, it is
the perfect time for analysis.
•Once a proper analysis is done and a skillset has been shaped, the next step is to
build your own projects.
3. BUILDING PROJECTS
•Building a live project, irrespective of the content, has a lot of value. But remember,
once it is open sourced, the public response should not be a factor that decides your
next step.
•And whether you build a UI for an application or just document a list of proper
notes, resources and URLs, your work can be of great help to open source users.
•Learning about different tools helps build open source projects to a great extent.
Hence, it is important to learn everything about version control systems, Git, GitHub
and GitLab.
4. BUILDING A CAREER
You can build a career in open source in broadly three ways.
•Build, scale and monetize your own open source project
•Work for a company that builds projects with an open source
business model
•Get sponsored to work in open source
5. BUILD, SCALE AND MONETISE YOUR OWN OPEN
SOURCE PROJECT:
•Identifying and solving a problem is a good rule of thumb for building your own project.
•Noting down the problems that others may face will create a demand for it.
• For new and individual contributors who do not have much funding, social media, blogs,
posts and talks at conferences help reaching out to users to a large extent. These platforms
can generate a lot of traffic for your open source project.
•Funding plays an important role in almost all business models. The Mozilla Foundation relies
on voluntary donations to fund its projects.
•MariaDB follows the business model of delayed open sourcing.
•Many of IBM’s open source projects follow the open core business model, i.e., the core of the
project is open sourced while the surrounding add-ons are closed source and proprietary.
•Red Hat doesn’t sell code; instead, it sells professional services like support, tooling, and
technical assistance around a project. These examples of business models can be adopted to
build a project, open source it, and monetise it.
6. WORK FOR A COMPANY THAT BUILDS PROJECTS WITH AN
OPEN SOURCE BUSINESS MODEL:
•Being a part of a community of contributors and maintainers, engaging in talks and
participating in meetings will help you to contribute to a project.
•You can follow the guidelines for how the first contribution can be made, which doesn’t
necessarily have to be code.
•Looking at a big code base may seem intimidating but starting small is the key here. Look for
a problem and fix it. This will help you understand the contribution flow, code base, set up of
the project, etc.
•Non-code contributions are also valuable. People great at writing can contribute by
documenting or writing for social media.
•Those who excel at designing, can design a convention, a colour scheme, or also work on
creating a better user interface.
•Newcomers have a high probability of discovering bugs when compared to senior engineers.
7. GET SPONSORED TO WORK IN OPEN SOURCE:
• As an individual, if you are working for a project that is built by a company, you can
ask for funding.
•It is important to note that only if your contribution is significant will the
organization be happy to sponsor you. However, if you have built your own project
that has a significant user base, you could ask for funding from users.
•As an organization, you can raise money through platforms like Open Collective,
Patreon and GitHub Sponsors, where people donate to your project.
• Open source grants like Linux Foundation and Mozilla Foundation also provide
funds to support projects.
•GitHub has given 15 Indian contributors grants for their projects.
8. THE BASICS OF OPEN SOURCE CONTRIBUTION
•For those outside of the IT industry, the concept of contributing to a software project without
being compensated or rewarded for it can be difficult to understand.
•But for software engineers and developers, contributing to open source software offers many
advantages that can open doors to new opportunities that extend well beyond any commercial
aspiration.
•From improving critical software to finding others who share similar interests, there are
countless reasons why one should contribute to open source. Open source contributions can
be a rewarding way to learn, teach and gain experience in just about any skill imaginable.
•Similar to products, open source software requires project management, design, technical
writing and feature/function feedback.
9. WHY IS OPEN SOURCE CONTRIBUTION IMPORTANT?
Open Source Contribution as an Individual
As an individual, open source contribution provides people with a
platform to turn their ideas into a reality.
But open source gives individuals an opportunity to share their ideas
with like-minded people who can help bring the project to fruition.
Contribution can also help individuals hone in on desirable soft skills,
like learning how to work in a collaborative, sometimes ambiguous
and unstructured environment.
10. Open Source Contribution for a Company
It’s unlikely that you’ll find an organization that doesn’t benefit in some way from
open source contribution.
In fact, many large corporations have an entire open source program devoted to
contributing to open source communities.
Insight and access: Open source contribution gives companies direct access to those
who know the project inside and out. These individuals know the direction the
project is going in and where the barriers to progress may lie.
11. Reduce Technical Debt: Organizations can also reduce their technical debt when they
contribute a bug fix or improvement to open source projects. Companies that fix
bugs or add new features and functionality to an open source project .
Influence: Businesses can also influence the direction of a project when they
contribute. Say that an organization wants a project to offer a functionality that’s
important to the business. Having active contributors who can implement these
potential changes will help guide the project in a favorable direction.
Editor's Notes
The journey towards career advancement begins with honing a skill you excel at. Many developers dedicate their free time to working on open-source projects, refining their expertise and applying it to various tech fields. High-demand skills like machine learning (ML), cloud-native development, and Big Data analysis are crucial as numerous projects center around them.
To truly enhance your skills, it's essential to implement what you learn into real-world projects. After spending considerable time on a specific technology and project, it's crucial to conduct thorough analysis. This analysis helps shape your skillset effectively.
Once you've analyzed your progress and refined your skillset, the next step is to embark on creating your own projects. This hands-on experience not only solidifies your understanding but also showcases your capabilities to potential employers or collaborators.
Building a live project, regardless of its content, holds significant value in skill development and portfolio enhancement. However, it's crucial to remember that once a project is open-sourced, public response should not dictate your next steps. The intrinsic value lies in the process of creation, learning, and contribution rather than external validation.
Whether you're developing a user interface for an application or compiling comprehensive documentation, resources, and URLs, your work can immensely benefit open-source users. Every contribution, regardless of its scale or complexity, has the potential to make a difference and add value to the community.
Moreover, familiarizing oneself with various tools is paramount for successful open-source project development. Understanding version control systems such as Git, along with platforms like GitHub and GitLab, is essential. These tools facilitate collaboration, version management, and code sharing, enabling seamless contributions to open-source projects. Therefore, investing time in learning these tools is indispensable for anyone looking to actively engage in the open-source community and make meaningful contributions.
Building, Scaling, and Monetizing Your Own Open Source Project:
This approach involves creating and managing your own open-source project. You start by developing a project that solves a particular problem or fulfills a need within the community. As the project gains traction and attracts users, you focus on scaling it to meet the growing demand. This may involve adding features, improving performance, and ensuring compatibility with various platforms.
Monetization strategies for your open-source project can include offering premium features, providing support and consulting services, or leveraging crowdfunding platforms. Building a sustainable revenue stream from your project requires careful planning, community engagement, and ongoing development efforts.
Working for a Company with an Open Source Business Model:
Many companies embrace open source as part of their business model. They develop and contribute to open-source projects while also offering commercial products or services based on these projects. Working for such companies allows you to contribute to open source as part of your job while also receiving compensation and benefits.
In this role, you may work on improving existing open-source software, developing new features, providing support to users, or contributing to the community. Companies with open source business models often value community engagement and collaboration, and they may encourage employees to participate in open-source projects beyond their primary responsibilities.
Getting Sponsored to Work in Open Source:
Some individuals receive sponsorship or funding to work on open-source projects either full-time or part-time. This sponsorship can come from various sources, including companies, nonprofit organizations, foundations, or individual donors.
Sponsored contributors typically focus on specific projects or areas of interest, leveraging their expertise to advance the goals of the project or sponsor. Sponsorship arrangements may involve fixed-term contracts, ongoing support, or crowdfunding campaigns.
By securing sponsorship to work in open source, individuals can dedicate more time and resources to contributing to projects they care about, making meaningful contributions to the community while also supporting their livelihood.
Each of these approaches offers unique opportunities and challenges, allowing individuals to tailor their career path in open source based on their interests, skills, and goals. Whether you're passionate about building your own projects, collaborating with companies, or receiving sponsorship for your contributions, there are multiple paths to success in the vibrant and dynamic world of open source.
Identifying and Solving a Problem:
Building your own open-source project often begins with identifying a problem or need within a community. By addressing this gap with your project, you create value and generate demand among users. Solving a genuine problem not only attracts users but also fosters engagement and collaboration within the community.
Utilizing Social Media, Blogs, Posts, and Talks:
For new and individual contributors with limited funding, leveraging social media, blogs, posts, and conference talks is crucial for reaching a wider audience. These platforms provide avenues for showcasing your project, sharing updates, and engaging with potential users or contributors. By actively participating in relevant online communities and events, you can generate traffic and interest in your open-source project.
Understanding Funding and Business Models:
Funding plays a pivotal role in sustaining open-source projects and supporting their development efforts. Various business models exist within the open-source ecosystem, each with its own approach to generating revenue and sustaining operations.
Examples of open-source business models include:
Voluntary Donations: Organizations like the Mozilla Foundation rely on voluntary donations from individuals and sponsors to fund their projects and initiatives.
Delayed Open Sourcing: Companies like MariaDB adopt a business model where they initially develop software as proprietary, and later release it as open source, often after reaching a certain level of maturity.
Open Core: Companies like IBM may follow the open core business model, where the core of the project is open source, but additional features or add-ons are proprietary and offered as paid services or products.
Service-based: Companies like Red Hat provide professional services, such as support, consulting, and tooling, around open-source projects. While the code itself is freely available, the company monetizes by offering value-added services and support.
Adopting and Monetizing Business Models:
Open-source project maintainers can adopt and adapt these business models to suit their projects' needs and goals. Whether it's providing premium features, offering support services, or selling complementary products, there are various avenues for monetizing open-source projects while maintaining their collaborative and community-driven nature.
Community Engagement:
Being part of a community of contributors and maintainers provides valuable support, guidance, and collaboration opportunities. Engaging in discussions, talks, and meetings helps newcomers understand project goals, processes, and best practices.
First Contributions:
New contributors can follow guidelines provided by projects for making their initial contributions. These contributions don't necessarily have to involve writing code; they could include documentation, bug fixes, or even improvements to user experience.
Starting Small and Problem-Solving:
Tackling a large codebase can be daunting, but starting with small tasks helps ease newcomers into the contribution process. By identifying and fixing minor issues, contributors gain familiarity with the project's setup, workflow, and coding conventions.
Non-Code Contributions:
Non-code contributions, such as documentation, social media content, or design improvements, are highly valuable to open-source projects. Individuals with skills in writing, design, or other areas can make significant contributions to the project's overall success.
Bug Discovery:
Newcomers often have a fresh perspective and a different approach to problem-solving, which can lead to the discovery of bugs or issues that may have been overlooked by senior engineers. This highlights the importance of diverse perspectives and encourages active participation from newcomers.
Overall, the key message is that contributing to open-source projects is not limited to writing code. Collaboration, problem-solving, and diverse skill sets are all essential aspects of fostering a vibrant and inclusive open-source community. Encouraging newcomers to start small, engage with the community, and leverage their unique talents helps enrich the open-source ecosystem and drive innovation forward.
Individuals Working for a Company:
Individuals contributing to projects built by companies can request funding for their contributions. However, the company is likely to sponsor only if the contribution is significant and aligns with the project's goals and objectives.
Funding for Individual Projects:
Individuals who have developed their own projects with a significant user base can seek funding directly from users. This can be done through platforms like crowdfunding websites or by offering premium features or services to users in exchange for financial support.
Organization Fundraising:
Organizations can raise funds for their open-source projects through various platforms such as Open Collective, Patreon, and GitHub Sponsors. These platforms allow individuals and companies to donate or sponsor projects they believe in.
Open Source Grants:
Open-source grants provided by organizations like the Linux Foundation and Mozilla Foundation offer financial support to projects that contribute to the open-source community. These grants can be used to cover project expenses, development costs, or to support project maintainers.
GitHub Grants:
GitHub has initiated grant programs to support open-source contributors. For example, GitHub has provided grants to 15 Indian contributors for their projects, demonstrating their commitment to supporting the global open-source community.