RBA Consulting
RBA Consulting
RBA Consulting

TL;DR: Key Takeaways

  • Linux can be a strong developer workstation option when teams are not dependent on Windows- or macOS-specific development requirements.
  • Open-source flexibility and Unix-like architecture make Linux particularly appealing to developers already comfortable with command-line tools, cloud environments, containers, and Unix-based workflows.
  • Linux distributions and desktop environments offer significant customization, allowing developers to optimize their workstation around their specific workflows and hardware.
  • Distribution choice matters. Package management, release cadence, hardware support, security updates, and stability should all factor into the decision.
  • Enterprise adoption requires more than developer preference. Organizations should also consider endpoint management, security policies, identity, compliance, application compatibility, and support before standardizing Linux workstations.
  • Backups and system snapshots are essential, particularly for developers using distributions or configurations that receive frequent updates.

For enterprise organizations, the operating system developers use can seem like a relatively small technology decision. In reality, it can affect developer productivity, hardware costs, security, tooling, onboarding, support, and even an organization’s ability to attract and retain technical talent.

Windows and macOS remain the default choices for many organizations, and sometimes the technology stack makes that decision automatically. But when the stack allows more flexibility, there is another option worth considering: Linux.

And for the right developer, workload, and enterprise environment, it can be a very good one.

Choosing a Development Operating System

Choosing a system to do your development work from can be a big point of contention, and for some people, they aren’t even given a choice.

The two most common choices are Windows and Mac. Depending on the company and tech stack, the decision can be complicated.

Some individuals prefer the power and polish provided by a Mac. Some people need to build iOS apps, and that specifically requires a Mac. Some developers are working on older or legacy versions of .NET that require using a Windows system to build. Others are doing VBScript work and also require a Windows system.

Unfortunately, for developers who are at the mercy of their tech stack, there isn’t much flexibility in what system they use.

A greater number of people, however, are lucky enough to be working in a flexible tech stack that doesn’t really care.

This is where a third option appears: Linux.

Why Use Linux for Development?

For those of you who don’t know, Linux is a family of open-source, Unix-like operating systems based on the Linux kernel, which was first released in 1991 by Linus Torvalds.

That’s wonderful…but what does it actually mean?

The crucial parts of that definition, in my opinion, are “open source” and “Unix-like.”

Open source means the customizability is virtually infinite. Caveats apply, of course. And Unix-like means developers who are already familiar with the underpinnings of a Mac system can often become comfortable on a Linux computer relatively quickly.

That’s especially true if said user has a preference for the command line.

This creates an interesting opportunity for companies trying to be cognizant of their bottom line while still giving developers a powerful, familiar environment without necessarily paying the dreaded Apple tax.

Personally, unless I’m doing iOS or macOS development, my preferred system is hands-down Linux.

I’m writing this blog post from my Linux laptop, which serves as my personal daily driver. And yes, I’ve got it set up to do TypeScript, Go, Flutter, Python, Rust, and React Native development.

I try not to do them all at the same time. Rust’s borrow checker gets really, really mad if I try.

The Customization Advantage

I love the power and flexibility of my system.

I can customize it to my heart’s content, and I’m not stuck in the walled garden of “Mama Knows Best” Apple, where things like customizing your font system-wide can be difficult or restricted because “Apple knows best” and it might mess up the system aesthetic.

As if a developer spending 12 hours a day on their system and wanting a monospace font so they don’t go cross-eyed might struggle to figure out how to fix any issues they encounter.

Linux, on the other hand, depending on your Desktop Environment (DE), will generally just let you do it.

And not only that, someone has probably already created a theme that matches exactly what you’re looking for.

What Is a Linux Desktop Environment?

What is a Desktop Environment?

I’m glad you asked!

A Desktop Environment, or DE, is essentially the collection of applications and interface components you directly interact with through the Graphical User Interface (GUI). This can include things like your file manager, application launcher, system settings, panels, and other components that shape the desktop experience.

There are a lot of them out there.

Some common options include:

  • GNOME
  • KDE Plasma
  • MATE
  • Cinnamon

The Arch Linux Wiki also maintains comparisons of many of the desktop environments available.

As for which one to pick, it’s really up to you. Look through screenshots and demos of different environments and see if there’s one that grabs your fancy more.

And don’t get me started on tiling window managers. That’s an entirely different conversation that will take us completely off the rails.

Besides theming and customizability, another factor when choosing a DE is system resource usage.

Most desktop environments are fairly performant and don’t use an unreasonable amount of RAM when idle, but they’re not all the same. Some prefer to trade a little performance for a slicker experience, while others go toward the absolute bare minimum for systems with lower-end specs.

Depending on your hardware and the work you’re doing, that can matter.

Choosing a Linux Distribution for Development

If you’re not sure which Desktop Environment to go with, I suggest approaching the decision differently.

Find the Linux distribution you want to use and start with its default DE.

What is a distribution?

This is essentially the “flavor” of Linux you want to use. Some common examples include:

  • Ubuntu
  • Debian
  • Fedora
  • Arch Linux
  • Linux Mint

And just like desktop environments, there are countless distributions to choose from.

