The title pretty much says it all, but for some context, I started at a fullstack dev job at a new place about a month ago and before I started they ordered me a MacBook Pro to work on.

Every day since I've been pulling my hair out with this PC, as I've only used Windows and Linux my whole life, and it's seriously undercutting my productivity.

The reason I'm here asking for advice, instead of telling him what I just told you is that

  1. working on Mac seems to be company policy - at least in the development department,
  2. everyone in the team, including my boss, seems a tad sensitive to criticism about Apple/Mac, and
  3. I've got social anxiety, which makes confrontation of this kind quite difficult for me.

In addition to "how to tell him", I'd also like to know if I should tell him, and how I'd go about asking for a Windows/Linux PC.


21 Answers 21


I too found it frustrating when first working with a Mac. There are some advantages to doing so, particularly when touching app development with the closed environment of mac devices (think react-native iOS development). You will need to use a mac in these circumstances. As others have noted it can be seen as a potential opportunity to improve yourself and your prospects. To reframe your issue away from can't work to how to better work with Mac, there are a number of things that can be done:

  • Install a good terminal, I use iTerm atm and has settings to help with keyboard shortcuts to make you feel more at home.
  • Start using a cross platform IDE, there are a few to choose from so do a bit of research and find something suiting your dev stack. Then when moving to a different platform you won't suffer a similar frustration.
  • If you are not using any virtual machines (for the backend), suggest doing so (using provisioning tech like docker-compose or similar). This will get you back into a more familiar linux environment for the back end.
  • Investigate power settings in Mac, its based on BSD Unix so there are plenty setting to tweak.
  • Get an external keyboard and mouse, might seem simple solution but with some config you will be a lot less frustrated.

Have a search around the internet for these sort of recommendations, there are many like yourself that get a bit of shell shock when first moving to a Mac but I honestly believe it is nothing that you can not overcome giving a bit of time.

