So this is part two of my 2017 Web Development Setup post. The first post focused on hardware, this post will be focusing on some of the software tools, utilities, and operating systems I use on a day to day basis while developing software.
Just like my hardware, my software is always changing depending on the tools I need for the task at hand, but there are some pieces of software that are always part of my daily setup.
Desktop: For my desktop workstation I use Ubuntu 17.04, I get a lot of questions as to why I chose to develop on a linux operating system instead of Windows or Mac. The truth is there are a lot of benefits when you use a linux operating system, I started using linux as my primary operating system in 2007 and have never looked back. Knowing my way around linux made it very easy to set up servers as I already knew all of the commands to set up a lamp server on linux, this came very handy when dealing with AWS EC2 instances.
Laptop: I dualboot my macbook pro, I am running the latest version of OSX and I dual book Xubuntu 16.04. I mainly use my macbook for development when I travel and use Xubuntu unless I need to do design work.
Because I am primarily a backend php developer I mainly work on the LAMP stack, which means my primary server environment is Linux based. There are a lot of great Linux server environment CentOS, Fedora, and Debian come to mind. My OS choice for server is a debian based operating system, I chose to run Ubuntu server on most of my main servers (staging, test, and live servers). The reason why I chose Ubuntu is because I am very comfortable using Ubuntu, I run it is my Primary OS on my desktop workstation and have been using Ubuntu for years.
I hope you have enjoyed this insight on some of the applications I use to develop, there are a lot of other tools I use and some non to essential bits of software I use to get me through my day such as Google Music to keep the tunes going while I code. In the end of the day I use the tools that are fitting for the job and find myself refreshing the tools I use every few months or years depending on what type of projects I am working on.