Ask HN: Is your company Linux friendly or not?

12 points by mothsonasloth ↗ HN
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?

21 comments

[ 3.4 ms ] story [ 67.8 ms ] thread
I can pick whatever platform (and, within reason, hardware) I want, and use a VM or remote access for others if needed
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.

Did you mean "Eat your own dog food"?
I like dogfoot better ... it illustrates that if there's a bug that results in you eating dogfoot rather than dog food, you'll have some visibility to that.
Thanks for refurbishing my typo :-)
Here are the reasons companies don't give you linux:

1. Show me a quick, simple, fail proof, so easy even a first greader could do it following a popular web tutorial, UI driven clicky clicky way of enabling full disk encrption in Linux, wether after installing the OS or during, using the TPM so I don't have to type the password twice when starting my workstatin, centranlly managed by the IT team. THERE. IS. NO. SUCH. THING! Mac and Windows have it, LINUX. DOES. NOT.

2. Show me a quick, simple, fail proof, so easy even a first greader could do it following a popular web tutorial, UI driven clicky clicky way of enabling AD management, and network drives, or maybe OKTA (not LDAP, but Microsoft AD as that's what companies actually use) for users on Linux. THERE. IS. NO. SUCH. THING! Mac and Windows have it, LINUX. DOES. NOT.

3. Show me a quick, simple, fail proof, so easy even a first greader could do it following a popular web tutorial, UI driven clicky clicky way of installing Adobe products, in particular Photosop. THERE. IS. NO. SUCH. THING! Mac and Windows have it, LINUX. DOES. NOT. You might say there is https://snapcraft.io/acrordrdc on snap, but the linux comunity hate snaps with a passios and dismiss it's usefulness, plus that package is not managed by Adobe but some random person. And it does not even work well, you have to disable networking before starting it, plus prompts appear wihtout any texts. And this goes beyond company use. How can I pay my taxes in Romaina for example, when the PDF I need to fill in (Declaratia 200) https://static.anaf.ro/static/10/Anaf/Declaratii_R/200.html needs Adobe Acrobat Reader exclusively, and it's a dynamic form with validations that start a prompt telling you what errors you have when completing it, those prompts don't work on linux so I guess I have to buy a Mac or a PC to pay my taxes. What about when I have to implement a design and I get a .psd file from the designer, and can't open it unless I have Photoshop, should I force that designer to use GIMP? Can't you see how absurd it would be to force another person to use the tools I want becuase I can't get the tools I need to work?

4. Show me a quick, simple, fail proof, so easy even a first greader could do it following a popular web tutorial, UI driven clicky clicky way of installing the same antivirus that every other OS supports, regardless of distribution, needed because the security and compiance departments require it, not because it's useful (it's not) due to Legal requirements forced by the government or other audit companies. THERE. IS. NO. SUCH. THING! Mac and Windows have it, LINUX. DOES. NOT.

5. Show me a quick, simple, fail proof, so easy even a first greader could do it following a popular web tutorial, UI driven clicky clicky way of using RDP (remote desktop protocol) to connect from any other OS to linux and from linux to any other OS. THERE. IS. NO. SUCH. THING! Mac and Windows have it, it works well, and it look good, LINUX. DOES. NOT.

These are just some issues of the top of my head! I'm sure there are may more that I have not encountered them yet. These are why I've been refued Linux at every company I've worked so far.

AND. THE. LINUX. COMUNITY. DOES. NOTHING. ABSOLUTELY!!! NOTHING!!! ABOUT. THIS.

OK, rant over, do what you want with this information, I am tired of repeating it over and over. (now that I blew off some steam I feel better).

And:

6. Which is THE. LINUX! LAPTOP!? not just some random windows machine with linux installed, but THE one, with the proper Linux hardware and software support, backed by a company that you can sue in case they give you something bad, and from which you can buy corporate support. THERE. IS. NO. SUCH. THING! Mac and Windows have it, LINUX. DOES. NOT.

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.

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.
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.
> 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.

I can't imagine a constraint that would lead to restrict the use of Linux over Windows/MacOs unless is bureaucracy or ignorance like OP said. The only exceptions I can think of is they do development with tools only available for those systems, in which case I assume OP wouldn't apply in the first place since he uses Linux, and second having a deal with Microsoft or Apple which is not really an operational constraint.
The major reason is going to be software support (e.g. MDM, endpoint protection, etc). Having a deal / set procurement process seems like a pretty real operational constraint to me. At the end of the day, it's going to cost them tens of thousands of dollars to support 1 Linux machine. If you were on the other side of the table, does that seem worth it when most folks are happy to take the machines you already offer?
> tens of thousands of dollars to support 1 Linux machine

I think you're several orders of magnitude off here, but let's assume for the sake of argument that this is even closer to accurate.

(Last place I worked gave us the choice of having a Linux desktop. I'm pretty sure the admins only touched my box twice during 5 years: the initial install, and the upgrade to CentOS 7.)

Searching for another qualified candidate will cost them even more tens of thousands of dollars, plus an unspecified but surely significant amount of both wall-clock time and man-hours.

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.
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.
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.

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.

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.
I've always wondered how this worked at Google. What protocol are they using?
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.