Conquering The Fear of Contributing to Open Source
I almost let impostor syndrome stop me from contributing to open source!
Table of Contents
- Why I was Scared to Contribute
- My First Experience Contributing to Open Source
- The Process
- The Mistakes I Made
Why I Was Scared To Contribute
I’ve been a developer for approximately three years, but last month (August 2021) was my first time contributing to open source. It’s not because I didn’t want to. I was interested in contributing, and I was aware of the benefits listed below:
- Expanding my developer community
- Strengthening my skills as a developer and diving into new technologies
- Increasing my job prospects
Honestly, I was scared to contribute to open source. Perhaps, scared is too strong of an adjective. But, I felt frustrated, intimidated, and anxious every time I tried to explore the open source space. I made multiple attempts throughout the years. As advised, I cloned repositories that I found via firsttimersonly.com. Then, analysis paralysis would set in:
- Which repo should I contribute to? (I cloned 7 different repositories!)
- Which issue should I pick up?
- What is this issue even asking?
- How exactly do I assign myself the ticket?
- Is this project even still maintained?
- What if the community is discouraging? Would they laugh at my pull request? (I had worked with a few discouraging engineers in the past, and I wasn’t interested in an extracurricular roast session)
- Is this documentation outdated? Is this project underdocumented?
- Why can’t I push my branch to the repository?
- How do I talk to a member of this project’s community to learn more?
- Everyone seems to know each other in this Discord. I feel too shy to jump into the conversations!
I would spiral through these questions until a few hours passed, then I would finally give up. I had other priorities like my full-time job. I decided that if the process was this confusing and this overwhelming, it wasn’t worth it to code for free.
Then, I had my interview for GitHub to be a Junior Developer Advocate. They listed a few possible topics for my technical presentation. Based on the list, I figured I could use this as an opportunity to contribute to open source for the first time and do a technical presentation about the experience. Unfortunately, I spiraled again. My presentation evolved into a pitch about how GitHub can improve the inclusion issues within open source by incentivizing maintainers to update documentation and foster welcoming communities.
My First Experience Contributing to Open Source
After I landed the job, my manager Brian Douglas encouraged me to contribute to his project, Open Sauced. He offered to help me if I got stuck. Coincidentally, I had explored the repo a few months back and even joined the Open Sauced Discord, but I never contributed. This time was different. Because I felt secure in his support, I was able to look at the project from a new perspective.
I quickly picked up a ticket to add a dropdown component in React to display the logged-in user’s name, the version information, and a logout option. I included the CSS rules for dark mode. I also added the component to Storybook by following the pattern that already existed in the project. To my surprise, the Open Sauced community embraced me. They expressed excitement about my pull request, and they made a few suggestions to promote accessibility and testing. After making the necessary updates, the maintainers quickly released my code into production.
The Process
After I cloned and forked the Open Sauced Repo, I explored the codebase a bit to gain a general understanding of how things worked. I looked at past pull requests to determine:
- what the team was working on
- how the team formatted their pull requests
- the team's communication style
I read through the GitHub issues and identified an issue that I thought was achievable for me.
The issue
After some tinkering, I wrote a possible solution, crossed my fingers, and put up a pull request.
My pull request
The code I wrote
The feature
After a few hours, the maintainers and other members of the Open Sauced community responded with kind, yet constructive and easy-to-follow feedback.
The feedback
It was such a smooth ordeal that I regret not contributing earlier. Gaining support from the maintainers and feeling embraced by the community empowered me.
The Mistakes I Made
In retrospect, I realized that, despite my valid concerns regarding inclusivity, hostile communication, and up-to-date documentation, I made some initial mistakes that hindered my journey into open source.
Mistake #1 - I didn’t thoroughly read the documentation📖
I usually skim the documentation to learn how to install dependencies and how to run the app. However, I never paid attention to the instructions that stated I had to fork the repository after cloning it. Nor did I pay attention to the instructions on how to assign an issue to me. Finding up-to-date documentation and reading through it thoroughly helped me to actually get the job done!
Mistake #2 - I let past experiences cloud my judgment ☁️
I have worked with people who often destructively criticized my code and my intelligence. Additionally, I read multiple horror stories and complaints about the hostility in open source. The thought of repeating past situations made me guarded and nervous. Nevertheless, this experience has been a valuable reminder that the past isn't always a predictor of the future.
Mistake #3 - I underestimated my skillset 🥺
Due to work trauma and tons impostor syndrome, I’ve always felt like I couldn’t code. Despite completing a coding boot camp, earning my Bachelor's degree in Computer Science, shipping various features, and working as a Software Engineer for a few years, I felt underqualified for open source. Fortunately, I regained some of my self-confidence through teaching at G{Code} and working at Botany. The team at Botany prioritized pair programming, providing constructive feedback, and providing deserved praise. Regaining some of my confidence helped me to feel confident enough to contribute to open source this time.
Mistake #4 - I didn’t ask for help 🤦🏾♀️
Most importantly, I never asked anyone for help. I tried to reach out a few times but quickly gave up. For example, I once attempted to direct message a maintainer on Discord. Then, I received an error message that I couldn’t direct message them because we hadn’t added each other as friends, so I abandoned the pursuit. There were more channels and people I could’ve reached out to, but I didn’t leverage my network. This time, when I reached out to community members, I gained a clear understanding of navigating the documentation, what issues I should tackle, and I gained a sense of belonging.
Don’t be afraid to contribute to open source projects, and don’t make the same silly mistakes I made. Contributing to open source truly is a great way to befriend more developers, strengthen your coding skills, and increase your confidence.
What's holding you back from making your first contribution? Comment below!