Code and Collaboration: A Review of my Journey as a Developer and a Core Collaborator

tagged with Community Contribution Developer Fun Git GitHub

Almost a year ago to the day, the fear of bringing a live website down as I deployed my first PR into production loomed over me. But today, I celebrate growth, learning, and being part of the Umbraco Core Collaborator Community team. Sometimes, just saying yes and dealing with the consequences - if any - can be a great thing.

Where it all Began.

So, as I said. Almost a year ago today it was the first time that I had deployed code (that only I had written) into production, and it was a nerve-wracking but incredibly exciting experience. The thought of bringing the whole site down crossed my mind a few times... I am sure many of you reading this are now thinking back to your first go-live or a time when you made a large contribution to a codebase for the first time. It may have felt overwhelming, it may have felt exciting but I am happy to say that I did not bring the site down, and a year on I am now ‘officially’ a Junior Developer, and I am part of the Umbraco Core Collaborator Community team.

I was not expecting this to come through the door - thanks again Matt, Victoria & team true!

 

I always liked the idea of getting involved in a community team, something I could sink my teeth into that exposes me to different repositories of code or an alternative way of thinking. I was nervous about applying for the role on the Core Collaborators team, for fear I wouldn’t know enough to be of any help. In my eyes, this was a role for a senior developer who knows the Umbraco codebase like the back of their hand! I even reached out to Seb - the Core Collabs Team Steward - to make sure he knew I was a junior dev. However, I also had a feeling that with a background in software testing, I could (where needed) put these skills to the test to help out. Putting any worries, or doubts to one side, I put in my application, I had an interview, and I was super happy to be accepted and I joined the Core Collaborators team in February.

A collated picture of every person on the core collaborators team

 

Overcoming the Challenges.

Being part of a community team means you do have a level of responsibility, especially when your day-to-day task includes making decisions on what can and cannot make its way into the Umbraco codebase. In the first few weeks, I felt nervous about the fact that I hadn’t been able to merge a PR in yet. It took me about a week to figure out the reason why the solution wasn’t working locally for me was because I needed to upgrade Visual Studio… And I found this out thanks to a kind person in the Umbraco Discord community - shout out to them!  However, I quickly realised that (as with my role at true), there wasn’t any pressure within the Core Collaborator role, I wasn’t expected to be up to speed straight away and accepting PRs within 1 week, it was okay (and even encouraged) to ask for help.

 

Community is Key.

Joining the Core Collaborators team has given me invaluable insights into the broader landscape of Umbraco. Not only am I gaining a comprehensive understanding of previously unfamiliar aspects of the codebase, I have had the opportunity to work with like-minded people from all over the world. Working alongside the HQ team has been great, and now I feel I have a good knowledge of what a good, or bad PR can look like. If you’re wondering what a bad PR could be, check out the Unwanted Changes documentation here.

A key aspect of the role is trying to decipher between "this PR works as expected" and "this PR not only works as expected but also brings substantial value to the Umbraco solution.” I am still not always 100% on this distinction but with the support of my fellow core collaborators team, and the HQ team I can always make sure my judgement is correct and ultimately collaborate on the answer.

It didn’t hurt of course, that I got to go to Denmark for the community team trip! This was a great experience, to meet up with my team in real life for the first time, and also meet the other Umbraco community teams. It was great to learn about what the other teams get up to, and I also met most of them for the first time. Something I took from this trip was the opportunity to discuss complexities or issues other fellow developers or users have experienced, hearing other people have the same or similar code-related opinions gave me a nice feeling of “oh, maybe it isn’t just me” and this feeling is really starting to reinforce that I should trust my instincts and opinions when it comes to code.

It was also amazing that I was able to chat with many people whom I realised as we were speaking I had met them previously via their PRs when they had contributed to the Umbraco CMS! I definitely said “I think merged your PR!” more than once on that trip.

Tip

Now, I couldn’t just write an article about being on the Core Collaborators team without providing some useful tips for creating your first contribution, could I? 

  1. Start small - the issue tracker is the best place to look for bugs to fix, but to start, you can find ‘good first issues’ by simply looking for this label. It’s also important to check it out to see if the issue you want to fix hasn’t already been fixed. I do not enjoy rejecting people’s hard work when they have either spent time on something someone else has already fixed, or a feature that the HQ team do not feel is necessary.
  2. Test, test, test - I am sure you’ve heard this many times, but I think it is extra important when contributing to open-source. Not only will it mean you won’t have to come back to make further changes it will also speed up the process of getting your pull request merged.
  3. Steps to replicate - this is the most important one in my eyes. As someone who often has just a couple of hours to look at PRs per week, I will always choose to look at a PR with steps to replicate, over one that doesn’t. It also means we get a better understanding of what you are trying to achieve and why. Extra points if you include before and after pictures, and extra, extra points if there is a screen recording attached!
  4. Ask questions - if you are unsure of where to start, or if you feel your code should work, but it doesn’t, just ask. The Umbraco Discord is a great way to get in touch with us, or you also have the opportunity to create a draft PR and a member of the Core Collaborators team, or someone from HQ will be happy to help. Seek guidance when needed, and you'll find the community is more than willing to help.

 

Remember, being part of an open-source community is not just about writing code; it's about learning, collaborating, and contributing to something that has been touched by many awesome developers. Something I have taken away from this role, and I recommend to others is to embrace the challenges, relish the learning experiences, and join the diverse and supportive world of open source - Umbraco’s, of course. And if you’re interested in finding out if you can apply to be part of an Umbraco community team, make sure to keep an eye on Umbraco’s blog or socials and this will be the place to apply. And if you are nervous - don’t be. Just do it, it’s been a great experience, and I’m looking forward to what is yet to come.