How can I separate my professional use of Apple computer from the personal use?

I am about to get a new Apple computer soon. I am a developer (actually .NET developer ^___^) and would like to have my personal and professional use separated under the same machine.

I know there is the possibility to use Bootcamp to install Windows, probably the cleanest approach, but I am learning .NET Core and other frameworks available in macOS that I like to work with.

Which approach would you try to keep both personal and developers use away from each other?

  • 4
    You can set up two users on the machine one for work and one for personal use. However if a .NET developer especially if you produce GUIs or want to make use of Visual Studio Bootcamp or a Virtual Machine running Windows would be better
    – mmmmmm
    Commented Feb 26, 2019 at 12:08

3 Answers 3


There are multiple options:

The simplest would be to create two user accounts. Your first account is created during the first use of the Mac. Create a second account by clicking the Apple-menu in the top left corner, select System Preferences, Users & Groups, open the lock and click + to add a new user.

This way you can login to either a personal or professional account. In the same place you add accounts, you can click "Login Options" where you can enble "Fast User Switching". This allows you to easily switch between the personal and private account (both can be logged in at the same time).

Other options for seperating personal and professional use are:

1) BootCamp Windows installation for professional use, macOS installation for personal use. Major drawbacks are that it requires a full reboot every time you want to switch between the two, and it is a hassle to ensure that disk space is available according to where you need it.

2) Virtual Machine with Windows (or macOS) for professional use, and the macOS native system for personal use. Can be done with for example VMware Fusion, Parallels Desktop or free alternatives such as VirtualBox. You can run the two environments simultaneously and share files, clipboard, etc. However allocating storage correctly can still be a nuisance.

3) Spaces. You can divide your open application windows in different "spaces" on the Mac. When you change "spaces" a whole set of windows are exchanged, such that you can keep a virtual desktop with all your professional stuff seperated from the private stuff. It is however up to yourself to organize windows between the two spaces, and there's no seperation of files, etc. on the disk.

  • 1
    For 2 I'd suggest keeping the dev env native and use a vm for personal. That way when it comes time to give up the machine (leaving or new laptop) you can just copy/wipe one file and you're done. It will also run the dev code faster and without artificial memory limits which is likely more important for work stuff than anything personal on a work machine.
    – Kevin
    Commented Feb 26, 2019 at 18:56
  • 1
    You’re assuming that it is a company laptop. That might not be case. You do not have to artificially limit memory with virtual machines at all. For typical dev code, my experience is that virtual machines aren’t noticeable slower than native. But they offer important features for dev work such as snapshots and the ability to clone. Similarly personal stuff may include games which often run noticeable slower in a virtual machine - that’s why I suggested it this way around. However it is trivial to swap them around if you rather want that.
    – jksoegaard
    Commented Feb 26, 2019 at 19:04
  • Actually I am considering an iMac. I would buy it myself.
    – Julen
    Commented Feb 27, 2019 at 16:37
  • Yes, that's what I suspected - then I think the division I suggested in my answer is most suitable. YMMV ofcourse.
    – jksoegaard
    Commented Feb 27, 2019 at 19:58


I am not a user of or developer for Microsoft technologies, generally speaking. I do almost all of both my professional and personal use on a combination of MacOS and Linux. I use almost exclusively free tools (e.g. vim) for development, and so little to no concerns of licensing, product activation, etc.

That being said...

I would challenge you to reframe your way of looking at this: development environments, for work or personal use, should be (as far as is possible given the constraints) completely disposable.

I do almost all of my dev work in VMs that are provisioned by scripts. Reusable, replaceable, reproducible VMs. The host and guest OSes aren't super-relevant, as long as the system meets those goals.

On my trusty MBP, that is achieved through a combination of Vagrant/VirtualBox for server vms (sub with Docker if you swing that way) and Parallels for my actual dev environment. All of my configuration and provisioning are stored and versioned courtesy of github, and I regularly update them as my needs/tastes change.

Now, I don't always strictly adhere to that, I do some work on the host MacOS. But I'm 60% remote, and it's really nice not to have to switch gears too much between home office (MBP) and office office (linux workstation).

You may not want to go this far, and I'm still not sure it was worth all of the effort it took to set up, but I can be productive on a new machine in half and hour or so, and I never have to worry about "works on my machine" kind of issues.

  • @PascLeRasc nah, no syncing or versioning of individual vms. If I want to "update" I just make a new one. The provisioning scripts will pull in everything I need. Then it's git clone a few projects (also scriptable) and it's off to the races. I try really hard to avoid anything that requires much manual setup. As for resources, you can see my current setup here. It's not very polished (it's for my own personal use) but it'll get you started. Commented Feb 26, 2019 at 22:40

You can create a second user account to separate both purposes, or even add a partition and install a second macOS for even more separation. An additional user account is usually more than enough.

You must log in to answer this question.

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