My Local Setup

2 minute read

So I get asked this alot as a contract programmer.

What is my local setup?

Well, after a lot of trial and error I have come up with a pretty smooth running system that works for me. Now full disclosure, this may not work for you. Each developer has their own style, so your millage may very here.

First I run a Mac. Now you can use linux, windows, what ever. Me? I prefer the Macs and macOS. 'Mac Book Pro'

Then I install MAMP on my Mac to run a webserver,mysql,cgi-bin,php, etc… This is pretty easy to setup and allows me to set up different hosts and not have to install a bunch of different software. 'Mamp Pro'


When I need to actually replicate a different server such as a certain version of linux running a certain version of postgres DB, I use VMWare to create a virtual machine with those specifications. There is a lot of talk about Docker, and I have looked into it. But I found there is a very steep learning curve and setup to using it. Therefore unless you are very skilled, I would not recomend it. Docker is not for the faint of heart. 'VMware Fusion Pro'


Now the big one, what IDE. This is where a lot of developers will differ. I have tried many and a lot were good why some were just plain bad. Eclipse was a decent editor, but was a hog on memory usage. Ultra Edit, Coda, BB Edit, Sublime were really good but come at a pretty good cost. Lately I have been using Visual Studio Code. Its free (what i like best), and can work with multiple languages. It can integrate with Git for code tracking. Basicaly it works as well as the paid ones. Did I mention it’s free? 'Visual Studio Code'


Lastly you want to track your code changes, and maybe even share some code. For this I use Git and GitHub. There are a few different technologies for tracking code changes. SVN, RCS but I have found Git to be the most versatile. Git Hub


As an extra I will talk about communication. Whether it’s with colleagues or clients, communication is key. So for clients, most often Email and Phone will suffice. When on ocasion you have a need to screen share or group meeting for training or showing finished project there are some other options. There is Skype, Zoom, Microsoft Teams, etc. I would recomend creating an account at each of them as different organizations will use different platforms for meetings. An account is free to sign up and you are ready no matter what platform is requested of you. When working with other programers in teams a different software may be necessary, such as Discord or Slack.