So you want to contribute to FOSS, but don’t know where to start. There are many paths to FOSS, but you must find your own. Here’s some advice based on personal experience to help you get started.
0. Find your motivation
FOSS requires a lot of giving, and better aligns with those that are missionaries, as opposed to the mercenaries. Perhaps you are unfulfilled in your fiat job, maybe you are currently unemployed, or perhaps you are excited about a particular bitcoin project. Why you’re exploring contributing to FOSS, is a question that only you can answer.
1. Discover what excites you
So you’ve found motivation and have a list of various FOSS projects you could contribute to. This is the equivalent of the “I need a job” stage and you’re figuring out where to apply. It’s time to narrow it down.
What are you excited about? A multi-year pilgrimage of learning how to contribute to Bitcoin Core? A lightning wallet, perhaps? Free speech Nostr? A hardware signing device? Or maybe finding a FOSS projects that is not “Bitcoin” in name, but happens to support Bitcoin, and Lightning.
A great first step is to take some time and explore the Bitcoin Design Community (https://bitcoin.design/) to discover FOSS projects.
2. Identify the skills you have or want to develop
Chances are that if you follow the Bitcoin Product Community, you’re skills are in Product Management, Product Marketing, and/or Project Management. But contributing to a bitcoin project requires contributors with skills of many backgrounds such as marketing, documentation, community building, and more.
What’s important to know is that most FOSS teams start with a motivated developer, who then may attract other devs. But many of them may not advertise that they need non-developer help such as a PM.
Therein lies the opportunity for you as an eager bitcoin contributor. See what the needs of a project are and see if you can fill in those gaps with your skills. It may be as simple as coordinating meetings for the team. But doing the “dirty work”, or the work no one else wants to do, is exactly the way you can make an immediate impact to a FOSS project. In fact, this is why members of the Bitcoin Product Community affectionately refer to product managers as “janitors”!
3. Make a list of projects
Now that you have narrowed down your FOSS search, it is time to start building a list of, and evaluating various FOSS products. Some questions you can ask yourself:
Is the project active? Is it a new project? How many team members are there? How many are devs? Is there already a PM? Is there a need for multiple PMs? Is there designer participation? What is the pace of development? Is there enough development activity for this to satisfy your want to contribute? Is there opportunity for a PM?
Github is the defacto standard for FOSS products. Check the activity. Read up on issues. See who is contributing PRs, and creating issues. Check if there is a Github Project instance.
It’s OK, and best for you to check out out multiple FOSS projects concurrently to see which team is the best fit for both parties.
4. Use the thing(s)!
Another thing you can do to help you choose a project is to use the thing! Download the OS. Run the software. Use it.
As you’re interacting with the product, some things you can ask yourself are:
What do you love about the product? What can be improved? Are there bugs?
Jot down your notes. Take screenshots. Do screen recordings. Document your experience. Create a video onboarding walkthrough, or a feature tutorial. What you are actually doing is documentation and this will be useful for the project, even if you don’t decide to actively contribute.
As you use the thing, take note of how you’re reacting to it. Are you getting more or less excited? Are you more or less confident in contributing to the project?
5. Find out where the team works
Another factor to consider is to figure out where the team works.
By now you have already explored their github to collect your FOSS intelligence. Now check nostr, twitter, telegram, or whatever other comms tools the team might be using. Some teams may have calls, and call recordings. Consider listening in to a recording, and/or joining a call to check the team dynamics.
As you do, assess whether you might be a good culture fit. Also see where there might be some gaps in their workflow that you can help improve.
6. Start small
Once you found a project that interests and excites you enough. It’s time to roll up your sleeves and get involved by starting small.
One easy place to start is to go through the github issues list. Some examples of issues in dev heavy teams are e extremely technical bug reports. For FOSS products with an active user base, there might be “customer” centric feature requests.
Start by logging the bug(s) you found. Examine issues, and fill in the blanks if there are unclearly defined reports & requests.
You don’t have to ask for permission to contribute. That said, evaluate team dynamics and who owns what role so you are not stepping on anyone’s toes. You are there to help.
Also take note of how your help is received. It may take time for you to build up your credibility. Don’t throw in the towel on the first week. Keep finding ways to add value.
7. Show up consistently
Keep contributing in small things day in and day out. As you do so, communicate with the team to ramp up your learning, and also start building rapport, and your reputation. You may not have time or opportunity to contribute full-time. With the state of asynchronous communication tools in 2023, you can flexibly contribute when you have time. An exception to the asynchronous communication may be team meetings.
As you continue to show up consistently, you will build up your FOSS proof-of-work, and reputation. This will show FOSS devs, and contributors that you bring value.
8. Find and meet the “customer”
Find, and interact with the project’s users a.k.a “customers”. What do they care about? What are their pain points? What needs are customers using the product for? Become the “voice of the customer” to the dev heavy team.
Is there a conference where your team is presenting, and customers present? These are invaluable opportunities to observe the customer’s behavior, and also to help answer questions, and troubleshoot on the spot.
9. Increase your involvement
After some time starting small and working on bugs, you may eventually find yourself submitting feature requests. Maybe there is an opportunity to create user flows, or mockups. As you consistently contribute, continue seeking more responsibility.
Maybe you offer to facilitate and lead the next team call. Maybe you try creating a roadmap and backlog from scratch. Maybe you host a product & design thinking session. Maybe you will level up and learn how to check out a dev’s PR in a yet-to-released branch.
No matter what you do, be sure to always bring value to the project.
10. Prune, Commit, Repeat
Congratulations! By now you’ve been doing a “trial run” with several projects. It’s time to focus and choose one(s) that you can commit to.
As you contribute to the project on an ongoing basis, continuously reevaluate if there is opportunity for you to increase your contributions. If you feel that you’ve maxed that out, it may be time to look for a different FOSS product to contribute to. Perhaps a complementary product to your initial one.
As you embark on this journey, it can be exhilarating at times and in other times thankless. To find a community of peers, and perhaps a mentor check in with the Bitcoin Product Community Discord, and introduce yourself. The beauty of open source is people are willing to help FOSS products, and to answer your questions.
“FOSS is the way” - Rockstar dev, @ Advancing Bitcoin Conference London 2023. The author thanks Rockstar for inspiration, and guidance through my FOSS journey.
As you continue to sweep the FOSS floors with your product mop, remember that you are contributing to the mission that you believe in. You are working in the open, with even less authority than a PM at a company might have, and as a result leveling up. You build up your reputation in FOSS, and you show others your capabilities in the FOSS world (and also prospective employers, and co-founders) by doing.
Hopefully this helps you get started. Reach out to Elsat on nostr if you have questions about the FOSS journey, and join the Bitcoin Product Community Discord.