Contributing to open source projects like GitLab can be a powerful way to learn software development. Just ask Mughees Pervaiz, who is studying computer science at the University of South Asia, and Young Jun Joo, who is studying mathematics and economics at the University of Waterloo in Canada. They recently contributed to GitLab as part of a fellowship with Major League Hacking, a Certified B corporation working to empower tomorrow's technology leaders. The fellows' 12-week program recently concluded, but before it was over, we gave them one final assignment: Explain your favorite contribution to GitLab during your fellowship.
Here's what they had to say.
During my internship, I was a part of the GitLab Foundation team under the mentorship of our maintainer, James Rushford. My primary responsibility was to improve both the developer and user experience on GitLab.
My favorite contribution was helping to update expand/collapse buttons in roadmaps from link buttons to tertiary buttons. Before the changes, the feature was using old components, and I updated it to new GitLab UI components. We had to migrate the expand/collapse buttons that appear in the roadmap tree drawer. So we were working with the tree view (or, you could say, the 'child components' of the roadmap) and, because of this, it was very difficult for me to find the right file from GitLab's very large codebase.
This contribution also helped me develop my collaboration and communication skills. I had to work closely with other members of the GitLab community, including designers, product managers, and other contributors, in order to refine the feature and ensure that it aligned with GitLab's design principles and user experience goals.
I also learned not to jump into coding without understanding an issue completely. Here, James helped me quite a bit: When I asked for his guidance, he responded with the following questions:
- What is your understanding of the problem?
- What did you try so far?
- What did you find so far?
- What are your next ideas?
- Where did you look for information?
At first, I was confused. Why is he asking me these questions instead of helping me? But following James' technique really helped me with the issue, and I solved the problem by myself. At that moment, one of the most important lessons was clear to me: Don't underestimate myself. James wanted me to go beyond my limits, get out of the box, and try to solve the issue by myself so I could have a better understanding of what was happening in the codebase. So to anyone wishing to contribute to GitLab, I would say: Believe in yourself and give your best, and make sure you read the issue closely to develop a good understanding of the problem you're trying to solve.
Young Jun Joo
During my Major League Hacking fellowship with GitLab, I worked on improving the GitLab search function. Some GitLab users were experiencing a slow search experience — and as a user myself, I understood the importance of having a quick and efficient search function. I wanted to help make that a reality for other users.
So I implemented a memoization algorithm that caches search results. Now, if a user searches for the same word multiple times, the search results will be retrieved from the cache instead of being recalculated each time. This results in a faster and more efficient search experience for GitLab users.
My contribution to GitLab was significant because it improved the search function's performance and efficiency, making it more reliable and user-friendly. Working on this project taught me a lot about optimization and efficiency in software development. I also gained a deeper understanding of how memoization algorithms work and how they can be used to improve performance.
My work on this project not only was extremely rewarding but also had a positive impact on GitLab and its users, who can now quickly and easily search for the information they need without experiencing lag or delays. I'm proud to have made a meaningful contribution to such a valuable tool for software development, and grateful for the opportunity to have worked with such a talented team of developers.
Want to improve your open source development skill by contributing to GitLab? You can start right now by reviewing the project's list of outstanding issues (hint: start with issues labeled
quick win). And be sure to connect with our community on Discord. We'd love to meet you.