And in the meantime just let your colleagues know you are feeling you are a bit slow due to the new platform, they may have some great advice on how to speed up and be more efficient as they have worked on Mac for a while no doubt!

  • 51
    +1 to using external keyboard. Map the Ctrl, Win, Alt to key combinations that make more sense to you. Now at least when using that keyboard i can at least to Ctrl+C Ctrl+V, and all the other ones, without having to essentially use Alt for copy paste. Im in the exact same boat, using windows and linux exclusively for 20 years. Got my setup going good on a stand with external monitor, keyboard and 2 button mouse. – element11 Jul 28 '20 at 20:02
  • 10
    Another +1 for the external keyboard. Apple keyboards look too simple for my taste, and I always have to look for `\` or other keys, because they didn't bother to print the corresponding symbols. Other than that, I feel right at home with homebrew+zsh+oh-my-zsh+neovim+git+ssh+..., especially with iTerm2 sliding from the top (apple.stackexchange.com/a/48805/290295). – Eric Duminil Jul 28 '20 at 22:32
  • 6
    +1 for mentioning the UNIX underpinnings, and suggesting that co-workers be a bit patient with OP. – user7761803 Jul 29 '20 at 8:13
  • 5
    Absolutely first thing to do is to get a MagicMouse and set it up for 2-button operation. I love my Macs, but I have to RDP into Windows continuously. A MagicMouse gives you a normal 2 button mouse AND has trackpad gesture capability. Besides that: a mouse gives you better posture. Ergonomically build-in trackpads are a nightmare. – Tonny Jul 29 '20 at 8:30
  • 12
    I really hope OP has a comfortable keyboard, mouse and monitor already. Working directly on a laptop for extended periods of time is an ergonomic (and productivity) nightmare. – Michael Jul 29 '20 at 9:28

The first thing you need to do is learn how to use a Mac.

If everyone else in the department is using Macs, not Windows or Linux, then that's what the whole development environment will be based on. Having one person on a different system complicates the whole process.

  • 10
    I see what you're saying, but it's not like our production environment is on apple servers (if such a thing even exists) - it's just the dev environment. Like, react is one of the platforms we use, and I can't see why it would be an issue if one person out of 5 uses linux, say, while the rest uses mac. – PrintlnParams Jul 28 '20 at 11:15
  • 140
    "I can't see why it would be an issue if one person out of 5 uses linux" - it's an issue for IT support by doubling the environments they need to maintain. – Laconic Droid Jul 28 '20 at 12:06
  • 57
    It's also an issue when communicating with coworkers, using tools used in the current team/project etc. Licenses for tools may be available only for Mac. There are a lot of reasons. I'd also prefer Linux over Mac, but after the initial learn curve the productivity is hardly different. A good craftsman knows his tool (which in your case is a Mac). – simon Jul 28 '20 at 12:21
  • 23
    It's good to learn how to use new technologies, and unfamiliar technologies. That way you increase your set of skills. – Galaxy Jul 28 '20 at 18:38
  • 15
    @Nelson What difference does it make? Programming languages have arbitrary syntax because the creator decided that way. It was not our decision why certain things in the world are like that. However, it is our responsibility to adapt to the world and learn new skills whether we like it or not. Learning is interesting if you make it so. If you go into it with the right mindset, learning can become enjoyable. It's better to choose to make learning enjoyable while you're at it, rather than being miserable, you're gonna have to learn it some day you know. – Galaxy Jul 29 '20 at 4:54

Seems like all the other answers are basically "learn to work with a Mac", so I want to give a different point of view.

I worked for a company that developed iOS apps, so everyone had Macs. I tried to work with a Mac for about a year, until I left that company. I HATED it. I learned all the tips, could definitely do my work, but I knew I could have a better experience using Linux/Windows (I did backend work, so didn't actually need the Mac).

When I switched jobs, I asked specifically if I could have a Linux machine. They agreed. Then, when I joined, I was given a Mac. It wasn't a company policy, but everyone in the company just loved Macs. I installed Linux on it, and after about a year asked for a better machine, and linked to a few different options, none of them were Macs. No part of it was confrontational.

My concrete advice is this:

  1. Try to work with the Mac, but don't get too frustrated if it's still a worse experience than you've had before.
  2. After a few months, if you still don't like working with it, explain the situation to your boss (by email), and ask if you can get a different machine with an OS you like working with. Don't worry about the cost of a new laptop - it's marginal to the cost of a developer, and it's not your concern anyway. They can reuse the Mac and give it to a developer that actually wants it. This is not a confrontation, it's just you asking for proper equipment to do your job.
  3. Now that you've had experience with multiple operating systems, and know what you liked working with, remember to bring this up in future interviews.
  • 18
    I don't even bother applying for jobs when the job description says they use Macs. I've tried to use a Mac and can't stand them. – computercarguy Jul 29 '20 at 17:29
  • @computercarguy And you're a programmer? Wow, that sucks to be missing out on all the features Macs offer developers. I can't imagine getting any real development work done on, say, Windows. As far as programming goes, Macs are top tier. There's a reason the majority of developers at major tech companies use them. – user91988 Jul 31 '20 at 13:56
  • 5
    @user91988, there's nothing "extra" that Macs provide, unless you are required to use them for iOS development. I've had plenty of those "features" reduce my efficiency. And in my unfortunately vast experience in job searching, Macs are not very commonly used in dev. It's still mostly Windows. Maybe 1 in 20-30 jobs say they use Macs. If you "can't imagine", then you are out of touch with the vast majority of devs who do use Windows. – computercarguy Jul 31 '20 at 15:44
  • 2
    @computercarguy How would you know? You've barely used a Mac. I have extensive experience with both Windows and Mac. There is plenty "extra" that Macs provide - namely a Bash command line and plenty of helpful tools and preinstalled languages out of the box. And I said "major tech companies". There aren't even 20 of those in the world... – user91988 Jul 31 '20 at 16:07
  • 2
    @user91988, I used Macs for years in high school and they were OK. I also spent a year trying to use a Mac for that dev job, and I rarely went an hour without some stupid Mac "feature" getting in my way or not having a necessary setting. I'm also one of the devs that grew up with CLIs and used to like them, but think they are superfluous now. I became a programmer so I could help get rid of CLIs. Windows has CLI tools, too. And "20 in the world" means everyone should learn Mac on the off chance they get a job at one? Nah, too low chances, like the lotto, which I don't count on for living. – computercarguy Jul 31 '20 at 16:18

I'm in this exact situation, receiving a macbook pro for work.

  • The keyboard/trackpad are dreadful - use an external keyboard/mouse
  • Can't plug in anything because USB-C - get a USB-C dock that provides the ports you need, and leave it on your desk at work. Take the stock PSU home for emergencies.
  • Not enough monitors - make sure that dock you got has some HDMI or Displayport or even a VGA output.
  • No serial port for console access - get a USB/serial adapter.

On the software side

  • Preferred CLI tools are missing - install homebrew and add them that way. mtr, nmap, screen, tcpdump, etc are all available
  • Synergy works perfectly too, for multi-machine control
  • iterm2 is an upgrade for Terminal
  • if you have touchID then there are ways to mod pam to enable the touchID reader for sudo
  • VPNs generally exist in a mac flavour, its a matter of finding the differences.

And while yes some things are definitely different, that's the nature of IT. Change is endemic, and if you have frozen your skillset then that is not good for your longterm employ-ability. Work on learning and developing yourself, and spin it as a learning experience.

If you fosillise in any technology field, you risk being left behind. My advise is to learn some new stuff, sorry.

  • 3
    Confused about your serial port point. USB is serial, what are you referring to here? – gerrit Jul 29 '20 at 11:57
  • 20
    Can you name a laptop with a better trackpad? Genuinely curious, as Apple is well-known for having the best trackpads in the industry. The keyboard on that one run of MBPs was terrible, but otherwise their keyboards are known for being great, too. – user91988 Jul 29 '20 at 14:16
  • 10
    @gerrit I'm sure he's referring to an RS232 serial connection, which is still often used for console connections to hardware devices. I'm not sure how that's notably relevant here, though. – wfaulk Jul 29 '20 at 14:18
  • 4
    One tip for the switcher: embrace the Apple button. It's so much easier than doing the stupid pinky reach for copy-paste etc. I haven't used OS X daily in years, but I still miss using my thumb. – nomen Jul 29 '20 at 20:31
  • 3
    @nomen by "apple button" you mean "command" which is left of the space bar. – Criggie Jul 30 '20 at 1:00

Well, I would probably want to leave my company if they took my MacBook away and gave me a Windows or Linux machine.

You have basically two choices: Move somewhere else, or embrace it as an opportunity. Develop a positive attitude towards it - things will be a lot easier if you focus on succeeding and not on failing. Learn how to use your computer, and learn how to use it effectively.

(Have you gone to System Preferences and set up your Trackpads properly? That alone is an instant 20% improvement).

  • 4
    The keyboard issue is easy to fix, buy your own. There is also the added benefit that you can bring it with you if you move company. – Keith Loughnane Jul 28 '20 at 11:59
  • 1
    @PrintlnParams you can edit the keyboard settings to match what you expect or install an existing keyboard layout that matches what your fingers expect, but that won't match what is printed on the keys... – Solar Mike Jul 28 '20 at 12:46
  • 2
    @DanM. Because you don't work on your laptop. You have an external monitor, keyboard and mouse. – dan-klasson Jul 29 '20 at 12:11
  • 1
    @gnasher729 A keyboard beats both mice and trackpads. VIM is your friend. – dan-klasson Jul 29 '20 at 12:32
  • 1
    Apple trackpads are amazing things. It's been a few years since I used one, but they're easily top of my list. If I couldn't have an Apple trackpad, an external mouse was a distant second, but I've never come across a decent trackpad on a PC. That's why Apple even sell their trackpads as external peripherals, branded as Magic Trackpad 2. – Phueal Jul 29 '20 at 13:49

I have seen this exact situation a number of times. The issue might not be the development environment.

Sometimes the computer sitting on the desk serves two purposes:

  • A launchpad to get into the development servers. Those servers could be running windows, they could be running a flavor of Unix. or they could be running the databases. sometimes the development environment is the PC.
  • An interface to the day-to-day functions of the company. They are used to generate emails, spreadsheets,presentations, meeting invites...

One place I worked let a few developers use their favorite Unix distro on the machine sitting on their desk. Many man-hours were lost because of incompatibilities between the versions of office running in the rest of the company, and the free version running on their machine. Meeting invites never worked, unless they remembered to manually enter the date into their calendar after checking their phone. Email attachments were always getting lost or mangled.

The issue can also be money and risk. Non-standard OS usage means that IT has to support patching multiple different systems. If they allow the user to be responsible for patching the risk is that a user running their own configuration might miss a patch and expose the company to problems.

Most companies will not allow this without serious justification. In places where it is needed for legitimate purposes they tend to wall off that system from the rest of the network.

  • 6
    To be clear, linux is not unix, though you appear to use them interchangably in your post. – Ave Jul 29 '20 at 7:51
  • @Ave Maybe they are referring to Mac OS (which actually is unix)? – user120152 Jul 31 '20 at 8:24
  • @gszavae maybe, but servers running macOS isn't very popular, afaik. – Ave Jul 31 '20 at 13:39

Just be honest. Tell it to him straight. If you honestly believe your productivity is being negatively affected by using the mac, tell it to him straight and that you can be more of an asset to the company by using a Windows computer. Put it in writing.

Don't over think it.

  • 2
    Same advise, just s/Windows/Linux/. You might be able to just install linux on your macbook. Not doing +1 just because of this 8-) – akostadinov Jul 29 '20 at 11:33

I think your best bet would be to ask for a VMWare Fusion license. This will allow you to run your Windows/Linux environments as you see fit. Failing that:

  • Virtualbox is free but slow on macOS.
  • Ask if you're allowed to set up Boot Camp. This will allow you to run Windows (but, IIRC, not Linux without work) natively. You can then run Virtualbox on Windows for a much faster VM experience.

Frame the request as a functionality or tooling issue rather than a criticism of Apple or Macs. Many developers swear by Visual Studio or by development environments made possible only on Linux machines. Neither of these are really possible on macOS. It also could make a convenient testing environment too.

  • FWIW, QEMU is also free, and significantly faster on macOS if set up correctly than VirtualBox, though it's not as flexible in some respects as VMWare and not as user friendly. – Austin Hemmelgarn Jul 28 '20 at 20:09
  • 2
    I might have to pick your brains on that, as I've failed to get a QEMU Win10 vm working with any significant speed increases – 520 says Reinstate Monica Jul 28 '20 at 20:34
  • I run a full screen Linux VM under vmware fusion on my mac for all of my development with 2 monitors you can have 1 screen with MacOS and one with Linux. – Craig Jul 28 '20 at 21:24
  • 1
    @520saysReinstateMonica The trick is to experiment with the acceleration (-accel option in QEMU, HVF and HAXM both work pretty well on macOS in my experience) and using paravirtualized network and storage hardware (VirtIO in most cases, you'll need extra drivers for this in Windows). – Austin Hemmelgarn Jul 28 '20 at 22:32
  • I tried with HVF (HAXM didn't work) but there wasn't much change in performance – 520 says Reinstate Monica Jul 28 '20 at 22:45

I can completely understand that using a mac is breaking your productivity. I feel like a complete beginner everytimer I touch my girlfriend's macbook even for the most simple things such as searching something on the web.

There is a basic rule that is unfortunatley often disobeyed: Do not hand people unfamiliar equipment without training.
Being an expert on windows or linux helps almost nothing unless you want to fall back to the terminal. Most answer propose that you have to learn how to use a mac. They are slightly wrong, as it is your company's interest to ensure you know how to use a mac (unless this was a job requirement). As your boss to arrange some form of training. It does not need to be the shiny expensive certification, it can be as simple as dedicating some of your time to work through tutorials.
While you could figure out of this just on-the-job, I would talk with your boss beforehand. Learning while working is slowing you down and you do not want to let this fall back on the impression of your productivity (especially as it seems you are the new guy!)

  • 2
    I had a job switch from Windows to Mac based on the personal preference of the senior dev. They didn't give us any training on it and even made us configure the thing ourselves, since there was no IT. Even though I used Macs in HS, the OS was completely different than I was used to from that as well as when I fixed computers for +15 years in between. Even basic stuff led me to questions tutorials didn't cover, and tuts often were extremely version specific, and didn't help. It was over 6 months before I became effective at my job again, that was a lot of wasted time due to lack of training. – computercarguy Jul 29 '20 at 17:15

It is worth considering make an effort with the Mac because although Mac OS itself can be a pain, underneath it's Unix and that's increasingly worth knowing. Linux is also a type of Unix, for example, so learning Mac OS will have a lot of transferable skills and Linux is getting more and more popular.

You might consider asking your boss for some training materials or time allocated to learning on your own, e.g. with tutorial sites or videos.

  • 7
    The OP says they used "Windows or Linux" their whole life, so I think they're already good there. – user3067860 Jul 28 '20 at 20:38
  • 7
    And "unix" on a Mac is really an illusion as so many things are different and will make no sense when back in a real Unix system. Like putting home directories in /Users instead of /home, and millions of peculiarities like that. – Patrick Mevzek Jul 29 '20 at 0:11
  • 6
    @PatrickMevzek Not all Unixes put home directories in /home. Solaris is /export/home, for example. – wfaulk Jul 29 '20 at 14:22
  • @wfaulk Yes, but there is a de facto standard even formalized for Linux variants, see en.wikipedia.org/wiki/… – Patrick Mevzek Jul 29 '20 at 14:37
  • 6
    @wfaulk Yes but the automounter then maps it to /home/ in the recommended setup :) Anyhow, Linux is definitely no "type of Unix" while macOS is (by heritage and trademark) – ljrk Jul 29 '20 at 15:43

When I was put into this exact same situation some years ago, my chosen solution was basically to turn the Macbook into a server and continue to work on my Windows machine.

I set up SSH and installed some software on my Windows machine to create a network drive of the folders on my Mac via SSH.

I was then able to use PuTTY to SSH in for the command line utilities, and I could use either SFTP or the false drive with my IDEs to actually develop.

  • 9
    "… continue to work on my Windows machine." Is this Windows machine your private computer? I would imagine that a lot of companies might not support such a solution. – Emil Jul 29 '20 at 5:34
  • 2
    @Emil In this case yes it was - it was a purely remote working gig. – Scoots Jul 29 '20 at 19:17
  • 1
    This answer is probably the best one realistically, or at least the fallback after giving the mac old college try. Working at a FAANG, in finance tech, or wherever on a DoD contract? No, probably won't work. Working anywhere else? Forgiveness > Permission etc. – Carley Jul 30 '20 at 20:53

As a Linux desktop user going on since 2006, and a professional engineer since 2012, I agree that it can be a tricky transition to move from a platform you're familiar with to one that is alien to you. Note that I did have to leverage a Mac when I first got into the industry, but I've insisted ever since I left that job in 2014 that I leverage a Linux machine so that I could get more into the groove.

The big circumstance around this is to not make it seem like you're displeased with the hardware choice; instead, tie it to the fact that you will perform your job better if you're working in an environment that you're comfortable in. Money is being spent to ensure that you're equipped with what it is you need to do your job, and it's in your and your company's best interest to ensure that money is being well spent.

Time spent acclimating to or dealing with an environment that isn't familiar or comfortable to you is lost productivity and lost motivation, especially during this period when the latter is worth its weight in gold. Time felt like you're fighting against your environment is going to wear you down in subtle ways at first, and could easily harm your morale.


TLDR: Suck it up, but, make the most of the hardware. It's good hardware.

"I can't work with your platform" makes you look awful

Here's the problem with that. Companies innovate all the time - everything from code repositories to conferencing platforms gets changed. Can you imagine an employee who says "I won't work with AWS" right in the middle of an AWS rollout? When you hear that, you fully expect that next week, the story will be "I can't use Bugzilla" or "I won't use ZOOM" or "I won't wear a mask or social distance because 4th Amendment".

That frames you as a whiner / complainer, who puts personal prejudices ahead of team play.

This is worse when it's about Mac vs PC/Linux. Because there is a petty and well-known "religious war" in that vein. Regardless of your actual reasons for disliking Mac, those will be mistaken for the pettiness of that aforementioned "religious war", and your reasons will be considered trivial. So this also frames you as a "snowflake" or "diva" who thinks oneself is more special than other employees, and who wants petty concessions from the company, e.g. the apocryphal "M&Ms with the green ones picked out".

It also suggest mental limitations, i.e. inability to learn new things. Which in the technology field, makes you completely un-marketable.

You ought to be able to work with the platforms they tell you to work with.

If that's an irreconcilable problem for you, then we're really dealing with a cultural-fit issue, and that's a completely different problem.

IT picked this for a reason

This was a lot more obvious back in the day. IT would have plopped an actual 3278 terminal on your desk to access the mainframe. If you demanded a VT100 instead, that obviously wouldn't work, and you'd know that, and wouldn't ask.

It's a server farm now instead of a mainframe, but the same basic concept applies: there are very complex platforms maintained by significant teams, and these platforms are "vertical" from the server to the client. That computer isn't a perc... Think of it as a "terminal" into the corporate cloud, and nothing more. That whole stack, everything from VPN to antivirus to web app interoperability, is externally managed by people whose job that is, and they chose hardware that makes their workload manageable.

Here's what they don't want happening: You opening a bug saying "CVS won't let me upload code". -> "WFM, what browser are you using?" -> Midori.

So you have to work with the platforms they tell you to work with.

That said, you should certainly talk with IT about your options. You're probably not the first person to ask. And here's the thing: If IT wanted to support a diversity of platforms, they picked a good choice of hardware!

Maximize the versatility of the Mac hardware

The Mac is designed to triple-boot MacOS, Windows and Linux. Not emulated*. Native, on bare metal. Hold down option on startup, pick your OS. Heck, you can even pick among several versions of each.

* But that too is available.

Further, MacOS itself is a POSIX compliant BSD implementation. It has an Apple implementation of X11 free for the downloading. So, depending on what you are doing, you may not even need to option-boot into a proper Linux.

I switch back and forth between MacOS command line and actual remote Linux, and it's pretty seamless. I honestly can't see what you're fussing about. You may have to unlearn some archaic commands like sort +2 and learn POSIX versions, but you should be able to handle that.

Even more, Apple has supported booting from external drives since the PowerPC days. So the other OS can be on an external USB 3 keyfob. (Windows might have a problem with this, but that's Windows' problem not the Mac's. No problem with Linux.)

So you already have a very Linux friendly OS natively in MacOS... and if IT permits it, you can simply reboot into Actual Linux or Windows, on external volumes or USB sticks if you prefer.

  • Quick note regarding versatility of Mac hardware: Macs have gotten a lot less versatile lately. macOS has not shipped with X11 since 10.8. Running Linux on modern Macs is also a huge pain and it won't even run in some cases anymore (SecureBoot, signing keys, etc.). Depending on company policy (and hardware revision), disabling SecureBoot may be impossible. – Kaz Wolfe Jul 29 '20 at 18:50
  • I would disagree to some points. Of course you wouldn't like to look like a whiner. But, while I can surely use certain browsers to upload stuff to weird HR websites, I wouldn't want to use a non fitting system to work with. The former needs to be done probably once or twice a year, while the other thing is used 40 hours a week. Other than that the work laptop is simply a tool. They should just provide the one that the dev can work best with. – kap Jul 29 '20 at 20:39
  • Speaking solely as an engineer, the "right hardware" only matters when we're talking about production deploys. Something about that turn of phrase otherwise rubs me the wrong way. – Makoto Jul 29 '20 at 20:56
  • @Makoto Okay, fixed. – Harper - Reinstate Monica Jul 30 '20 at 6:06
  • @kap Good point about HR interactions being rare. Example changed. – Harper - Reinstate Monica Jul 30 '20 at 6:06

Don't frame it as criticism or confrontation.

Say I love this new Mac, but it's a bit different from what I've used before, and I want to make sure I get the best out of this lovely new equipment, so can I have some training please?

I don't know if you're working remotely usually or temporarily, but maybe you just need to sit with an experienced user for an afternoon and run through the processes you need to use with them, or get the Mac personalised to suit you better.

Macs are nice-but-different.

  • 11
    @PhilipKendall The fact that you have to train yourself doesn't mean it isn't training. It's time spent learning new skills instead of doing chargeable work. That's the definition of training. – Graham Jul 29 '20 at 1:01
  • 18
    @PhilipKendall: That is training. The main point is: the OP has started a new job, and training on the company's tools (and that includes their choice of computer flavor and OS) should be part of the onboarding process and must be (time) budgeted accordingly. Self-learning is still training, and self-learning time is still work time. – Jörg W Mittag Jul 29 '20 at 6:25
  • 1
    I'm in this situation now - not regarding Mac hardware and OS, but new technologies I've never developed in before. Whether or not to use work time to train myself in the new languages our stack was written in is an important negotiation. – Beanluc Jul 29 '20 at 16:24
  • 5
    Never lie to your manager, and especially to yourself. I hate Macs. I used and even fixed them in HS, but I can't stand the OS now. And the hardware isn't anything special, either. It's usually 2-3 years old, so they can "make it solid". Whatever. And it takes longer than an afternoon to learn a new OS, even with help. People tend to think Macs will somehow magically improve their performance, which doesn't work when it takes weeks or months to get up to speed on the OS. IMO, that time is better used working than learning a purposeless change in OS like this. – computercarguy Jul 29 '20 at 17:24
  • 1
    @PhilipKendall Why would training not be needed when you get forced into using a different system? Assuming that is just silly. – rkeet Jul 30 '20 at 9:55

Been in the same situation. You could ask if your machine can be given to then next new joiner, and then you order something you prefer.


Configure your Mac so that it would be more like Linux. It is possible to do so. Mac in Unix.

  • Get a 2 button mouse. The major half of frustration is usually because of that single button "almighty mouse". The right button should just work.
  • Reconfigure keyboard so that CTRL works like on Linux and Windows (CTRL-C - copy, etc). This can be done in GUI settings.
  • If it is a laptop, get a proper external keyboard. The laptop keyboard is too far and too high when the laptop is placed optimally for viewing the screen.
  • User settings allow to change the scrolling direction the Windows/Linux way.
  • If the software you develop or use is command line based, use Docker to run it. There is a nice Docker app in the store. There you can have Linux of your choice with root rights on it. Alternatively, use a virtual machine.
  • The location of the default home folder covers major half of the console. However it is possible to create user account nicely placed under /home/username right from GUI.

It is not difficult at all to configure Mac into very productive workstation you would never want to trade into anything else.

  • 2
    Go to System Preferences, make sure your mouse is set up as a two button mouse. Or use the trackpad, ten times better. – gnasher729 Jul 29 '20 at 12:26
  • Yeah, really. First thing I do with any Mac is get a 2-button mouse. Fortunately Apple yielded to this about 15 years ago and virtually all Mac mice allow 2-button mode. – Harper - Reinstate Monica Jul 29 '20 at 17:21
  • Unfortunately one of the worst things, moving the close button to the right side of the windows is not possible afaik. – kap Sep 23 '20 at 21:37

A lot of the CLI tools on the Mac are very old. They are not even updating bash or emacs. So, do you have root on this thing? How much can you install? As mentioned above, you could go with a VM and get linux back, but a half way measure would be to use a package manager. Other answers have mentioned Homebrew, which doesn't need root. That should get you most of your familiar tools. There are actually many such package managers, like portage (via Gentoo Prefix), pkgsrc, Guix/Nix, Junest/Juju, zpkg ... . Here is a good thread on package managers for non-root installs. Since you're doing development and may want to be able to do reproducible builds, I'd encourage you to look at Guix or Nix. Here is a link for how to install Guix without root, if you have to do it that way. (Otherwise, just use the installer script.) Here is similar for Nix.

You might take it as an opportunity. Working around externally imposed limitations is a good life skill! :)

  • 2
    Well, while I thought I was offering sound technical advice, and a bit of wisdom picked up in my superlative MIT training, I suppose the downvotes are merely a reflection of the fact that being an anarchist, I'm unwilling to inhabit "the workplace," at least those that are organized as feudal structures. – Diagon Jul 29 '20 at 22:03
  • 1
    I'm right there with you. Having an anti-capitalist and anarchist perspective instantly puts us at odds with a huge portion of users on SO and hacker news. I think the thirst for those big dev bucks really pushes people into a craven boss-loving/fearing position. Far being from irrelevant here, I think your note about philosophical differences is key to OP and others evaluating all the answers for ones that truly address their needs/proclivities. I liked rkeet's answer above especially because it is far more realistic of an option and represents what a ton of people will secretly do! – Carley Jul 30 '20 at 21:16
  • 3
    Ya, you see this thread filled with suggestions to either give up autonomy, be a "good soldier," &do what you're told; or to play psychological games to support the ego of the boss. All this is completely pathological, leading to utter distortions in character on both sides, up &down the chain. I haven't taken a close look, but I wonder if we have many discussion on this site regarding worker cooperatives, mutuals, or other forms of organization other than capitalist hierarchies. – Diagon Jul 31 '20 at 2:31
  • 2
    Liberating the tradesman who creates the code is the only way we'll ever fundamentally challenge the nature of "ownership," &thereby liberate the code itself. So, nice to meet you, @carley – Diagon Jul 31 '20 at 2:31

Install an emulator for your preferred OS.

You were given a computer that uses a different OS than the one you're most productive on. Fortunately, there's a fairly simple solution for fixing this: emulators! Simply install an emulator on your machine for your preferred OS, and go to town working on your job in the emulated environment.

Sure, there'll be a slight reduction in processing power, since you'll have to run the emulator as well as the software on the emulator, but unless you're doing something computationally-intensive like machine learning or pre-rendered 3D animations, it's unlikely that it would make much of a difference.

Just make sure that you follow any company policies or procedures for installing software onto your machine.

  • Even if he can't install software on the machine, he could install linux on an external hard drive, boot off of that, and then run a virtual machine in linux. There are tutorials on the web for how to run MacOS in a VM. So I'm thinking that with some hacking, he might be able to then run the MacOS installed on the internal laptop hard drive in the VM, which would allow him to transfer data back and forth. Easier, of course, might be to bring his own laptop and run VNC or somesuch to interact with the Mac, similar to what someone suggested in a previous answer. – Diagon Jul 30 '20 at 18:51

OK I think I'll summarise what your problems are:

  • You are a fullstack webdev
  • You normally use window / linux and don't like using OSX
  • You are anxious about saying this to colleagues
  • You would like to tell colleagues you prefer to use a different OS

Well as others have suggested you should at least try to get use to the operating system as being too blunt and saying you just can't work with this OS is not a very good attitude and would show poorly on you.

Others answers are good in that you should try to use the OS here as it's not unusable and whatever frustrations you have should be able to be sorted with a few utilities, external keyboard mouse ...etc. If, for example, you don't like finder have a look for a paid for alternative that suits your needs and put in a request for that.

I'm going to deal with an alternative answer though which is how do you approach a team with that is going to be hostile to your request. In your example this will be handing back the macbook and getting a windows machine say, just to frame the discussion, a Dell XPS 15.

The first thing is that you shouldn't directly approach the manager / decision maker and tell them you want a new PC with windows because OSX is not your thing. As you've said they will take offence at this as you know a macbook is not a cheap bit of kit and they feel it's easier to work in than windows.

What you want to do is make it feel like it's the managers decision to get you a new PC. So in this case you need to show them that for you it's much better. I think you might find that very difficult but if you can somehow get a comparison between time of work done on windows vs mac. I would present this as an experiment rather than an opinion but objective facts about your speed of work.

This needs to be done a few times for it to properly bed in with the manager.

Then you need to present to the manager a question what do they think about these results? Regardless of their response you would response by something like well I think it's interesting maybe if I used windows for a few months we could check. If they don't agree I think they are very much dead set but you can repeat this processes with a different angle a few times to get them to come around to the idea.

The implementation of this isn't actually important what's important is the manner you present it to your colleagues. You want them to be the ones that want to know if running on windows is faster than OSX and you're just the guinea pig. You want them to feel like they are the ones that came up with the idea not you.

All in all though I think this is an android vs iOS thing and really you should just try to get used to the OS.


While the general consensus in the answers is "learn to use a Mac", I'll offer a different perspective.

In my advise: explain in simple terms that this machine, this tool of your trade, is hindering your efficiency in the trade. If a comparison is offered or asked, feel free to respond that you would not replace a woodworkers' hammer with a crowbar to slam down the nails.

Now, with the crude simile out of the way.

A bunch of jobs ago I too was given a Mac, as it was just ordered before I started and assumed I would like it. Or whatever their reason was, it was just a "we all use Macs, so you probably do to". Turned out: I don't like working on them either.

In Windows I know all of the shortcuts. The "close" button is a cross in the top-right. The registry is right there to edit. Services are shut down using a GUI. Anything for working with Windows, I know.

Then comes this Mac. The buttons are wrong. I cannot charge & use a mouse simultaneously. There's additional programs required to work easily as a developer (homebrew?). The only advantages it had were it's IO speed when using Docker / Vagrant for being a unix based OS. Especially that file browser... ermergerd, the frustration is still just below the surface, after all these years.

So. I asked for a Windows laptop/desktop. I got one too. Took some convincing, because why couldn't I learn a Mac? Well, for starters I didn't want to (I know, bit against the 'all things must be learned in IT' principle (on which I also disagree - different topic)). So the only time I would be using it would be at the office. At home I would simply dump it next to the front door for tomorrows' usage. So to convince the boss I asked if he had some time. I brought my own desktop in (heavy up some stairs :p didn't have a laptop at the time) and set that up. Then I went about doing the same tasks, with a timer, to show the boss the difference. Then I said: "This machine just saved you $50,-." That opened some eyes.

Another few things I'm a really big fan of is: "A tool should enable you in your trade, not hinder you" and "If you have to mind your tools all of time, when do you work?".

Which basically mean: A tool should help you do your job more efficiently and how much time is taken up thinking about how to do basic things?

So yes. Ask your boss for a computer running an OS you like and with which you're familiar and fast/efficient. Buying a computer is an expense of $1500 (unless Mac), something easily and fast redeemed by an efficient employee.

  • 1
    The problem here is, while you are a man who understands his trade, you are forced to ply it in a system where the independence of the tradesman has been replaced by a system of corporate fiefdoms, in which everyone has been turned into wage slaves. So now we are reduced to playing the games that you see in the answers here, just so we can do the work that we are good at and want to do! They call this system "efficient??" – Diagon Jul 30 '20 at 18:38
  • 1
    This answer should have more upvotes simply for this: " Then I went about doing the same tasks, with a timer, to show the boss the difference. Then I said: "This machine just saved you $50,-." That opened some eyes.". While everyone else bringing up IT costs, security issues, and pursuing character-developing experiences (!) is right to a degree, the chance that these issues pale in comparison to the actual difference in productivity (and thus labor costs and ability to meet deadlines) is not insignificant and likely huge. – Carley Jul 30 '20 at 21:06
  • 1
    The only time I ever punched a clock,I coded in Forth,took literally 1/10th the time to develop a piece of code as anyone else,&then spent the rest of my time learning what I wanted. This is a common tactic on assembly lines. Come up with a better way to do your piece of the work,&then keep it to yourself to save your sanity &give yourself a break when you need it. So,while I understand what rkeet needed to do,I have to ask why this surplus product (the extra productivity that came from this improved engineering) should go to the boss? Maybe it should go to the tradesman himself. (@Carley) – Diagon Jul 31 '20 at 3:06
  • @Diagon it's not the boss got "extra" productivity though. He got "normal" productivity. I'm very good at using Windows, just is. If you force me onto a Linux or Mac, I will just be a lot less productive. It's a simple matter of using the tools best suited to the person. As the result is still code, either way. Also, about time tracking. Started a new job recently at a web agency. We bill customers by the hour, so time tracking is defo a thing here ;) (I'm still getting used to that, but today is the last day of 1st month - after years of in-house apps at other jobs, without tracking time) – rkeet Jul 31 '20 at 6:24

No Problem!

First of all, your brand-new Mac is inherently a Unix® machine, which you really should take the time to know.

Second, there's this wonderful software tool called VirtualBox, which is produced by none other than Oracle Corporation (the biggest software company on the planet ...), and which runs on everything, and it's free.

In very short order you can use it to set up the Linux environment of your choice ... in a window. I do it all the time.

(And if you want to set up a Windows virtual machine, guess what ... you can do that, too. Both at the same time!)

Something to think about is ... "if you do that, you now have all three of the world's major software development environments, all on one machine." You never know where your career might next lead you. ("I sure didn't!")

Full disclosure: "If you did that, you'd basically have re-created my everyday machine!"

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .