My Developer Toolbox
For this first post, I thought I would start by sharing with everyone the collection of tools that I use to write code on a daily basis. For right now, that typically means C# (ASP.NET Core) or Swift (iOS).
Yes, I use a MacBook Pro as my primary development machine (even for .NET development). This is becoming much less surprising than it used to be. In fact, among many of my colleagues, it's more of an anomaly not to use one.
I still spend quite of my development time in Windows. So, for that, VMware Fusion is my friend. Parallels also does a fine job of running Windows on a Mac. However, I prefer VMware Fusion for a few reasons:
- Easier to set up complex network configurations
- Better support for running non-Windows OSes
- Easier to keep the VM and host completely separated (integration can be nice but not always)
GitHub Desktop and Tower
Just about all of the code I write ends up in GitHub. I may end up at the command line from time-to-time but most of the time, I end up using GitHub Desktop or Tower. GitHub is great since it's free and makes it easy to do the basic stuff. Tower is wonderful when you need to do a bit more than pull-commit-push. Bonus - Tower used to be Mac-only but they just released a version for Windows too!
A carpenter may have many fancy tools but a trusty hammer won't be far away. For a software developer, the trusty hammer is a full-featured text editor. Sublime Text has built a large fan-base of which I am a proud member. Also available for Mac and Windows!
A longtime favorite of many Mac users, Transmit from Panic Software is a great tool for all things FTP and Amazon S3.
Microsoft's cross-platform code editor, VS Code, is steadily pushing full Visual Studio out of my coding workflow. As more extensions become available and the debugger continues to improve, I'm finding it harder to justify launching full VS. The recent announcement of Visual Studio for Mac is very interesting but still pretty rough. We'll see.
I have been doing native Mac development since the initial release of OS X (and then iOS upon it's release). Although some other options have emerged (e.g. AppCode from JetBrains), I still prefer to use Apple's Xcode for native app development. However, Xamarin is becoming harder to ignore. I will be spending some quality time with Xamarin this winter.
Path Finder from Cocoatech is one of those tools I just always seem to find a need for. Mac's Finder is perfectly fine most of time. However, when you start working with files that are hidden by default (e.g. .gitignore) or directories like /usr, it start to get painful. Path Finder sits in that sweet-spot between Finder and Terminal.
Ah, the new hotness. It took some time but I am now fully onboard with the Docker movement. I have installed it in both of my development environments (Mac and Windows) and it's slowly taking over all of my production workloads.
My current hosting environment of choice is the Amazon EC2 Container Service. I have also played around with Docker Hub and Microsoft Azure but AWS was the winner for me. I know there will be some future blog posts on what I learned during that journey of discovery.