When people first think of "open source," their mind probably first goes to code—something technical that requires an intermediate understanding of computers or programming languages. But open source is a broad concept that goes beyond binary bits and bytes. Open source projects hold great regard for community participation. The community is a fundamental piece of a successful open source project. For my experience getting involved with open source, I began in the community and worked my way around from there. At the age of 15, I was beginning my open source journey and I didn't even know it.
Gaming introduces open source
One of my strongest memories of a "gaming addiction" was when I was 15 and a younger cousin introduced me to the game Minecraft. The game was in beta then, but I remember the sandbox-style game entertaining the two of us for hours. But what I discovered was that playing the game alone became boring. Playing and mining with others made the experience more fun and meaningful. In order to do this, I learned I would have to host a server for my friends to connect to play with me.
I originally used the "vanilla" Minecraft server software, but it was limited in what it could do and didn't compare to other multiplayer servers. They all seemed to be using something that offered more, so players could play games, cast spells, or do other unique things that would normally not be possible in the game. After digging, I discovered Bukkit, open source Minecraft server software with an extensible API that lets developers change the multiplayer experience. I soon became wrapped up with Bukkit like a child with a new toy, except this toy had me digging through my computer to set up port forwarding, setting NAT records, and creating static IP addresses. I was teaching myself the basics of computer networking in the guise of creating a game server for my friends.
Over time, my Minecraft server hobby began to take up more and more time. More people began playing on my server, and I began searching for ways to improve the performance of my server. After doing some digging, I discovered the SpigotMC project, shortened to just Spigot. Spigot was a fork of the Bukkit project that made specific enhancements to performance. After trying it on my server, I discovered considerable performance gains and committed to using it from then on.
Participating in SpigotMC
Before long, I began running into new challenges with managing my Minecraft server community, whether it was finding ways to scale or finding the best ways to build a community up. In October 2013, I registered an account on the Spigot forums to talk with other server owners and seek advice on ways I could improve. I found the community welcoming, accepting, and willing to helping me learn and improve. Several people in the community were owners of larger servers or developers of unique plugins. In response to my detailed inquisitions, they responded with genuine, helpful feedback and support. Within a week, I was already in love with the people and helpfulness of the Spigot community.
I became an active participant in the forum community in Spigot. Through the project, I was introduced to IRC and how to use it for communicating with other server owners and developers. What I didn't realize was a trend in my behavior. Over time, I began shifting away from asking all the questions and started to become the one answering them.
In April 2014, the Spigot project lead reached out to me asking if I would consider a role as a community staff member. My responsibilities would be responding to reports, fostering a helpful and friendly community, and maintaining the atmosphere of the community. With as much prestige and honor as my 16 year-old self could muster, I accepted and began serving as a community moderator. I remember feeling privileged to serve the position—I would finally get to help the community that had done so much to help me.
Expanding the open source horizon
Through 2014 and 2015, I actively served as a moderator of the community, both in the forums and IRC channel. I remained in the Spigot community as the project steadily grew. It was incredible to see how the project attracted more and more users.
But my open source journey did not end there. After receiving my high school diploma in May 2015, I had set my sights on the Rochester Institute of Technology, a school I noted as having the country's only free and open source software minor. By coincidence, I also noticed that my preferred Linux distribution, Fedora, was holding its annual contributor conference in Rochester a week before I would move in for classes. I decided I would make the move up early to see what it was all about.
Flock 2015 introduces Fedora
The summer passed, and before I knew I was ready, I was packing up from my home outside of Atlanta, Georgia to leave for Rochester, New York. After 14 hours of driving, I finally arrived and began moving into my new home. A day after I arrived, Flock was slated to begin, marking my first journey in Rochester.
At Flock, I entered as an outsider. I was in an unfamiliar city with unfamiliar people and an open source project I was only mildly familiar with. It was all new to me. But during that week, I discovered a community of people who were united around four common ideals: Freedom, Friends, Features, First. The Four Foundations of the Fedora Project were made clear to me. The community members at Flock worked passionately toward advancing their project during the talks and workshops. And after the talks finished, they gathered together for hallway discussions, sharing drinks, and enjoying the presence of their (usually) internationally dispersed team. Without having ever attended a Fedora event before, I knew that the Four Foundations and the community behind Fedora were the real deal. Leaving Flock that year, I vowed to pursue becoming a part of this incredible community.
Pen to paper, keyboard to post
The first major step I took toward contributing to the Fedora Project was in September 2015, during Software Freedom Day. Then Fedora Community Action and Impact Coordinator Remy DeCausemaker was in attendance representing Fedora. During the event, I reached out to the Fedora Magazine editorial team asking to become involved as a writer. By the end of September, I penned my first article for Fedora Magazine, tying my experience in the Spigot community into Fedora with "Run a Minecraft server using Spigot."
My first step getting involved with the Fedora community was an exciting one. I remember feeling proud and excited to see my first article published on the front page, not only helping Fedora, but also helping Spigot. I realized then that it was relatively straightforward to contribute this kind of content, and I would keep writing about software I was familiar with for the magazine.
As I continued writing posts for Fedora Magazine, I became aware of another team forming up in Fedora: The Community Operations, or CommOps, team. I subscribed to their mailing list, joined the IRC channel, and attended the first meetings. Over time, I became wrapped up and involved with the community efforts within Fedora. I slowly found one thing leading to another.
Today, I am the leading member of the Community Operations (CommOps) team, editor-in-chief of Fedora Magazine, a marketing team member, an ambassador of North America, a leading member of the diversity team, and a few other things.
Advice for other students
When you're first getting started, it can sometimes be tough and a little confusing. As students getting involved with FOSS, there are a few challenges that we might have to face. A lot of this can be with making the first steps into a new project. There are countless open source communities of various sizes and they all do things a bit differently from others, so the process changes from project to project.
One of the most obvious challenges with getting involved is your personal experience level. Especially when getting started, it can be easy to look at a large or well-known project and see all the work devoted there. There are smart and active people working on these projects, and many times their contributions are quite impressive! One of the many concerns I've seen other students here face (including myself at first) is wondering how someone with beginning to moderate experience or knowledge can get involved, in comparison to some of these contributions from active contributors. If it's a large project like Fedora, it can be intimidating to figure out where to start when there's so many things to do and areas to get involved with. If you think of it all as one big project, it is intimidating and difficult for you to make that first step.
It helps to break bigger projects into smaller pieces. Start small and look for something you can help with. A healthy open source project will usually have things like easy-fix bugs that are good starting points with if it's your first time contributing. Keep an eye out for those.
Another challenge you might face as a student or beginner to open source is something called imposter syndrome. For me, this was something I had identified with before I knew what it was. For a definition, I'll pull straight from Wikipedia first: "A term referring to high-achieving individuals marked by an inability to internalize their accomplishments and a persistent fear of being exposed as a 'fraud.'"
Imposter syndrome is a common feeling as you get involved with open source, especially if comparing yourself to some of those active and smart contributors that you meet as you become involved. But you should also remember you are a student—comparing yourself or your contributions to a professional or someone with years of experience isn't fair to yourself! It's not apple to apples. Your contributions are worthy and valuable regardless of how deep, how many, or how much time you spend on the project. Even if it's a couple of hours in the week, that's saving others those couple of hours and it's adding something into the project. A contribution is a contribution—it's a bad idea to rate the worth of contributions against other contributions.
There are big benefits to contributing to open source as a student. It's a great way for you to apply things you learned in classes to real-world projects and gain experience. It can take you to the next level as a student and can improve your career prospects, too. It's also a great networking opportunity. In open source, you meet many incredible and smart people. In my time in Fedora, I've met many contributors and had various mentors help me get involved. I've made new friends and met people who I normally would never have had the opportunity to meet.
There are also opportunities for leadership in open source projects. Whether it's just one task, one bug, or even a role, you might find that sometimes all it takes is someone willing to say, "I'll do this!" to have leadership on something. It might be challenging or difficult at first, but it's a great way for you to understand working in team environments, how to work effectively even if you're remote, and how to break down a task and work on finding solutions for complex problems.
Lastly, it's important for younger people to become more involved with open source communities. As students and younger community members, we add unique perspective and ideas to open source projects. Any project worth contributing to should be welcoming students who are willing to spend their time working on the project. In short, there is absolutely room for students to get involved with open source!