Why contribute to GitLab platform?

Posted in Thoughts 💭 on August 10, 2023 by Dannyel Cardoso da Fonseca ‐ 7 min read

Why contribute to GitLab platform?

Do you know GitLab? Have you heard about it? Some say: “Hmmm… it’s like GitHub, isn’t it?”. Yeah… for starters we can say “yes” but GitLab goes much further 🚀.

Roughly, GitLab is an all-in-one DevSecOps solution that combines powerful Git repository management, project planning and tracking, issue management, continuous integration and delivery (CI/CD), and more into a single integrated solution so that teams can smoothly automate and synchronize their entire software development lifecycle (SDLC). All this is available in two editions: GitLab CE, the core and open-source and GitLab EE, proprietary and paid.

It turns out that GitLab is not just a product, but also a vibrant, all-remote company behind its platform that embraces and promote contributions from all individuals. This is a great the opportunity to contribute, learn, and grow within this thriving community.

In this post, I present you with compelling reasons why, as a developer, you should embark on contributing to the open-source GitLab platform, regardless of your background, level of development expertise, or even familiarity with the GitLab platform.

Let’s get it started! 💃🕺

Everyone can contribute 🙌

That is GitLab’s mission 🎯, their driving force, and in my opinion, that is the greatest advantage of contributing to them.

It’s not just about being open-source and done, go ahead and contribute. No, GitLab creates an inclusive and accessible environment that fosters new collaboration. They achieve this by providing comprehensive documentation 📖, maintaining high-quality code, implementing thorough testing practices, integrating popular languages, frameworks and databases, and offering an exceptional development toolkit, the GDK, that help us to spin up easily a development environment.

For first-time contributors, they apply the label (link) and/or (link) onto the issues that are typically straightforward and well-explained having an implementation guide that teaches you how to solve the problem. Sometimes, the issue solution is practically given, you just need to apply it. But why do they do that 😱? Well, the objective is to reduce the initial barriers for you to engage and get in touch with the entire contribution process: setting up GDK for local development environment, creating a branch, starting the development, creating a merge request and receiving feedbacks from reviwers until your code be merged 👏🎉🥳.

Moreover, GitLab boasts a team of dedicated maintainers, developers, and product managers who serve as valuable mentors and guides, empowering contributors throughout their journey. We can find them on Youtube (@communitycodersforgitlab), Discord (#contribute) and Meetup. Every Tuesday they promote GitLab Community Pairing to do some live coding and pairing. And don’t worry if you can’t participate during the scheduled hour. All sessions are recorded and available on YouTube Live Coding Sessions playlist.

Above, the recorded session of the first Meetup I attended 🥹. It was a very step-by-step live coding that gave me an overview of how to tackle an issue. I must confess, I felt a few butterflies 🦋 in my stomach because I was unsure about my English proficiency. However, by the end of the day, I experienced a welcoming atmosphere and was able to make my litttle contribution 💪.

Contribution is everywhere ✨

Contribute to GitLab is not only about code. There are various ways you can make valuable contributions such as documentation, bug reporting, user support, design, translation, and more.

Everytime you do an action, this action counts and it is shown in your GitLab profile as a colored tile. Even comments on issues are valueable contributions 👏.

Issues, merge requests, pushes, and comments.
Issues, merge requests, pushes, and comments. My profile.

In my profile, for example, not all colored tiles are code contributions 🫣. Not even half of them to be honest! Most are my interactions in comments on issues or on merge requests.

Hackathon 👾

How about contributing and still getting prizes? Thanks to GitLab Hackathon this is possible.

GitLab Hackathon is a week-long celebration of contributions that occurs every quarter. This event is an incredible opportunity for newcomers to open-source contributions. By collaborating with a diverse group of contributors and GitLab team members, you’ll be immersed in a dynamic learning environment that encourages growth and creativity.

Just one accepted merge request is enough for you to get a prize. The last time I partipated I earned these swags.

My first prize
GitLab swags. Q3'2022 Hackathon.

Boost your CV 🚀

If you are an early-career developer without prior market experience, whether you are transitioning from another profession or you are a recent graduate, contributing to GitLab offers a valuable opportunity to gain real-world experience that surpasses what is typically acquired through tutorial courses and certificates.

As a GitLab contributor you learn and develop these skills:

  • Understanding requirements: when addressing an issue, it’s crucial to comprehend its nature. This involves grasping the context provided in the description and following the conversation thread to capture all relevant details.
  • Effective communication: when confronted with challenges such as deciphering vague feedback, seeking additional details to address a problem, and showcasing and validating your contributions, effective communication becomes crucial. It’s essential to express your thoughts and doubts comprehensively in writing.
  • Navigating through an extensive codebase: to locate the issue in the code and check how your solution affects other parts, you need to explore a little bit the GitLab’s large codebase. This trip is a practical lesson in architecture of large web systems.
  • Writing professional code: you write code using the top programming languages (Ruby, JavaScript, Go, …) and their frameworks (Rails, Vue.js, Jest, RSpec, …). You also learn and apply effective design patterns in both frontend and backend development, ensuring seamless integration through REST and GraphQL APIs. Moreover, you develop the skill to write internationalized code, enabling text and messages to be externalized from the code and translated into various languages. Additionally, you gain experience in using linting tools and code formatting to adhere to the established programming style.
  • Writing tests: often you need to write tests, either to update an existing one or to create a new one in order to cover new use cases. Most of the time, you write unit tests, but there are moments when you work on some end-to-end tests as well.
  • Understanding the development cycle: with each issue, you practice the steps of the software development cycle: analyzing the requirement, implementing the solution, writing tests, submitting the code and screenshots for review and validation, gathering feedback, refactoring, and improving.

In short, contributing to GitLab will boost your CV. And you MUST expose everything you did and learned. To inspire you, take a look at what I’ve written on my LinkedIn profile.

My first issue
My LinkedIn experience section about GitLab.

Everything you do is public, making it easy for any recruiter or technical professional to verify your accomplishments, code and skills.

Final thoughts 💭

The open-source world is an open gateway for you who is seeking for experience in a genuine project and team environment without requiring from you a prior experience. Contributing is always a learning experience that always favors continuous professional growth.

However, not every open-source community fosters a welcoming atmosphere and simplifies the onboarding process for newcomers. GitLab distinguishes itself in this aspect by providing comprehensive support for individuals to embark on their initial steps and gradually progress forward.

Give yourself a chance and come contribute to GitLab you too 🦊

Comments 💬

Comment bellow using your GitHub 🐙 account or directly on the discussion #2.