Setting Up My MacBook Pro as Cloud Development Machine

Mahadev Gaonkar
3 min readApr 7, 2018

Lately my MacBook Pro started showing signs of aging and became slow. A quick read on Google educated me to go for a hard drive to flash drive upgrade. And here I go, with my MacBook Pro replaced with new shiny SSD. Instead of going for a Time Machine restore, I chose to go for a clean install. Why clean install? Just to tidy up things and get rid of clutter that was accumulated over years.

The upgrade journey started with a normal Time Machine backup in a USB drive. Booted off the drive and selected a clean install. After a successful installation of the macOS, here are the important tasks that I performed. The idea is to document all the activities that a software developer (to be more specific cloud developer) will perform to get his machine back with full force.

Email for Google, Outlook

Over period of time, I got comfortable with inbox email client. It is simple and does the job. With Google as my preferred email and Outlook for Microsoft related emails I was up and running in no time. In future, I may think of linking my Outlook work-mail but for now I was good.

Calendar for Google

I live by events in Google calendar. Again inbox calendar application is sufficient for me to stay in touch with my engagements. If you are curious, most of the my events are training or webinar related.

Pages, Keynote and Numbers

Though Microsoft Office tools are good, I give equal marks to Apple office tools. They are my favourite when I am on Mac. With Microsoft compatibility options, it works both ways.

Xcode

As a cloud developer, mobile applications are part of job. Xcode is the tool of choice developing native apps. I did try working on Xamarin and web based frameworks but I believe native is the way to go for now. By the way, recently I got interested in ReactNative and working on it to add to my mobile portfolio.

CocoaPods

Most of the cloud provider SDK are packaged as CocoaPods. So if you are planning to use iOS as one of the mobile application platforms, it is must.

Brew

This package manager should have been an inbox macOS tool. I cannot imagine my developer life without this fantastic tool. People coming from macOS, this tool needs no introduction.

Python (2.x and 3.x)

When it comes to web development, Python is my go to language. The fast prototyping and support for tons of packages makes it my preferred language. For all major cloud vendors like AWS, Azure and Google, Python has first class support.

Microsoft Remote Desktop

I also deal with Windows machine in cloud and remote desktop helps me to connect with.

Atom

My story of code editors start with Vim. It is still my preferred code editor but over a time I have shifted toward more flexible editors like Sublime Text and Atom. Though I use all three regularly, Atom is my first choice nowadays.

Visual Studio Code

When I am not using atom, I am on Visual Studio Code. An excellent IDE with perfect code completion and integration with other code development ecosystem like GitHub.

Golang

This is a new kid on the block. If I am not doing Python coding, most probably I am engaged with Golang. The idea of writing micro services and going back to compiled languages is great in cloud world.

AWS CLI

Amazon AWS and Microsoft Azure are the clouds I deal with day and day out. Apart from very capable web console, AWS CLI has power to be more programmable and faster for developer inside me.

Azure CLI

Microsoft has good CLI support for Azure that comes handy when you are not using the web console.

Docker

Recently the focus on cloud native has been picking up. And containers are becoming the key element in the cloud architecture. Docker is leading the pack hence it becomes really important for a cloud developer to be well versed in this technology.

Node

The one more popular language in cloud development community other than Python is JavaScript. Using JavaScript for full stack development is becoming norm and Node is great framework for quickly code server side programs.

This list is still in progress and will be updated as I work on more tools.

--

--