The Journey into Open Source: My #ContributhonbySCA Experience
What is Open Source and Why is Everyone Talking About It??
Open Source simply means: free to use, study, modify, and distribute.
That is - As a developer, designer, technical writer, project manager, or anyone at this point, you can contribute to lots of open source projects through coding, writing, or collaborating to build a new feature while being a beginner or an expert in your field.
My Fears
- I had barely made it through learning my stack and now, contributing to open source projects??
- How do I start... Where do I start from?
- What if I submitted something that crashes their server??
These were my thoughts whenever I heard about contributing to an open source as a beginner in tech.
But my interest in open source grew when I attended the OSCAFEST in March 2022.
- An annual open-source gathering, aimed at increasing the awareness of open source contributions in Africa among designers, developers and other careers in tech.
The event was filled with series of talks and workshops about how the future is OPEN, and how a developer, contributing to an open source project, could climb their way to the top in their tech career, and stand out to employers when applying to jobs while building loads of connections.
I decided I was ready to start my journey into the open source world, which led me to apply for SheCodeAfrica Contibuthon 2022 program and luckily, I got accepted into the programme.
My joy knew no bounds when I received the congratulations letter as I drafted a new schedule to accommodate the program while making my way into the Layer5 community channel.
Layer5 Open Source Community
For the next 8weeks, I was paired to work with Layer5 as a collaborator on the Leaderboard project for the Layer5 Discuss Forum.
- Layer5 fosters the world's only open source community dedicated to helping organizations understand and manage service meshes and cloud-native infrastructures while maintaining prominent open source projects.
I had access to mentors such as Ruth Ikegah, Raj Gaurav, Ekene Leonard and Etiene James who were dedicated to easing my journey into open source contributions throughout the period of 8weeks.
My Contributions
I worked on building a leaderboard for Layer 5’s discuss forum to show the most active participants based on various user metrics such as the number of likes a user received, the number of posts a user has created and the number of solutions a user has provided.
While contributing to the project,
- I worked on gathering the required data from the discourse API.
- Deriving each user's points, and
- Rendering the metrics of all users dynamically into the leaderboard. As the top 5 contributors were specially rendered in a separate table from the rest.
The aim of this project is to encourage more intentional communication and exert positive peer pressure on community members, thereby subconsciously incentivising them to give more solutions to problems discussed on the forum, and actively engage with content posted by other members.
Challenges Faced
Understanding the project execution process, as we went from setting up a local discourse development environment and rendering static web pages, to creating a new project from scratch using HTML, CSS and Javascript in other to generate a separate leaderboard plugin, which was to be later infused into the layer5 discourse forum.
Getting the required data needed from the discourse API, as the data needed were scattered in separate endpoints. I decided to use the parallel API requests method to get all the data, but the method was later flagged down as unscalable and hence we had to derive a new discourse endpoint using the reverse engineering method before fetching the required data.
Writing a design specification, as the leaderboard was going to be a new feature to be introduced in the discuss channel, a design specification has to be written to guide other contributors who would work on the leaderboard in future.
I also faced Version Control issues while trying to make my first contribution, before getting rescued by one of the mentors.
Experience Gained
Overall, the journey into open source was challenging, but I have definitely gotten some life-long skills that would help in building my career as a software developer, such as:
- Working on the Ubuntu Terminal and using the proper version control method when contributing to an open source.
- Developing projects that are scalable, sustainable and Inclusive.
- Providing a design specification document, when working on new features, to enable easy modifications by others, amidst other problem solving and analytical thinking skills gained in the process.
Pull Requests
- https://github.com/layer5io/discuss-board/pull/19
- https://github.com/layer5io/discuss-board/pull/21
- https://github.com/layer5io/layer5/pull/2843#event-6733653412
Next Steps
After getting crowned with the beautiful armour of being an Open Source Contributor...
I hereby pledge to uphold the honour and keep contributing to Open Source Projects while still reaching out to others around me to come join the train.
Appreciation
Thank you She Code Africa for creating such an amazing platform, and to my amazing community host: Layer5, I say a very big thank you as I look forward to future collaborations with you.🧡🧡🧡
If you followed the story thus far, Thank You! You're the real MVP! 💖
Extra Bites...
Concerning my fears, I discovered that behind every open source project out there, is a community of helpers who are always ready to help a first-time contributor find their way, so all you just need to do is find a project you are interested in, join their community, introduce yourself, and trust me, a good-first time issue might just be waiting around for you.😉
Also, My changes didn't break the server😄 as the project maintainer and admins, were ever ready to review the changes, before merging them to their existing code base.
Subscribe to my newsletter
Read articles from Oyindamola Dawodu directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Oyindamola Dawodu
Oyindamola Dawodu
Senior Frontend Engineer | Technical Writer | Community Builder