Contributing to Open-Source to accelerate your growth
- Sergio Visinoni from Sudo Make Me a CTO <makemeacto@substack.com>
- Hidden Recipient <hidden@emailshot.io>
Hi, 👋 Sergio here! Welcome to another free post from the Sudo Make Me a CTO newsletter. If you prefer to read this post online, just click the article title. As this is a free newsletter, I do immensely appreciate likes, shares and comments. That's what helps other readers discover it! Contributing to Open-Source to accelerate your growthExplore how contributing to open-source projects can amplify your technical and leadership skills, with a deep dive into the benefits tailored to different roles in the tech industry.
When people ask me how to improve their skills, I often recommend contributing to open-source projects. I don't recommend that only for honing technical skills. The truth is that I often suggest it to people who want to improve their leadership skills. Contributing meaningful improvements to an established OSS project is a full-blown training program in technical leadership. One that will improve your skills in programming, documenting, communicating, and influencing people, all at once. In today's article, I want to expose my thinking about the benefits of this approach, and why I prefer it over starting your own project. 🪴 Why should I contribute to Open Source Projects?There are many reasons why I consider OSS contributions one of the best training programs for your hard and soft skills. These reasons can vary depending on the role you cover. If you are a software engineer you are looking for different results than an engineering manager or a director. Let's look at the main benefits depending on your role. For Software EngineersIf you're a software engineer, you're looking at this potential portfolio of benefits when contributing to an OSS project:
For Engineering LeadersIf you're an engineering leader you might not naturally think about contributing to OSS projects. As your focus has shifted away from technical tasks, and toward leadership responsibilities, you might assume this task is better suited for software engineers. I don't necessarily agree with that. Even if writing code is no longer part of your main duties at work, there is a lot to benefit from contributing to an OSS project.
🌱 Why shouldn't I start my own project?There is nothing bad in starting your own project as a means to improve your skills. I won't be the one trying to discourage you from becoming the next Linus Torvalds. The reasons why I don't generally encourage it though are various:
That said, launching and maintaining your own OSS project can be a great opportunity for improving yourself and learning new skills, while at the same time contributing something valuable to the community. If the possibility of leading your initiative still drives you, you might consider assuming the maintainership of an OSS project that has become orphaned. According to a recent study⁴, half of open-source projects die during the first 4 years of their lives. Chances are you could find a project in there to make your own. 💡Tips on how to pick a projectHere are some tips on how to pick the project you want to contribute to, starting with generic advice and finishing with a detailed checklist for evaluating candidates. 🎯 Start small, Focus, and set goals
🔺 Mastery, Purpose, and AutonomyIf you're familiar with the concept of intrinsic motivation, you should remember that there seem to be 3 key drivers for it: Purpose, Mastery, and Autonomy⁵.
A complete discussion of this theory is outside of the scope of this article. Suffice it to say that OSS projects provide a great opportunity to find all 3, increasing your opportunities to cultivate intrinsic motivation. Purpose will be provided by the project's reason to exist. Successful OSS projects tend to be so because they solve a compelling problem. Few things in our industry can match the sense of purpose provided by knowing that your code is used by millions or even billions of people around the world. Even more so when no one paid you to do it. Mastery will be provided by the need to improve the skills we mentioned earlier in the article. Autonomy is at the essence of OSS projects: most people are volunteers, and as such they have full autonomy in deciding when to dedicate time to the project, and whether they do it from home or a beautiful Caribbean beach. No Return To Office policy hanging over you here! 📋 Projects ChecklistWith that in mind, let's look at the traits you want to look for in a project. The project you pick is not supposed to tick all the boxes, but the more the better. Health ✅ An active community and validated user base. ✅ Respectful and welcoming to new contributors. ✅ Limited presence of purist debates. e.g. space vs tab, Vim vs Emacs, etc. That is unless you're really into that kind of stuff. Relevant ✅ Something you use or are willing to use it once some gaps are fixed. ✅ The technology stack should be somewhat familiar or appealing. Challenging ✅ It should stretch your skills: new frameworks, patterns, domains, etc. ✅ Avoid - if possible - projects run by friends, your company, etc. That familiarity might turn into a comfort zone. Realistic ✅ Keep it within your reach. Ambition is good, but maybe don't pick the Linux kernel or K8S as your first project, unless you have extensive familiarity with them. ✅ Bigger projects mean higher complexity, which means higher demands on time and mental energy. Choose a project where the size will not become a major obstacle for you to find the time to get involved. 🏁 ConclusionsI hope this article will motivate you to contribute to OSS projects in the upcoming future. I used to be quite active in the space. I worked with 3 different Linux distributions, contributed code to Gitlab, and even got a one-line fix merged into the Alan Cox kernel tree about a century ago. My last contributions to OSS software though date back to 2018, when I added support for TuneIn radio to Volumio⁶. That initial contribution even turned into professional collaboration down the road. That is another potential benefit of such contributions: you never know what they can lead to until you try. Maybe it's time for me to find a new project to contribute to. While I'm mulling that over, I'd love to hear your comments on your own experience with OSS contributions and whether you have similar or different views on the merits of engaging with them. See you next week! 1 https://makemeacto.substack.com/p/should-engineering-managers-code, in case you want to read up on the full article. 5 https://www.mindtools.com/asmdp60/pinks-autonomy-mastery-and-purpose-framework is a good summary of the topic of Intrinsic Motivation. 6 https://github.com/volumio/volumio-plugins/pull/156 for those who are interested in OSS archaeology Sudo Make Me a CTO is a free newsletter edited by Sergio Visinoni. If you found this post insightful, please share it with your network using the link below. If you or your company need help with one of the topics I talk about in my newsletter, feel free to visit my website where you can schedule a free 30 minutes discovery call. I'd be delighted to investigate opportunities for collaboration! |
Similar newsletters
There are other similar shared emails that you might be interested in: