another random community newsletter :)

Share this post

Is Open Source Necessary To Become A Good Developer?

newsletter.oberai.dev

Is Open Source Necessary To Become A Good Developer?

Aditya Oberai
Dec 29, 2022
7
Share this post

Is Open Source Necessary To Become A Good Developer?

newsletter.oberai.dev

Every now and then, while scrolling through my Twitter feed, I come across a random little thread on why open source is good and why everyone should contribute. As someone who works full-time at an open-source company, I love that more and more people are helping others get involved in open source. And yes, open source is a wonderful space for folks to collaborate and build and learn, essentially to become better developers. I talked about this a little while back in a blog on Appwrite’s Dev.to blog.

Created with DALL·E, an AI system by OpenAI

However, this trend has grown to a point where I have observed people looking down on others for not choosing to focus on open source. This, in my honest opinion, is absolutely crazy! Therefore, in this issue, I will talk about whether it is necessary for someone to work in open source to grow as a developer or not.

Disclaimer: The issue of the newsletter is at no point meant to imply the open source is bad. It only intends to showcase the other side of the coin. Also, this issue is more focused on voluntary open-source contributions, rather than working at an open-source company.


Thoughts From Our Community 👨‍👩‍👧‍👦

Before expressing my opinions, I wanted to understand what our peers from the community thought about this problem as well.

Twitter avatar for @adityaoberai1
Aditya Oberai @adityaoberai1
Every now and then, I keep hearing this argument on whether #OpenSource work is necessary for someone to become a good developer or not 🤔 Planning to cover this in an upcoming newsletter issue...would love to know your opinions on this as well 💯 (some might get featured too!)
8:51 AM ∙ Nov 24, 2022
42Likes2Retweets

There were some really interesting perspectives I came across in this process.

Darshan mentioned a great point about how open source enables contributors to get feedback:

Twitter avatar for @SirusTweets
Darshan💙 @SirusTweets
@adityaoberai1 I have learnt a lot from contribution. It helps you understand your mistakes because there is someone to point it out to you
8:56 AM ∙ Nov 24, 2022

Jay brought up some wonderful benefits of how contributing to open source exposes folks to real-world scenarios beyond your individual side projects:

Twitter avatar for @jaystwtt
(Jay) Jaynarayan vaishnav @jaystwtt
@adityaoberai1 Okay then I'll try to list them 😅 1. git and GitHub workflow. 2. Improve our communication skills as we attend multiple project meetings if there are any for the project you contribute to. 3. You can make lots of connections with some awesome Developers and learn from them.
9:16 AM ∙ Nov 24, 2022
Twitter avatar for @jaystwtt
(Jay) Jaynarayan vaishnav @jaystwtt
@adityaoberai1 4. You can also understand different type of coding styles (hope you are getting my point) cuz different people write the code in different styles and we can learn some best practices from there 5.Also lastly we get to learn most important skill like understanding bigger codebase
9:18 AM ∙ Nov 24, 2022

Both of these were, however, heavily focused on how open source is beneficial. Nirupama’s point is what hit home for me:

Twitter avatar for @nitropumaa
Nirupama Singh @nitropumaa
@adityaoberai1 I feel the debate is not about whether it is necessary, but between the words "necessary" and "beneficial",
9:28 AM ∙ Nov 24, 2022

This experiment led me to believe that while a lot of us understand why it’s great to contribute to open source, not many understand whether it’s just good to do or really necessary.

My Story Working On A Closed-Source Product 💭

At the end of my junior year, I spent some time working as a Junior Software Developer Intern at a tech consultancy called Techdome Solutions. I spent about 8 weeks from May to June of 2021 working as a Backend Developer, working with .NET 5 and SQL Server, building APIs and serverless functions to help build out the internal ticket management tool for a ticket broker in the USA. These 8 weeks were (in all honesty) some of the hardest, toilsome, insightful, and educational weeks of my career. I got to work with and learn about various technical areas such as role-based authentication, database design and ORM tooling, software design and design patterns like dependency injection and the repository pattern, asynchronous programming, and more.

For some of the more experienced subscribers here, these might sound like standard tools of the trade. At the time, however, I was at an inflection point in my journey, a point where I decided whether I would continue learning software development or not. This experience is what kept me around code again. And this is because it allowed me to get the necessary mentorship and education, and support system I needed. It was a small team, but a motivated one with experienced leadership. Of course, this is extremely subjective and will vary extensively across teams and organizations. Still, I did not start my journey through open source and here I am, working at an open-source company today. My experience did not hold me back, it only bettered me beyond my expectations, and for that, I have a lot of gratitude for two people, Gourav Chauhan and Rahul Joshi.