At a high level, some of the major differences between distributions include their package management systems, release models, software repositories, hardware support, and update schedules.

Different distributions use different package managers, but this usually isn’t a huge hurdle. Most popular development software comes with a variety of installation methods. If your native package manager isn’t supported, there may be alternatives such as Flatpak, Snap, AppImage, or a vendor-provided installer.

Stability vs. Having the Latest Features

What’s more important for a development workstation is the update and support model.

That includes questions like:

  • How frequently does the distribution release kernel updates?
  • How quickly are upstream package updates made available?
  • How long is each release supported?
  • How quickly are security patches delivered?
  • How much testing happens before updates reach users?

Together, those factors influence the stability and maintenance expectations of a distribution.

Distributions like Arch Linux use a rolling-release model and tend to make newer software available very quickly. That can be advantageous if you want the latest features and packages, but it also means you may occasionally spend more time troubleshooting issues introduced by updates.

Then you have distributions like Debian, which take a much more conservative approach and prioritize stability over having the newest package versions.

I’m not going to start a flame war and say this distro does this better or that distro does that better.

Research your options and decide which one fits your ideal balance between stability, hardware compatibility, security, and access to newer software.

I will say that distributions such as Ubuntu and Fedora often land somewhere in the middle for developers. They provide modern hardware and software support while still offering structured releases and broad communities.

Fedora tends to ship newer kernels relatively quickly, while Ubuntu LTS prioritizes longer-term support and can provide newer kernels through its Hardware Enablement (HWE) stack.

Backups and System Snapshots Are Not Optional

Regardless of your choice, you absolutely need a solid backup strategy.

And I strongly recommend considering a system snapshot tool such as Snapper or Timeshift where appropriate for your distribution and filesystem.

Just backing up your home folder isn’t always enough.

If you run into a troublesome update or configuration change, the ability to roll back to a known-good state can be an absolute lifesaver.

For enterprise environments, this becomes even more important. Backup and recovery should fit into broader endpoint management, security, patching, and business continuity policies rather than being left entirely to individual developers.

Setting Up Linux for Development

Once you’ve picked your distribution and Desktop Environment and installed everything, your first step will usually be to make sure the system is fully up to date.

Once it’s updated, set up your backup and system snapshot processes.

Now it’s time to install your development software.

Most of the common development editors and IDEs are available on Linux, including:

  • Neovim
  • Visual Studio Code
  • JetBrains IDEs
  • Zed

I’m sure I’m missing a few, but chances are the tools you need are also available.

For IDEs, I generally recommend going to the vendor’s website to determine the best installation method. Sometimes the application isn’t available through your distribution’s package manager. More commonly, the repository version is simply older than what the vendor currently offers.

The choice is entirely yours.

What Enterprises Should Consider Before Supporting Linux

For an individual developer, choosing Linux can mostly come down to personal preference and technical requirements.

For an enterprise, there are additional questions.

Can IT consistently manage and patch Linux endpoints? Does the organization’s identity and access management strategy support them? What endpoint detection and response tooling is available? Are VPN, certificate management, device compliance, disk encryption, and remote support requirements covered? Are developers dependent on applications that only run on Windows or macOS?

These considerations don’t make Linux a bad enterprise choice. They simply mean organizations should treat developer operating systems as part of their broader developer experience and endpoint strategy, rather than handing out laptops based solely on preference.

In the right environment, supporting Linux can give development teams greater flexibility while aligning their local environments more closely with the Linux-based infrastructure that powers much of modern cloud computing.

Is Linux a Good Development Environment?

To sum it up, if you don’t need the macOS-specific features of a Mac, aren’t tied to Windows-specific development requirements, are tired of paying the Apple tax, or just want to use something that performs better than Windows — which has been my experience, YMMV — Linux is a solid choice.

It’s an operating system made by and for people who love to tinker, customize, and work on their systems.

For enterprise organizations, the bigger opportunity is recognizing that developer experience is part of technology strategy. The right workstation, tooling, cloud environment, security model, and development workflow can remove friction from software delivery and help developers spend more time actually building.

That’s also where RBA can help. RBA works with organizations to modernize application development, cloud platforms, DevOps practices, and the broader technology foundations that development teams depend on. Whether Linux belongs in your developer environment is ultimately one piece of a much larger question: Are your developers equipped with the right technology and processes to build, ship, and scale effectively?

And if I missed anything about running Linux as your development system, be sure to let me know down below.

Disclaimer

This article was developed with the assistance of artificial intelligence tools to support drafting, editing, and clarity. The core ideas, structural planning, and technical insights reflect the original thinking and professional experience of the RBA consultant who authored the piece. AI was used as a productivity aid, while all concepts, recommendations, and perspectives remain the author’s responsibility.

About the Author

Robby Sarvis
Robby Sarvis

Senior Software Engineer

Robby is a full-stack developer at RBA with a deep passion for crafting mobile applications and enhancing user experiences. With a robust skill set that encompasses both front-end and back-end development, Robby is dedicated to leveraging technology to create solutions that exceed client expectations.

Residing in a small town in Texas, Robby enjoys a balanced life that includes his wife, children, and their charming dogs.