At the beginning of 2015, the developers here at Don’t Panic Labs were given the option to choose any notebook or tablet computer to call our own. We wanted to encourage mobility and the freedom to work from different spaces when desired. We ended up with a good spread around the office – many choosing Surface Pro 3s or MacBook Pros, along with various other models. Having invested in the Mac platform for several years at home, I chose a MacBook Pro to consolidate my two workspaces – home and work – into one machine that was fully portable.
Choosing the Hardware
When I was deciding upon a configuration for the MacBook Pro, I wanted to be sure I had the right balance of performance vs. power usage. I had previously owned a 15” 2010 MacBook Pro. It was the most powerful configuration that could be had at that time — fastest processor, dedicated video card for gaming, etc. However, I quickly realized I was never going to use the machine to its full potential, and was spending more time charging it than I really desired. For me, the 15” MacBook Pro wasn’t the greatest mobile solution.
Since we are predominately a Microsoft development shop (with quite a bit of time spent with C#), I needed some way to run Windows but still maintain quick access to OS X. This is a major limitation of Boot Camp. An online retailer was offering Parallels 10 for free with the purchase of a MacBook Pro.
I chose a mid-2014 13” MacBook Pro, equipped with a 2.8 GHz Intel Core i5 processor, 16 GB RAM, and a 512 GB SSD.
With the decision to run Windows using Parallels 10, I knew the 16 GB of memory would be needed to ensure the best possible performance for both operating systems. The largest amount of storage space ensured I would have room for both operating systems to grow. While the upgrades may not seem worth the expense to some, having extra memory and storage space puts my mind at ease and removes any dependency on external hard drives.
When it comes to configuring Parallels, here is a list of what I’ve learned so far:
- Avoid allocating all CPU cores to the Parallels virtual. I configured Parallels to use three cores. This was more performant than two cores, but not as resource-intensive as four cores.
- Split the RAM 50/50 between OS X and the Parallels virtual. I had originally allocated 12 GB to Parallels and noticed the swap usage on the Mac side going up. I achieved the best performance feel when only allocating 8 GB to Parallels.
- Enable file and folder sharing between OS X and Windows. Being able to place a file on your Desktop in OS X and seeing that same file on your Windows desktop is very useful and time saving.
- Coherence mode did not perform well in my experience and was better left turned off.
- Expect the fan to spin up every now and then. The notebook is running two operating systems, which can sometimes generate a lot of work for the CPU.
Here’s a gallery of how I’ve configured Parallels to run on my machine (click to view each full-size image).
Getting Down to Work and Lessons Learned (So Far)
The first few weeks of using the MacBook Pro with Parallels did take some time getting used to when it came to performing common tasks, such as reading e-mail in Outlook, browsing the web with Chrome, and writing code in Visual Studio. Through trial and error I figured out which environments work better for the things I do every day.
Thankfully I didn’t spend too much time relearning my workflow because Parallels makes context switching very unobtrusive. Simple things such as sharing folders and files between OS X and Windows allow me to be much more productive throughout my day. Even small functionality like Copy-Paste works seamlessly. I can copy anything in OS X using Cmd+C and paste into Windows with Ctrl+V.
Three months in and I am extremely happy with my setup. My daily routine involves having Windows active on my main 27” external monitor running Visual Studio 2013 Ultimate and Outlook, with Chrome in OS X active on the MacBook Pro’s screen. I have rarely witnessed a period of extreme “slowness”. While this setup may not quite have the feel of running Windows natively, it’s a great fit for my personal choice of working with both operating systems.
Along the way, a few things have surprised me:
- I was unsure in the beginning about using one machine as my main computer for both home and work. It has turned into the best possible scenario for me. I never have to context switch between different computers. Everything I need is on one MacBook, and I can take it with me wherever I go.
Since a few of us have decided to use Macs around the office, we as a company are learning more about using Microsoft apps with OS X. Part of this integration includes Office 365, OneDrive, etc. It is really amazing how Microsoft seems to be making an effort to have their apps available to the masses on the Mac platform.
- People are becoming more interested in the possibility of using Macs while working at Don’t Panic Labs. It is our ultimate goal to provide engineers with their hardware of choice to be more productive and, ultimately, more satisfied.
- With advancements in tools such as OmniSharp, we may soon be able to write the .NET code we love on Mac. I’m definitely looking forward to trying this out and seeing what is in store down the road with this.
- Overall, I would personally recommend a MacBook Pro and Parallels 10 as a solid combination for any .NET developer looking to step into the world of Mac hardware. It’s very easy to work between both operating systems uninterrupted, while being able to develop in C# on one of the most popular and well built notebooks around.