GitLab Heroes unmasked: How a difficult start in coding led to being a valued contributor

A key to GitLab’s success is our vast community of advocates. Here at GitLab, we call these active contributors “GitLab Heroes”. Each hero contributes to GitLab in numerous ways, including elevating releases, sharing best practices, speaking at events, and more.  Niklas van Schrick, who currently works as a Developer trainee, has been an active GitLab Hero since November 2021. 

Niklas upholds the GitLab values, especially for transparency, by sharing his trials and discoveries with self-hosted instances. We all can learn from each other’s mistakes, which leads to collaborating to improve processes and build a better developer experience.

His journey to becoming a GitLab hero is detailed below.

A difficult beginning

Niklas van Schrick: Every developer has to start somewhere. My journey started in May 2019 with Java and Minecraft. While development in Minecraft is great for fast results, based on my experience it’s not the best idea for a beginner.

It introduces the problem of learning a framework instead of the actual language and it delayed my learning process. I was able to write some functionality as plugins for a server, but I didn’t know a single principle of the underlying language, Java. That led to code that was not easily maintainable. For each new functionality, I was building quickly without properly thinking about the structure of my code.

When I was starting out, I learned from another developer. Although it is great to have someone guide you through the process, it can also lead to issues. My mistake was believing everything my mentor told me and not looking for solutions myself. In this way, I learned anti-patterns of code design, which led to a full refactoring of the project at a later time. It also slowed down my learning process further as I was asking for help before searching for solutions myself.

Van Schrick: In early 2020, we moved our projects to a self-hosted GitLab instance. It was my first experience with version control. It was a big advantage because we were able to see previous changes and easily identify the causes of bugs. I recommend using a version control system even in the early stages of your development journey, as it makes many things easier and keeps a history of your work. In the beginning, it is totally fine to just push to master or not even use a remote repository.

A big improvement for me was joining a developer community, as there are many developers who are happy to help. I learned many new concepts that were widely used by the developers of that community, and this led to much more maintainable code. You don’t even have to actively ask in the community to learn new things.

Most of the time, it is enough to keep up with the messages and read the conversations from others. In a helpful developer community, you always have someone who says, “Why are you doing it like this? There are better ways to do this,” and offers suggestions to improve the code.

Contribute, contribute, contribute

Van Schrick: Another big step is to make contributions to open source projects. It allowed me to be part of the code review process from others, and learn from it. My first contribution to an open source project, which was not led by me, was a typo fix in a GitLab view. I was surprised at how well the code review went and how fast it got merged. The positive experience encouraged me to join an open source project as a maintainer, and it has been a great experience. I ended up being an active contributor to the GitLab project and a GitLab Hero.

GitLab welcomes every new contributor and has many possibilities for your first contribution.

“A @gitlab Hero shares his lessons learned and how he overcame a few mistakes to become comfortable as a contributor.” – Jamie Rachel

Click to tweet