Open-Source Contribution As Investment Portfolio
Updated: Apr 17, 2021
From time to time I'm getting asked about open source contribution and how is it done. Today, making your first steps as a software engineer is getting harder as schools are getting bigger and more graduates are competing over the same positions. Open source contribution is perceived as an advantage in the eyes of the recruiter, non the less open-source contributions for extensively used projects.
Imagine a situation where during your next job interview, the interviewer realize that your code is already running on his/her production servers/app/site, it would put you in a different place than other potential candidates, in his/her eyes you bring value to the company even before being hired!
Who am I in this world?
I've been supporting Celery project for 4 years now, I am a Celery Core Developers team member (/10 members) and Celery AWS Taskforce team member. In addition, I own/maintain few open-source projects of myown, which are all available under my GitHub repository.
OSS as an investment portfolio
Open-source contribution is very much like building your investment portfolio when there is no risk taken. You are putting efforts into contributing to a project/having an impact for the greater good, knowing that no matter what this investment value can not go down.
Open Source contribution for a large project is an investment that might yield profit in the short-range, medium-range, or long-range, you can never know what company is using your code, and for what purposes. This investment will not wear over time or will be taxed when profits are gained.
Building your portfolio
I would say that picking the right project/field is probably the most important aspect of open-source contribution. For instance, if you like working in the FinTech world, I would suggest looking for widely used open-source projects like forex-python, or if you are already working for a company with SAAS services, contribute to a REST framework.
You can also go with 'generic use' projects as I did with Celery (or Django for instance) that are in use by hundreds of companies in plenty of markets.
Eventually, when looking in job boards you will notice in the requirements section projects that you contributed to.
OSS as a way of bringing stuff out of your day job
Imagine a world where everything you have ever done/made is owned by you, not by your employer. For instance, if I was a baker I would own every piece of bread that came out of my bakery's oven. Or if I was a construction builder, every house that I build I own.
Sounds odd? With 'whitelisting' software out of your day job company, you own the things your employer gives you money to make. I don't think there is anything else in this world that you can say this sentence about.
You can not whitelist proprietary/IP out of your company (in some cases it's probably possible), but with generic stuff that are not directly linked to your company business model - it should be perfectly fine contributing.
OSS for firm branding
In my current workplace (Autodesk) I am actually encouraged to bring stuff out of the company. This is seen as firm branding, helping to bring talent and making the company better known in the field of software engineering. If your firm does not see things the same way my company sees it, you can try driving the organizational stand around it (by bringing all the above arguments).
Escapism from your day job
Contributing to open-source will let you write code for a big variety of projects, with different flavours than your day job projects. This will let you bring more value and knowledge about different development processes/standards, by being involved in a different context than your day job.
Making software that runs the world
Imagine your impact on the world once a single line of code written by you was added to a project that is used by 1000 companies and multiply that by the number of users these companies have.