For many tech professionals, Linux is one of the key elements of open-source technology. Year after year, the Linux Foundation’s surveys have placed Linux atop the list of most-desired open-source skills, above storage, web technologies, and more.
But what is Linux? More than 30 years old, Linux is an umbrella term for a collection of open-source operating systems. Among its many distributions are Debian and Ubuntu, and some variation of Linux is the foundation of ultra-popular commercial platforms such as Red Hat Enterprise Linux, Google Android, and ChromeOS. Linux is a vital part of servers, PCs, and mobile devices.
That’s quite a complex ecosystem, and mastering Linux can take years of practice and education. Fortunately, Linux also comes with a passionate community more than willing to talk you through its intricacies and mysteries. With enough dedication, anyone can master the skills necessary to become an in-demand Linux developer.
What does a Linux developer do?
Linux developers create and maintain software for the Linux operating system, including its distributions. This may include analyzing requirements and translating them into technical specifications, designing and developing Linux-based software applications, writing executable code, supporting the code with testing and debugging, and maintaining a codebase.
Fortunately, thanks to the magic of cross-platform reference implementations, Linux development is supported by a vast array of programming languages, including (but definitely not limited to) Python, Java, Ruby, PHP, and much more. Many Linux distributions offer their own mix of language support. Linux developers must also be aware of the hardware supported by the Linux distributions they work with on a regular basis.
What does a Linux developer make annually?
The average annual salary for a Linux developer in the United States is around $123,000 as of July 2023, according to data from Indeed, ZipRecruiter, and Salary.com. That salary can climb with sufficient experience, especially within organizations where Linux mastery is mission critical (such as those whose vital servers are Linux-based).
Which programming languages should Linux developers master?
Given the sheer variety of distributions and software running on Linux, it can be initially overwhelming to think about which programming languages you might need to learn. Fortunately, many Linux developers start simple and grow from there.
“First, the ‘C’ programming language is crucial because the Linux kernel is written in ‘C,’” says Vladislav Bilay, lead DevOps engineer at Aquiva Labs. “Understanding ‘C’ will give developers a solid foundation for working with Linux. Languages like Python and Bash are widely used for scripting and automation tasks on Linux systems. Mastery of these languages can greatly enhance a developer's productivity and effectiveness.”
Roman Storozhenko, senior Linux driver developer and team lead at Intel, tells Dice: “The relatively new language, Rust, gained popularity in the Linux Kernel community as a safer alternative to C, and I know that driver developers being adopted Rust to the development process, so I would recommend learning it as a third language of choice.”
At its heart, Linux is highly configurable, thanks to KBuild. “Each developer should know the basics of KBuild and be able to extend/modify the kernel code successfully,” Storozhenko adds. “Last but not least is shell scripting. It is hard to imagine Kernel development without command-line usage, and a developer must inevitably write some shell scripts to support their job by automating repetitive tasks.”
What platforms are essential for Linux developers to know?
Storozhenko says: “The Linux Kernel development is inextricably linked to the Git source control system. It is not possible to imagine the kernel development workflow without it. Git knowledge is a requirement. Unless kernel developers run their kernel on specific/customized hardware—emulation is the best developer's friend. The most popular platform for this is Qemu/KVM.”
“Proficiency in scripting languages,” adds Dmitri Ivashenko, lead Unity developer at my.games. “A good Linux developer should be proficient in at least one of the popular Linux scripting languages. Bash is the most common, but Python, Perl, and Ruby are also widely used in the Linux environment. Scripting languages are critical for automating routine tasks, performing system administration, and even writing complex applications.”
And don’t forget how a company’s Linux distribution may mesh with its broader tech stack and cloud deployments. “Familiarity with cloud technologies such as Amazon Web Services (AWS), Microsoft Azure, or Google Cloud Platform (GCP) is essential for deploying and managing Linux-based applications in the cloud,” Bilay adds. “Knowledge of containerization technologies like Docker and container orchestration tools like Kubernetes is important. These platforms allow developers to package and deploy applications consistently across different environments. Understanding virtualization technologies like KVM (Kernel-based Virtual Machine) and Xen can also be valuable when working with Linux-based virtualization solutions.”
You should also be knowledgeable in networking and security for Linux. “A lot of Linux development is in the networking realm,” Ivashenko says. “Understanding TCP/IP, knowing how to set up and configure firewalls, and experience with network troubleshooting are vital skills. Knowledge of higher-level protocols like HTTP, FTP, SSH, etc., can also be beneficial.”
Finally, all our experts agree that Git is a no-brainer. “A strong understanding of version control systems, particularly Git, is a must-have skill,” Ivashenko tells Dice. “It's how developers manage and collaborate on code.”
Is a degree necessary for Linux developers?
“No, not at all,” Storozhenko says. “Even undergraduate students could be successful kernel developers.”
Bilay adds, “Many employers prioritize practical experience, demonstrated skills, and relevant certifications over formal education. Building a strong portfolio, contributing to open-source projects, and obtaining relevant certifications can showcase your abilities and increase your chances of landing a Linux development job.”
What about Linux certifications?
All the experts we spoke to agree that these are the best Linux certifications:
- Linux Professional Institute Certification (LPIC)
- Red Hat Certified Engineer (RHCE)
- CompTIA Linux+
- CompTIA Security+
While you don’t necessarily need a certification to land a job, possessing one (particularly in arenas such as cybersecurity) can help you stand out in a crowded job market. You can also pursue AWS, Azure, Kubernetes, and Docker certifications as they apply to your career.