RSS
Blog
Steps Toward a Great Career in Free and Open Source Software, Part 2

Steps Toward a Great Career in Free and Open Source Software, Part 2

October 26, 2021 - by Andrew Oram

The previous article described the benefits of a career in free and open source software along with four steps toward getting the skills you need for such a career. This article concludes the series with three more steps that put these skills to use.

Contribute to a Community

Join a free software project and delve in diligently. That's perhaps the most important activity you can do to understand free software. Just as you have to hang around native language speakers to learn a language—no amount of vocabulary or grammar study will give you the feel—you have to make free software part of your life in order to be good with it in a career.

What project should you join? If you use a particular piece of free software, it’s natural to follow the community that maintains it. You can also look for projects that achieve social goals that are important to you. If a project is small and has only a few community members, your participation may inject new energy. If the project is large, you can learn a lot by joining it.

In a community, you learn the concepts and memes that people cite while discussing the software, their goals, and the challenges they face. You might interact with people around the globe, and learn how to build positive relationships across borders and cultures. You learn what to say and not to say. (Of course, if you think people are being excluded or ignored, you should speak up and try to change the culture.)

You learn a lot about other projects too, because each free software project is part of an ecosystem. Participating in one community prepares you for membership in the larger mycorrhizal networks of technology, free software, and social action.

It takes special skills to work with people online—skills that have become even more crucial since the COVID-19 pandemic hit. Free software communities have been operating mostly online for decades and have forged these skills, so you can learn a lot there.

How can you engage? Listen for a while, then venture a question. Also answer a question—share the knowledge you learn as you go along. Volunteer to write some documentation, some marketing, a splash page, etc. Submit a bug report (hint: choose a community that makes bug reporting easy and responds well to people who submit them)—and then offer bug fixes. Resolve disputes, or pose constructive challenges to the community.

I can't offer more specific advice about how to participate, because the workings of each culture differ. To me, success means respecting the culture you've joined while encouraging the participants to respect the larger world culture we are all part of.

As you become recognized, you will be asked to take on leadership roles. You may find yourself serving on boards, attending conferences, judging contests, running fundraisers, and so forth. This kind of work is critical to the health of projects. But it gives you great benefits too—take it from me, who has been involved in nonprofit volunteering all my life. You will become close to leaders in your field, learn the hot new issues, and open up still more opportunities. So step up and give of yourself at the highest levels.

Build Up Contributions and Reputation

After learning some technology, you can start making contributions to it. Doing so is not pure altruism: it opens up opportunities, perhaps even job opportunities.

Can new programmers make a real contribution to free software? You might have heard that many major open source projects are supported by corporations. For instance, "75% of the Linux code is written by programmers working for corporations." This shouldn't discourage you from trying to contribute to your favorite project. If it benefits from a lot of paid professionals, just think, "I could be one of them someday."

Programming is the core skill needed by software projects, naturally, but documentation is also sorely needed. (Remember what I said about documentation earlier.) Anything that creates some digital artifact—even a graphic—can be stored in a version control system. These systems precisely track who did what, and you can point to them to show that you have expertise.

Two popular version control sites, GitHub and GitLab, have set up systems consciously designed to show off contributors' skills. For instance, the sites let people attach markers called "stars" to projects they use, and other people can see how many stars the projects have earned. GitHub and GitLab can be the virtual equivalents of the portfolios artists carry from interview to interview.

Get Certifications

As we've risen through different stages in this article, gaining knowledge and participating to a greater extent in free software, we get to the stage of proving your skill through certifications. These certifications are valued by some companies more than others, and are particularly valuable in certain countries. Check around the industry and job categories you're interested in to see whether the hiring managers value a particular certification.

I will speak here only about certifications from the Linux Professional Institute, as publishers of this article. The certifications from LPI measure mostly system administration skills, but cover also some programming (which is a necessary skill in modern system administration). LPI has worked with a type of psychologist known as a psychometrician to create tests that measure job-ready skills and not simply book knowledge.

An even higher level of community participation, open to people with LPI certifications, is to become an LPI member. This has benefits for both the member and the larger community. Members can earn rewards for teaching and doing community work. And because members participate in LPI forums and elect LPI board members, they convey the needs of the community to set the organization's direction.

A Career You Can Love

It's obvious that computers and software are becoming more and more central to every industry and public institution. Jobs in computing are highly desired for lots of reasons: they pay well, provide pleasant work environments, allow some creativity and self-actualization, and teach skills that make people mobile. But how do you get a job like that?

Free software is an entry point into a high-tech career because its source code is open, it is usually free to use, its participants help each other, and it's in use wherever serious computing is done.

Just as free software provides opportunities to under-privileged individuals, it provides opportunities to communities and regions left behind by traditional commerce. As an advocate of free software, you can provide more opportunities for people around the world.


My thanks to Deborah Bryant of the Open Source Initiative (OSI) and Thomas Markey of Fosshost for their review of this article.

<< Read the previous post of this series | Read the next post of this series >>

About Andrew Oram:

Andrew Oram

Andy is a writer and editor in the computer field. His editorial projects at O'Reilly Media ranged from a legal guide covering intellectual property to a graphic novel about teenage hackers. Andy also writes often on health IT, on policy issues related to the Internet, and on trends affecting technical innovation and its effects on society. Print publications where his work has appeared include The Economist, Communications of the ACM, Copyright World, the Journal of Information Technology & Politics, Vanguardia Dossier, and Internet Law and Business. Conferences where he has presented talks include O'Reilly's Open Source Convention, FISL (Brazil), FOSDEM (Brussels), DebConf, and LibrePlanet. Andy participates in the Association for Computing Machinery's policy organization, USTPC.