Areas Where Closed-Source Companies Do Well 📈

On that note, there are some benefits that I did find to be consistent across a wide range of organizations from whom I have met people. Here they are:

  • Guarantee of Tangible Compensation

    As impactful as open-source work is, most open-source contributors, unfortunately, do not receive the fair compensation they deserve. While this is not a dealbreaker for everyone, it’s necessary to recognize that being able to work hard and invest your time in a project without expecting a tangible return can be a consequence of privilege. And this isn’t a privilege everyone carries or can afford. One guarantee of working with a closed-source company is that you will receive pre-committed compensation, monetary and otherwise.

  • Focused Mentorship

    Considering that most open-source contributors are doing so aside from their regular lives, it can be difficult for newcomers to seek dedicated mentorship from experienced contributors and maintainers. Most major projects have built and grown their communities and improved their documentation to solve such friction points; however, individual time can still be minimal. One major pro of closed-source organizations is that it is much easier to get focus time with an allocated mentor/lead and learn from individual perspectives and experiences.

    Credits: NEXT Academy on Unsplash

  • Access to Proprietary Quality-of-Life Tooling

    One major perk that I have observed is that closed-source companies are often more willing to invest in tooling that assists quality-of-life, whether that’s for communication, metricization, support, etc., just because their business models often allow them more leeway for expenditure. Major open-source organizations and foundations like the CNCF, Linux Foundation, .NET Foundation, etc., can achieve this (due to the substantial corporate sponsorship). However, most projects outside of these cannot due to the substantial lack of financial resources.

  • Protection of IP

    Even with the presence of open-source licenses, many open-source projects, unfortunately, suffer from theft of Intellectual Property (or IP). This commonly happens due to a lack of understanding of licensing and usage rights around open-source projects. While legal safeguards around closed-source products decrease transparency (which is an understandable turnoff), they can protect the product (and the work behind it) a lot better and ensure that the work done achieves its intended goals.

  • Appreciation for Contribution

    As wonderful as open source is, contributing to OSS can often be a thankless job. A lot of you may have come across this meme from XKCD:

    Dependency
    Credits: XKCD

    Far too many open-source contributors and maintainers are burdened with demands and expectations without any offer of support. Once again, anyone who can sustain without the support carries some amount of privilege, which not everyone can afford. One thing that closed-source companies tend to do well is creating reward and growth systems based on active and consistent contributions.

Exception:

Open-source companies like Appwrite, Novu, Amplication, etc., tend to be the exception to this rule. However, this is a rather limited group of organizations, and can only offer opportunities to a small group of people.

Should I Even Care About Open Source? 🤔

The simple answer to this question? Absolutely YES!

There is absolutely no denying that contributing to open source is a wonderful thing to do and will allow you to give back to the larger developer community substantially. Open source isn’t just an alternative way of building software; it’s making the tech space healthier, safer, and better for all of us, and here are a few reasons why:

  • Higher transparency due to the openness

  • Public vetting of software, enabling more feedback and criticism

  • Better security due to public feedback mechanism

  • Availability of community support

  • Equitable empowerment of individuals and organizations

I have explained more about how open source has made tech better, how it enables us to become better developers, and how you can contribute to open-source projects (aside from code) in the blog below:

Becoming a Better Developer Through Open Source

Read The Blog

The Road Moving Forward 🛣️

Once again, one thing I will repeat is that there is nothing wrong with contributing to open source. It is one of the healthier spaces to work in, in tech. However, when we talk about growing as a developer, let’s remember that open source is one way, not the only way.

I remember when I start my developer journey, I had quite a struggle. This was a journey of firsts, mistakes, and lots of scoldings for me. However, it turned out to be a journey of even more learning and (eventually) wins. Closed-source organizations are not perfect. They have their quirks and issues. However, it does a lot of things well, and it’s necessary to appreciate them and let them have their day.

When it comes down to choosing whether to work more for an open-source or closed-source, no matter what the world might want to tell you, you should evaluate your preference based on your circumstances and necessities. And, if you have the liberty to do so, choose both. Whatever decision you make, as long as it prioritizes you over the world’s expectations, you will be just fine :)


Thank you for reading another random community newsletter :). This post is public, so feel free to share it.

Share

Share this post

Is Open Source Necessary To Become A Good Developer?

newsletter.oberai.dev
Previous
Next
Comments
TopNewCommunity

No posts

Ready for more?

© 2023 Aditya Oberai
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing