An Open Source Journey that began at 12

I’m Victoria Martinez de la Cruz, but ‘Vicky’ is also fine. First time I heard about the open source concept I was very young, I will say, 12 years old. At that time it was quite common to use IRC (text-based chat system for instant messaging designed for group and one-on-one communication on discussion forums or channels) to chat with friends and to get to know people. It was also in those forums I initially came across the term. I only knew there were communities that worked together to deliver quality software and that such software was free to use, read and modify by anyone willing to do so. I started learning about different open source software, starting of course by understanding Linux and all the different tools that it constitutes.

When I finished high school, I went to college and signed up for my degree in Computer Science. Before graduating, I was looking for internship opportunities to get some real world working experience. That is when I also heard about the Gnome Outreach Program for Women (Gnome OPW), nowadays known as Outreachy. I submitted my application to contribute to the GNOME Vinagre project. I didn’t succeed in that opportunity but I applied again the next year, this time for both GNOME Shell and for OpenStack-a fairly new cloud computing project. That is when I started contributing with code to OpenStack.

Like most beginners, I faced so many challenges but I got a lot of help and worked pretty hard to get to success which felt really good, considering the amount of work and dedication I put in. My first big win which I don’t take for granted was building my confidence enough to pursue my dream career. I got several blockers in my path which I managed to overcome, because I was convinced on what I wanted to achieve.

Today, I am a senior software engineer, team lead and mentor. I am very happy with how things turned out to be in my career and excited for what comes next. I enjoy working on cloud technology, so I totally see myself continuing my work in this area. I am also very passionate about music, so I have been thinking of the possibility of getting myself in that market. Will see what life brings! Something is for sure: I love open source, so I see myself continuously engaged with open source technologies and communities.

To you, excited or curious about open source, make connections. That is key for any career in technology as well as other fields. Surround yourself with people that help you to grow. Also, try to be that person for somebody else. Sharing your knowledge is part of growing. Don’t be afraid to ask questions, to apply to that job you are very passionate about. Learn to say no and prioritize your own agenda. Keep learning and researching. And don’t forget to enjoy the path!

Join me on twitter and linkedIn

Published by Nasah Kuma

Aditi’s Open Source Journey

Hi! I am Aditi from India.

According to Wikipedia, India annually produces 1M engineering graduates! (Yep! That’s a lot). And I am one of the 1M graduating in 2022. Just like most people, when I started studying back in 2018, I was pretty lost!

I spent my first three semesters trying to find a perfect road-map to being a good developer in a sea of infinite possibilities, skimming through various options. I wasn’t sure what I was going to do, I just knew, I liked being in the field! It took me 1.5 years to realize that there is no perfect roadmap, it’s just as simple as when you start something, you like it, you stay consistent and end up in the right place!

Now to the BIG question, How did I get into open source?

I read about Google Summer of Code and Outreachy internships as a part of my research. That’s when I came across Priyanka Saggu. She was a previous Outreachy intern with GNOME. She guided me on how to get started with open source. One of the best pieces of advice I received from her: “Switch from Windows to Linux!”

Apart from the idea of learning and working on huge projects, what excited me the most about open source was its spirit – FREEDOM.

The fact that contributors from all over the world are free to not only make contributions to a project but to copy it, modify it and share it without any fear of recrimination(this is fun). There is also the idea of building communities around different projects that helps bring people together and encourages newbies to be part of this exciting journey.

With this in mind, I decided to give it a shot through Outreachy. I first applied for an Outreachy internship in August 2020. My initial application was rejected but it gave me a glimpse of the open source universe! 

First thoughts: Woah..! I mean, I saw projects with 1000+ commits and people with plenty of experience! I couldn’t help but wonder, “Where does a fresher like me fit in?” That’s when it hit me that I needed to up-skill! At that time,I could write  C/C++ code and a little bit of python. So I decided to learn Full Stack Development with JavaScript. As I waited for Outreachy applications to open again in January 2021, I wandered around in IRC channels of previous year organizations. I worked on a few side projects and then  finally managed to work on the easiest good first issue in Mozilla! (Yay!) It was a small issue but it took me a few linter errors and 4 patches to get it right. Still, I was pretty overwhelmed by the size of mozilla-central and didn’t continue further. (I should have! ) 😦

I finished my outreachy initial application and devoted all my time in finding the perfect organization. That’s when I found GNOME. The skills required were C++ and JS – two languages I knew I had some experience in and liked working with. The GNOME community was indeed awesome. I never felt like an outsider. And that’s when I met Philip Chimento, one of the best mentors I’ve ever had. I remember being super excited when I finished building my first small app using GJS! (It just read  a file and returned the number of lines, but it worked and that felt like a good enough reason to go on! :D). I couldn’t wait to officially start my internship with GNOME but my Outreachy initial application got rejected again because of time commitment issues. 😦

I was pretty disappointed, but I couldn’t let go of GNOME, so I continued working on fixing small things here and there. I made a few improvements to the GJS guide. That’s when Philip suggested that I should apply for the coding experience program at Igalia!  It was a big step and a little scary, but I did it anyway!

While Igalia’s application process was going on, I applied to Google Summer of Code(GSOC). It was the project that excited me – The OpenWrt Device Page project. I had always been fascinated with the idea of OpenWrt and now I had a chance to contribute to it. I spent my time getting to know the community, understanding the project and making a few contributions.

May 17, 2020 – My first big achievement! I got selected for GSOC.  GSoC was an amazing learning experience. It wasn’t easy, but I liked spending hours on a bug, trying tons of approaches, and the happiness of finally getting something right was unparalleled! 😀 It allowed me to use features of ReactJS that I had never used before. I learnt the usage of version control tools in depth.

June 17, 2020 – The second big achievement! I got selected for Igalia’s Coding Experience with the compilers team. 😀

At Igalia, I got an opportunity to contribute to two of the three major JS Engines – WebKit and SpiderMonkey. At present, I am working on implementing proposal change-array-by-copy in WebKit. I spend most of my time browsing through the code base, reading documentations. And now after 6 months, It takes me a lot less time to get things done!

To someone who’s starting out with open source – It’s huge and overwhelming but the hardest part is essentially over when you get started! Stay consistent, ask for help, use the internet(there’s almost nothing you cannot find there)! 

And most important: Read the error message right! XD

Connect with me on twitter and linkedIn

Published by Nasah Kuma

Philip Chimento’s Open Source Story

Around the same time I read The Cuckoo’s Egg, which showed me the world of possibilities that knowledge of Unix-like systems gives you, and other resources which showed me there was a whole free/open-source “hacker” culture out there to discover. What exactly I wanted to do with this sense of possibility, I’m not sure I knew. You might say I loved the idea of open source before I actually understood how I could participate, or what it meant. The one thing I was sure of was that the next step was probably to remove MS-DOS and Windows from my computer and install Linux instead, so that’s what I did. Over the next several years I forced myself to learn how to configure my Linux system and repair it when it got messed up. I got really good at googling error messages!

By using open source software, I felt connected to open source culture even though I still didn’t know how I could actually participate. I was vaguely aware of IRC but didn’t really understand that it was a thing I could use. There were probably forums where I could have met other open-source enthusiasts, but I didn’t find them. I think getting involved and finding people to collaborate with is much easier today!

After a few years of tinkering with Linux I started once more to try to get into programming, but I still didn’t know what to do to actually participate in open source. I had a feeling that I was not yet good enough to contribute to someone else’s project, so I started a few of my own projects, but lost interest before they went anywhere. I do remember the first open source contribution I ever made! It was a patch that I submitted by email in 2006, to Skippy, a task switcher similar to what is now the Overview in GNOME. I never got a response…

After several false starts like this, in the fall of 2006 I finally started a project that I was motivated to finish. I had always been interested in text adventure games, and in 2006 Inform 7 was published, a design system for writing these games. The core was closed, but the development environments were open source, and they were only available for Mac and Windows. This looked like a good learning project for me! I expected myself to lose interest before I got anywhere, like I had with my other programming projects, but I actually stuck with it until I got something working. I first published it in October 2006 and got some good feedback immediately from the Inform community, which motivated me to keep working on it. Eventually I was invited to join the Inform development team. Because I had somewhat arbitrarily chosen to build the app’s UI using the GTK toolkit, I also learned a great deal about GTK and started getting involved in the GNOME community. Learning many best practices from others led me to refactor almost the entire app around 2008. When I saw how much I’d improved in two years, I started to be able to kick my feeling of inadequacy and consider that I could be a good programmer who had something to offer to open source projects.

Around that time, Stack Overflow was launched, and I started answering questions about GTK on Stack Overflow. I don’t do much of that anymore, but I had lots of free time back then, and I spent lots of it writing little programs to answer Stack Overflow questions about GTK. Helping other people gave me a good feeling, but also gave me a lot of valuable practice in thinking about how to solve problems. To this day, I’ve still got the top number of GTK questions answered on Stack Overflow! Interestingly, I believe that partly enabled my career switch into software engineering in 2013, because I made a connection with my first software job at Endless due to showing up in searches.

Fast-forward to now, in 2022, I work as a JavaScript engine developer for Igalia, which means that I collaborate on proposals to improve the JavaScript programming language, and implement them in browsers’ JavaScript engines. In my free time I volunteer for the GNOME desktop as a maintainer, and a board member of the GNOME Foundation. Both of these are exciting work and not things I could have imagined myself doing 20 years ago. In some sense being able to participate in open source is a dream come true.

My advice for others is a few things: one, don’t get discouraged! You can see that my journey at the beginning consisted of literally years of tinkering without really any plan or goal, and many false starts until something ‘clicked’. I have a feeling that this is not unusual. Two, practice! Although I attribute a lot of my journey to luck, I can’t deny that putting in those hours helped me meet the opportunities when they arose. Three, the single most useful skill I learned is how to approach making sense of an unfamiliar error message.

Let’s connect on twitter.

Published by Nasah Kuma

open source is flexible

I had as main objective when I started my Coding Experience(CE) to get to grips with C or C++ since I am convinced that understanding one or both languages will help me become a better developer. Cog is developed in C which explained my excitement when I was introduced to the project. The first couple of tasks assigned to me were challenging but quite beginner-friendly.

Like it usually happens to many developers, I got stuck on an issue. After weeks of working on it, I couldn’t complete it. My mentor and I had a couple of meetings/coding sessions which helped me move ahead though not to the point of finishing the work. I could feel that there was a knowledge gap I had to bridge in C which studies and practice hadn’t given me that ability yet. Cutting the long story short I got really exhausted and anxious and suggested to my mentor that we move to something else and revisit this issue later.

After a couple of days, I was presented with a new program that can help me make the most of the CE. It turns out I will be moving back to contributing actively on GJS since there was good progress when I previously contributed to it. The only difference is most of my contributions will be in C++ and will probably include more core stuff.

Most if not all open source communities work to help contributors stay motivated and to keep making progress. For this reason they have very flexible methods of working. It’s a more free culture than you’ll find when building proprietary software. It’s very easy to find situations where a couple of contributors sit down to take their time and come up with a plan that makes the environment more conducive for new contributors. GNOME does this, Igalia and Mozilla too based on my interactions. It makes sense to mention that not everyone gets the opportunity of venturing into open source through Outreachy hence I will be talking later about other opportunities in open source for beginners and a handful of success stories I have come across.

This blog post can be considered a reason why you can start your software development career in open source. You just need to find an organization that meets your needs. By the way Cog 0.12 is soon be released. Release notes will be available here.

Thanks for reading and I will love to hear how flexible you think open source is in the comments and how this has helped you make progress. Please do not forget to like, share and subscribe and let’s connect on twitter and linkedIn.