HACKER Q&A
📣 mothsonasloth

Is your company Linux friendly or not?


As a developer who is on the lookout for a new job, one of my criteria for accepting a job offer is, "does your company support/allow Linux OS for developing on?"

Alas many of the responses say "No" followed by the phrase "We only support Mac, why would you develop on anything else?"

I find it strange that in an age of LXCs and Docker containers, we have many companies (big and small) who are not offering Linux PCs to their developers.

This is anecdotal on my side, but out of the 10 companies I have interviewed with 9 said they wouldn't or couldn't provide me with a Linux machine. The other one offered a Windows laptop which I could hack away till my heart's content.

For me a Macbook is a terrible piece of hardware and software combined; it overheats, has a touchbar, weird keyboard symbols (Alt and Ctrl key in particular), and uses 4GB of RAM just to run OSX.

I can't choose my desktop environment and have to configure my shell through a series of awkward steps.

The retorts from recruiters and devs about why they don't support Linux normally fall into one or more responses below:

* It makes security easier to have all machines the same

* Linux is hard to support

* We don't want 20 different people running 20 different distros

* Company policy, we buy Macbooks in bulk at unit price

* Why would you want to use linux?

* Our VPN and other tools are licensed only for Mac / Windows

* Macbooks are cool, why do you want a Laptop/PC

Most of these seem to be out of laziness, ignorance or corporate bureaucracy.

So HN, does your company support development on Linux? If not, why?


  👤 dyeje Accepted Answer ✓
> laziness, ignorance or corporate bureaucracy

I get that you're upset that you can't use the OS of your choice, but this is not a fair assessment. There are very real, valid operational constraints that lead companies to restrict what machines can be used.


👤 oftenwrong
My small company is Linux friendly. My workstation is Linux-based. There are maybe one or two others here that use Linux as well. The rest are mostly Mac users. There are some Windows users as well.

I would say this is not uncommon for small companies in my area. The past 3 I have worked at all took the position that devs could pick their setup, but would be responsible for making it work. I can use Linux, but it is up to me to make sure I can do my job with it. There is no internal tech support.

I will say that there is a common mentality that Macs are the default choice for development. (This is probably not the case if you are in a .NET shop, for example). At my last job they purchased a Mac for me without asking my preferences. After I told them I'd prefer Linux, they said I could switch, but I decided to stick with that Mac for that job, actually... and I liked it! But not enough to stick with it long term. I also value being able to customise my system to a degree that is difficult on a Mac.


👤 shoo
One potential workaround - don't sign on as a permie employee, instead arrange to work as a contractor where you bring your own tools instead of using whatever standard machine the client would otherwise give you. You may be able to bring your own linux laptop and configure it to work with the client's systems.

Downsides of this approach: what you are doing is not officially supported by the client's infra/network/vpn/bureaucracy, so if you run into trouble getting it to work or it breaks after the client changes something you will not get any help, so you are just wasting your own time & money or the client's time and money by going against the grain and doing something the client regards as unusual and unsupported. In many businesses the client may require that contractors do not use their own tools and instead use machines supplied by the client, so this isn't even an option. Also, the whole contractor <-> permie tradeoff (no benefits, no job security, but maybe higher pay - depending what kind of a labour market you're in).

I have seen highly competent contractors successfully use linux in a huge old conservative bureaucracy with lots of legacy tech & half-broken network infrastructure that only officially supports windows & half-heartedly supports mac. But the starting position would be that you're the kind of person who can single-handedly triage and fix random network/vpn/authentication issues, perhaps by writing or patching software as necessary, and that you're happy to spend your own unbillable time on this.


👤 dyingkneepad
Current company: yes, but I also need the stupid IT Windows laptop because the company is full of Windows-only software, including internal websites that only work on very old IE (!!). They've been trying for years to migrate away to Google Chrome, but it's not done yet.

But keep in mind that "yes" as an answer does not mean good things. Keep reading.

Previous company: also yes, but I was forced to use the development environment they chose. And that was Eclipse for C++ programming, including an SVN plugin for Eclipse. When the manager saw I was editing files on Vim he explicitly asked me to not do it again and stick to Eclipse. I was in shock. I was also told do not use svn commit from the command line and use the Eclipse stuff.

A few months inside the company and I figured out why: most of the developers (except for me and the lead guy) were people with Mechanical or Electrical Engineering degrees who only took a 6-month course in C programming, some extra training and then were trying to be programmers (that included the manager). They mostly had no idea what they were doing: Eclipse was trying very hard to keep the codebase following a single coding style, but they often managed to commit wrong stuff. Build artifacts were in every single SVN repository. One of the most senior employees (7+ years developing C++ for them) once told me he was "not so sure what g++ did when it converted a signed integer to unsigned". The salary was great for everyone because the company had some very juicy government contracts. And we were rewriting the main system (basically the product of the company) from scratch because the previous one was too buggy to be maintained (according to them). I was the person who told them about the existence of Valgrind. Fun times, I can say I learned a lot :)

Thanks for reading my rant lol.


👤 neilsimp1
I work for my state government, so the Enterprise-y Microsoft environment rules over everything else. I would guess most of the developers in my area (50+) aren't even very familiar with Linux. Heck, we even run most things on Windows servers as for whatever reason they are cheaper for us to provision than Linux servers.

👤 jetti
So our devs are given macbook pros by default but we are able to get linux laptops if we want but that means we are really on our own to figure things out that don't work. A guy on my team made the switch to linux but then ended up switching back to a macbook as there were things that just didn't work right (or he couldn't get to work) that we need in our day to day, though I don't know exactly what those things were that were causing issues. Our non-devs have to run windows as the main software we use as a company is windows desktop client only.

👤 giantg2
We pretty much only do Windows. We've only started allowing Mac for some UX or UI developer people, but it looks like that went well and could expand in the future. These are all company devices. We have a fairly strict personal device policy not even allowing any personal device with a LAN port to be on campus.

We don't have any network capable Linux devices for end-users. We have Linux servers and a couple air gapped devices in experimental labs.


👤 sdwolfz
My company was in the process of allowing people to use Linux laptops. I was one of the people in the "Testing Group" and most issues were solved. If it was not for some key people on this project leaving the company and the pandemic we would have had them by now.

👤 kevinherron
Yes, new devs get to choose laptop or desktop (err, at least before quarantine they did...), and their choice of OS. We're probably 60/40 macOS/Windows. There might be one developer using Linux as the host, but most of us just use it in a VM when we need it.

👤 ktpsns
I can only imagine one useful reason to force a software developer to use a particular ecosystem: Eat your own dogfoot.

But even there it is helpful to see what other software is around.

I would not accept a job where I am not free to choose my tools.


👤 wikibob
At Google essentially everyone develops on a Linux desktop. These are mostly VM's running in Google Cloud now. There's even an internal distro gLinux based on Debian.

👤 detaro
I can pick whatever platform (and, within reason, hardware) I want, and use a VM or remote access for others if needed