Phew, it feels so good to finally write again on this blog! 😝

I have done well to have postponed this post for 2 months but today feels like the perfect time to publish it on my blog.

As many of you already know, I no longer work at Grafana Labs. I left the company 3 months ago. I’m really blessed to have had the opportunity to work on an open-source project used by millions of people globally. I learned a lot, grew my skillset, met a lot of new people, and for the most part, I made a meaningful impact by contributing code to the Grafana open-source software.

In this article, I want to share some of the things I learned while working on open source full-time as an individual contributor.

There’s more to software engineering than coding

Throughout my software engineering career, I’ve always bought into the school of thought that says coding is all one needs to survive in this career path. Working on Grafana full-time made me realize that there’s a lot more that happens behind the scenes other than coding. Things like software testing, project scoping, cross-team collaboration, design documentation, and effective communication, among others. I began to see how important it is for large engineering teams to maintain team rituals like bug squash weekly, UX feedback sessions, hackathons, sprint planning, pair programming sessions, etc. At first, it felt like a time-sucking activity but as I grew older within the team, I began to see the need to learn these new skills.

Always focus on the main priority

Working on big, complex projects can sometimes be exhausting. You tend to keep track of all the moving parts of the project, as well as other ongoing activities happening within the company. In most cases, you get carried away by other work engagement that is less important to your team. Working on Grafana helped me learn how to effectively prioritize my work according to what my team needed at a particular point in time. It can get messy at first, but once I mastered the art of effective prioritization, it took my productivity to the next level.

Understand the problem well enough before providing a solution

Debugging is hard. Writing a good fix is even harder. At first, I was just focused on pushing out a bug fix as fast as I can. That alone affected the quality of my work. I end up creating fixes that don’t solve the root cause. This alone motivated me to go through the other route, which seemed harder but worth it in the end: test-driven development. I learned how to take out time to investigate problems, find the root cause, write a test, and create a fix to make the test pass.

Always see the bigger picture when thinking of solutions

If there’s one thing big software projects have in common is that they tend to have a lot of moving parts. What do I mean by that? Well, big companies tend to have small modules that other teams within the company rely on. Mistakes can be quite expensive especially when multiple divisions depend on one specific module. So for changes to be made, it required that I had to think far and wide on the possible impact the change might have on other divisions within the company. This was a lesson I learned the hard way.

Build meaningful relationships

I was almost carried away by lots of activities happening within the company that I almost forgot to meet people in other departments within the company. From the onset, I knew the importance of building networks, especially in the software industry. I signed up for an activity known as the Donut meeting. Donut meeting allowed me to schedule a call with someone I haven’t met before within the company. That gave me the opportunity of meeting new people and learn more about the work they do in the company. Meetings like this end up with a friend request on LinkedIn; how awesome is that?!

Here you go! These are a few things I learned while working at Grafana Labs. Of course, there are tons of other things I learned but these are some of the most valuable ones I could think of. I know you might be wondering what my next phase would be? Well, I’ll get to share more about it in my next post so keep an eye on this blog! For now, I’ll continue to recharge, learn more about continuous profiling, and continue contributing to the cloud-native open source community!