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