Is primary OS a dealbreaker for you (when taking a new job)?

25 points by matthewpick ↗ HN
I've had to switch to a different OS (on my dev machine) for my latest job.

I've primarily used Macs as a data engineer, but recently switched to Windows since that is what the rest of my team uses at my current job. The company I work for does support macs, but it is a small percentage of engineers.

I know this is a very nuanced conversation. In an ideal world, you should be able to choose which ever OS works best for you.

That said, I've typically taken the approach of "use whichever OS the rest of the team is using" since it isn't worth the battle of rewriting all the team-specific setup scripts for your given tech stack and development OS.

I wouldn't say Windows has been a "terrible" experience thanks to WSL2, but it has prevented me from using my standard suite of tools (clipboard manager, note taking app, etc.) that I am used to using.

I'll likely prioritize macOS over Windows going forward in my career due to my most recent experience but wouldn't go as far as calling it a dealbreaker.

I should probably reiterate: my goal of this post is to discuss "is primary OS a deal breaker for you" and not "which OS is the best."

91 comments

[ 6.4 ms ] story [ 146 ms ] thread
Yes, absolutely. I cannot do my job properly using Windows as it's been so long since I've used it and it tends to fight against a lot of the Unix paradigms I'm used to and need for containers and cloud engineering. Also, now that I've used an M1 Mac I also could not deal with the battery life on other machines
(comment deleted)
Nope. I'll use the good enough tool for the job.
nothing that involves administering windows or macs.
(comment deleted)
No I care more about if the job involves solving interesting/novel problems

Languages/OSs are just implementation details to me, I don't get why software engineers (especially junior ones) are so obsessed with them

To me algorithms/systems in the abstract sense are the actual interesting part of the job

>Languages/OSs are just implementation details to me

But they aren't. Most languages have specific behaviours and performance hits in different systems, and sometimes undefined behaviour may be fine in one environment and catastrophic on another. Even interpreted languages suffer from this.

To me languages/OSes are tools of the trade. Carpentry, plumbing, etc is no different. Some people have strong preferences, some do not. Regardless, right tools for the right job applies.
That's kind of my take on it as well. I don't care what it is, I can make it work. If I couldn't make it work, I would be the wrong guy for my job.

At this point you could give me a FreeDOS machine and I'd be like "Well this initially looks super inconvenient, but I realize you won't be able to VOIP call me through the device, and it looks like I can get enough stuff installed to SSH to our dev environment. We're good."

> it looks like I can get enough stuff installed to SSH to our dev environment

I felt the same way about my Windows laptop:

It looks like I can get enough stuff installed to boot up Arch Linux.

Good to see responses like these. The only correct answer in my opinion.
There is nothing correct or incorrect about preferences.

You choose industries as a matter of preference, too.

Is it correct or incorrect to work in healthcare?

Preference is not the same thing as "I wont take the job if you do Windows" etc. We all prefer things of course. I prefer Macs for example. But will I refuse a job because it uses Windows ? Naah. I will look at everything else that is more important to me which are the team, the work, the goals, whats in it for me, do I see a career path here etc.
That is the same thing as preferences. Different things are important to different people, these are preferences by definition.
> I will look at everything else that is more important to me which are the team, the work, the goals, whats in it for me, do I see a career path here etc.

Those are all more important to me as well. But I am so privileged that I get to choose jobs with tooling that aligns philosophically with me.

Typed programming, colleagues who really care about precise domain modelling, a high degree of automation, pervasively embedded in both the development environment and the production environment, both being Unices.

A part of that includes picking a non-laggy operating system that doesn’t feed me ads and NASDAQ prices in my toolbar, dark patterns to coerce me into using their inferior alternatives, and a feeling that I’m a guest in my own system.

As a consequence, I am happier and more productive.

I realise many may feel exactly like this with a Microsoft stack. The subjectivity here is what makes it a preference.

So you'd be happy working at a place that required all code to be in brainfuck? That choice of computer language is "just an implementation detail" and you can still solve your interesting abstract problems in it so you should be happy with it.
I don't know what you're talking about, what company uses that language?
I'm not suggesting anywhere is actually using brainfuck. Why would you think I was? I was attempting to use rhetoric to point out that you do in fact care about choice of language.
Would not be a deal breaker but it is very irritating, And tells you something about the company. Maybe it's an old school mindset, maybe it is a lack of 'know how'.

It is 2023, every company should be able to handle mac/windows/linux. C'mon now!

While I'd prefer to use an operating system other than Windows at work, the OS that a company uses isn't a deal breaker for me. Getting the job done, regardless of the software my employer mandates, having work that's is interesting and challenging is what matters most when it comes to the day job.

Currently, I work for a firm that's eyeballs deep in the Windows/Microsoft ecosystem which means I have a company laptop running Windows. I can get the job done and get a pay packet every two weeks.

Honestly the idea they wouldn’t give me the freedom to choose my tools would be a dealbreaker.
Yes, because native applications are also part of my job.
A company that forces certain operating system upon its employees may not have right priorities or IT budget. Not dealbreaker but it would make me a little reluctant even if they are forcing my preferred OS.
Most companies want a standard fleet, which means enforcing some choices. This is the norm, not the exception. That doesn't mean they have the wrong priorities, it just means their priorities are for managing the fleet, not tayloring a solution to individuals.
Of course. macOS or nothing. I'd accept Linux but hard no for the garbage that is Windows.
It is funny but it is the other way for me. I'll accept linux, but I don't want to have anything to do with Apple
I hate dealing with Windows, but I'd probably take even that over macOS. Not because there's anything wrong with macOS, but just because I can never figure out how to do anything in it and I'd prefer not to mount that learning curve.
Absolute valid point, 1/3 of the reason I don't want to work with windows. I've been using mac and linux for 17 years now, it's just worlds apart.
I have worked in a "Windows-shop" once and found it very painful. But it depends I guess. If you have to stay inside some company approved IDE all day and only touch code then it could work, but if it requires setting up the build system too then I would pass.
Yes, it's a deal breaker. I started at a large technical organisation over a decade ago and was well entrenched in using a Mac laptop. But in the support team, the default laptop was a Windows laptop. "Oh, only solution architects and so on are entitled to Mac laptops". But they allowed me to bring my own device.

So I brought my own laptop, had it re-imaged and I became the most productive employee not only in the local team but also the global team in terms of support tickets and resolution of issues. I could do tasks so much more efficiently - for me - on a Mac than in Windows.

12 months later the policy changed and support engineers could choose.

I guess the difference is I have enough experience to know that using a certain device, my productivity will be much higher than struggling in with a non optimal operating system.

Tenure also plays a part. When you're starting out as an intern or a junior associate, "you get what you get and you don't get upset" and have to make do with whatever the standard is. As a staff engineer, you can throw your weight around a bit more. :)

MacOS, Linux or BSD requirements are all fine with me.

I would never accept working on Windows.

It's like working with my hands tied behind my back.

At my current job, they claim to support both Linux and Mac, but literally everyone else was on Mac, and they shipped me a Mac laptop before even asking my preference.

I should have insisted on Linux instead. 3 years in, and I still cannot stand macos.

In a Herzberg sense...

For office tools and videoconference: primary OS is a hygiene factor

For software/hardware development: primary OS is not a factor (VMs feature heavily)

Nope. My tools work on all three platforms. They all suck pretty hard these days, just in different ways, so what's the difference, really?
Mac's suck with few solutions to various problems. Windows sucks with few solutions to various problems. Linux sucks with many solutions to virtually every problem.

I prefer the latter by rather a lot.

> Linux sucks with many solutions to virtually every problem.

> I prefer the latter by rather a lot.

Good for you. I'll keep looking for a good way to set up a work vpn in Linux.

For most VPNs, that's a solved problem. Which one are you stuck with?
It was OpenVPN with a TOTP 6 digit google authenticator MFA code. It worked just fine with Tunnelblick in MacOS and Viscosity in Windows, but I never found a setup that worked in Linux. And I searched for a while. I had to switch away from linux because there was no good solution to this.

And it's not the only non-easily fixed issue I've had with Linux over the years. The classic saying is "Linux is only free if you don't value your time" and I've found that to be true.

Funny that I am here since I am a relatively mid tier IT guy and not a developer.. but have you considered a windows PC with a Linux VM sharing the VPN connection? Even when there are possible restrictions around that, I am sure an enterprising developer such as yourself could find a way around that, yes?
Why would I want to do that? I said in the beginning of this thread that my tools work on all 3 major OS's (Windows, MacOS, and Linux). A VPN I need doesn't work on Linux? I'll just use Mac or Windows, which is what I did. That was 5+ years ago now.
One of the earliest interviews I had was at this <5 employee company, not a startup, more like a niche dev shop.

When I asked about what tools they use they said "We do our work on <a JetBrains IDE> using Windows, but we deploy to Linux. I asked if it would be okay if I used Linux, they said we all us Windows unless there is a compelling reason.

I thought to myself, hmm you deploy to Linux, but you don't want anyone using it for development... but I didn't really press any further or make much of it at that point in the interview.

But never did get an job offer from them. Worked out for all parties involved I suppose.

But at this point, I'd ask what tools they use and if they enforce any tools or things like that during the interview, as part of my standard set of questions.

It's not a dealbreaker. I'm forced to use Windows in my current position and I accepted it knowing that would be the case.

It is, however, a significant item in the "minus" column when I'm evaluating whether or not I'll accept a position.

For me? No.

I work somewhere with thin clients which log in to one OS, which is an OS I do not develop for. I end up remoting in from that OS to another one. It’s a bit clumsy. On some occasions I’ve been unable to do a thing easily and my manager has been receptive to “I can’t do this thing so I will either have to not do it or find a slower and clumsier way”. It doesn’t always get fixed, but I feel it’s understood.

My employer pays me so while I’m on the clock in the office I will use the OS and software they tell me to (not) use. It’s on them if my productivity is reduced because of informed decisions they make. I get paid whether or not I have to open a ticket and wait because I’m blocked on IT.

Ultimately, my direct line of management is much more important than any OS decision because good management will listen and understand the effects their decisions have and they won’t blame me for the effects of their decisions.

If my managers instruct me to develop containerised Java 6 SOAP microservices to run on Windows Kubernetes clusters in IBM cloud while using a Hannah Montana Linux dev environment over VNC from a SunOS workstation with an AZERTY keyboard and the monitor rotated 180 degrees then I will do it on company time. I’ll tell them what I think of it, though.

Tell me you don’t have meaningful equity without telling me you don’t have meaningful equity.

This feels like peak “I just work here”.

A significant part of being an engineer is solving the problem you are asked to solve. No doubt there are lots of other problems. There are frustrations but these are probably not the problem you have been asked to solve.

I feel this is often missing in how people talk about their job these days.

You also don't have to work there, really, if it gets to that.

The majority of people 'just work here'. Having equity is not the norm.
I do just work there and that’s okay with me.
The vast majority of people have no equity in their employer. That is not a valid requirement for doing your job.
Primary OS is a dealbreaker for me, companies should trust their employees to pick out the tools that are best from them.
Not really, but my efficiency varies significantly between operating systems, and I have never held back my feedback to management, that if we were given right tools then we can deliver more.

And I never was afraid to push for it =)

I used to work in a big old insurance enterprise (with AS/400 mainframes as a backend) and when I joined 100% of engineers were given locked in Windows machines without admin access. Over time me and other engineers were able to influence the company to first give us ability to run linux on desktops and then even expanded to buying Macbooks to developers who wanted.

Currently on macos because the servers we deploy to are linux. Used to work on windows and it was ok, as everything was done from the command line and the application was deployed from the CVS. Realistically I was not really using windows in any meaningful way. Just something to launch a shell from

It would be annoying to unlearn the macos keystrokes at this point though

The keystroke issue is such a big thing. It's not just a matter of remapping either. Like Control+C in the terminal is Control+C in the terminal, but Command+C is Control+C sometimes and Control+Shift+C other times.
I use the same setup for 15+ years which is i3 on Debian with some other tools like emacs, vim (yup, I use both!), vs code, chromium, Firefox and some other things. I have a private network install image which I update/upgrade and it gives me the same experience everywhere fast.

It would be dealbreaker if I cannot have this; theoretically this could run on win/Mac/lin exactly the same, but it does not, so yes, dealbreaker.

As a hiring manager, I would appreciate if the candidate can let me know quickly if it is a show stopper for them. Quickest disqualification for both sides.
How can an applicant know in advance if the position involves an OS they won't be willing to use?

This seems like a case where clear communication in both directions is desirable. You as a hiring manager should disclose if a particular OS is required, so the applicant can tell you if that's acceptable or not.

(Maybe you personally do this -- I'm really using a generic "you" in this comment.)

As a hiring manager, I don't believe choice of OS is critical to join a team and make an impact. So I may not bring that up. If it is really critical to YOU as a candidate, then candidate needs to bring it up as soon as possible in a conversation.
But again, how would a candidate know?

In any case, this is all pretty academic. When I've been applying for positions, a tour of the office is always involved when interviews happen, and I can see for myself what OS the devs are using (as well as other working conditions).

That's how I knew my current position would require me to use Windows, and I was able to take that into account when deciding whether or not to take the job.

They don't have to know. But if you won't take a job because of OS, you should ask upfront in the interview. Better to end it right there instead of continuing further. Heck, ask before the interview through email and get it over with.
> But if you won't take a job because of OS, you should ask upfront in the interview.

If working the job requires a specific OS you should mention it right upfront in the interview, or better yet the job description. Why is it the candidates job to telepathically guess at what hard requirements might exist? You have a requirement, state it.

I don't understand what you mean. It is not a requirement necessarily but unless you are a very small flexible startup, most companies provide standard computers with OS standardized and employees don't have the freedom to install whatever they want.I wouldn't call that a requirement. So no, I wouldn't mention that we require a certain OS.
You just explained why it’s ok for a company to require employees to use a particular OS and then said “but (the requirement) is not a requirement which I don’t understand. As a prospective employee I don’t want to make “dealbreaker” demands because realistically almost any concern on my part can be solved by just paying me more money. If, OTOH there are hard requirements by the employer they should be stated (in office work etc)
You're not getting that most employers treat the requirement to use windows like the requirement to wear pants, i.e. they're not going to state it.