Open source career: what it is and how to start
Table of contents
- A career in free software — what it is and how to start
- Introduction
- Types of free software licenses
- How do you start contributing to free software?
- Why free software matters in the tech industry
- Free software in numbers
- CNCF — Cloud Native Computing Foundation
- Apache Software Foundation
- Linux Foundation
- Summary
A career in free software — what it is and how to start
Introduction
Free Software is a movement that promotes the freedom to use, study, modify, and distribute software. It rests on four essential freedoms:
- The freedom to run the program for any purpose (freedom 0).
- The freedom to study how the program works and adapt it to your needs (freedom 1). Access to the source code is a prerequisite for this freedom.
- The freedom to redistribute copies so you can help others (freedom 2).
- The freedom to improve the program and release your improvements so the whole community benefits (freedom 3). Access to the source code is a prerequisite for this freedom.
Types of free software licenses
There are many free software licenses. The most common ones are GPL, LGPL, MIT, Apache, BSD, and Mozilla. Each has its own traits and constraints, but all of them protect the four essential freedoms of the Free Software movement.
- GPL: A copyleft license. Software that uses a GPL-licensed library must also be licensed under the GPL. It is popular among free software developers because it keeps the software free and open for everyone.
- LGPL: Also a copyleft license, commonly used for libraries. It is popular because it helps keep the software free and open while being a bit more flexible for library consumers than the full GPL in practice.
- MIT: A permissive license. Software that uses an MIT-licensed library can be licensed under another license. It is widely used among free software developers.
- Apache: A permissive license. Software that uses an Apache-licensed library can be licensed under another license. It is also widely used.
- BSD: A permissive license. Software that uses a BSD-licensed library can be licensed under another license. Another common choice in free software.
- Mozilla: A license with its own balance of permissions and requirements. Software that uses Mozilla-licensed code follows the MPL rules; it remains a common option in free software communities.
How do you start contributing to free software?
There are many ways to contribute. The most common are code, documentation, and translation. Each path has its own shape, but all of them support the four essential freedoms of the Free Software movement.
Why free software matters in the tech industry
Free Software aims to promote the freedom to use, study, modify, and distribute software. Today, many industry pillars are maintained by communities of developers—often volunteering their time. Those projects underpin new technology and the evolution of the industry as a whole. That is why it matters for developers to engage with the Free Software movement and contribute to projects that the industry depends on.
Examples of free software that the industry relies on
Linux: An open-source operating system used by millions of people worldwide. https://www.kernel.org/.
Apache: An open-source web server used by millions of people worldwide. https://httpd.apache.org/.
MariaDB: An open-source database management system derived from MySQL. https://mariadb.org/.
Docker: An open-source platform that lets developers package applications in containers. https://www.docker.com/.
Kubernetes: An open-source platform for managing containerized applications. https://kubernetes.io/.
Ansible: An open-source tool for automating application deployment. https://www.ansible.com/.
Jenkins: An open-source tool for automating build and test. https://www.jenkins.io/.
Git: An open-source tool for version control. https://git-scm.com/.
Free software in numbers
- There are more than 1,000,000 free software projects on GitHub.
- GitHub is the largest free software development platform in the world. GitHub
- Linux is the most widely used operating system in the world. Linux
- There are more than 1,861 projects in the CNCF—graduated, incubating, sandbox, and archived. CNCF
- There are more than 300 projects at Apache. Apache
CNCF — Cloud Native Computing Foundation
- CNCF (Cloud Native Computing Foundation): A non-profit organization.
- Goal: Promote free software development for the cloud.
- Traits:
- Cloud Native focus: Technologies that power scalable, resilient, agile container-based systems.
- Open, collaborative community: Encourages open collaboration among industry members, developers, and end users.
- Governance standards and practices: Sets standards and best practices for interoperability and efficiency.
- Support for innovation and sustainability: Fosters innovation and sustainability for free software projects and communities.
- Events and education: Runs events, webinars, and education programs for the cloud native community.
- Key projects:
- Kubernetes: A container orchestration system.
- Prometheus: Monitoring and alerting.
- Envoy: An open-source service proxy.
- Links:
Apache Software Foundation
ASF (Apache Software Foundation): A non-profit organization.
- Goal: Provide free software for the general public.
Major Apache Software Foundation projects:
- Apache Hadoop: Framework for distributed processing of large data sets.
- Apache Kafka: Distributed streaming platform for real-time data pipelines.
- Apache Cassandra: Distributed database for large volumes of data.
- Apache Spark: Unified analytics engine for large-scale data processing.
- Apache Lucene: Library for information retrieval and full-text search.
- Apache Tomcat: Servlet container for Java web applications.
- Apache Maven: Build automation tool for Java projects.
- Apache HBase: Distributed non-relational database for large data sets.
- Apache Flink: Framework and engine for distributed stream processing.
- Apache Airflow: Platform to schedule, orchestrate, and monitor workflows.
Links:
Linux Foundation
The Linux Foundation is known for supporting major open-source projects, including the Linux Kernel, Kubernetes, Hyperledger, and Node.js. It focuses on providing a neutral home and support for collaboration on open-source technologies, with an eye on innovation, inclusion, and sustainable development.
For detailed information and a full project list, go straight to the Linux Foundation site: Linux Foundation Projects.
Major Linux Foundation projects
CNCF: Cloud Native Computing Foundation.
LF AI: Linux Foundation Artificial Intelligence.
LF Edge: Linux Foundation Edge.
LF Energy: Linux Foundation Energy.
LF Public Health: Linux Foundation Public Health.
OpenJS Foundation: OpenJS Foundation.
RISC-V: RISC-V.
Links:
Summary
This article looks at a career in free software, with emphasis on the four essential freedoms: run, study, redistribute, and improve programs. It covers common licenses—GPL, LGPL, MIT, Apache, BSD, and Mozilla—and how they differ. It also covers ways to contribute (code, docs, translation), why free software matters in tech (Linux, Apache, Docker, and friends), and landmarks from CNCF, the Apache Software Foundation, and the Linux Foundation, with links and a short overview of what each does.
