Neidetcher: The Setup

One of my favorite blogs is The Setup. They feature various people that use computers in one way or another to do their job and simply ask them what their setup is. Well since they haven't asked me what my setup is yet (not realizing that I'm kind of a big deal) I'm going to just post this on my own.

Who are you, and what do you do? I'm a software engineer. I have worked mostly for telecommunications companies.

The most challenging job I had was leading up a small but capable development team responsible for routing phone calls, including geo-spatial 911 traffic. This was at a startup without much support.

Now I'm a Senior Engineer at Time Warner Cable. My home office is in Denver, Colorado but I work remote in Lafayette, Louisiana. I fly back about once a month. The team I'm on works on the services that IP devices use to get streaming television content.

What hardware do you use? My main computer is a MacBookPro 15" from 2010. I also have a MacPro Desktop. Each computer has a 27" Thunderbolt Display. I was skeptical at first but the Apple Magic Mouse is an amazing piece of equipment. I use 1 standard keyboard for the desktop but primarily I use the bluetooth keyboard. I wouldn't mind having the bigger size but the travel from home keys to the mouse seems like an eternity compared to the bluetooth keyboard.

I also have an iPad 2 for work. I use it to validate software releases, cable channel updates. I also have an Asus Transformer to do the same thing on the Android platform. I don't write the client code but the team I'm on is responsible for many of the back end services that these devices talk to.

My phone is an LG P999 Android phone. Works great, has all the apps I need; Evernote, Pandora, Dropbox, Google Reader.

And what software? I run MacOS on both machines. The laptop is 10.6, the desktop is 10.7. I hear so much griping about upgrading the OS that I don't mind waiting a while until the kinks get worked out. Before going to the Mac a few years ago I was strictly a Linux user. It has been a smooth transition to the Mac. I still feel comfortable whenever I go back to Linux. If Apple gets too stupid I'll probably switch back.

I spend most of my time in the IDE. I run Eclipse with the Scala-IDE plugin. I also use a code coverage plugin for Eclipse that can handle Scala called eCobertura.

Despite having an IDE I spend a lot of my time in the console, for that I use iTerm. Being a long-time VIM user I'm thankful for MacVim, it's a great distribution of VIM. I use Homebrew for installing commandline tools that are missing from the Mac. At work and in my personal development we use git exclusively. On my desktop I run Jenkins for continuous integration. It polls the git repository on my laptop and our remote GitHub Enterprise servers at work. It continuously compiles our code, runs tests and generates reports.

When using a browser for development I will typically use Chrome. The Chrome plugins I use are for either maintaining privacy or doing software development. I use Poster, Edit this Cookie, AdBlock, Chrome Nanny, Ghostery, Time Tracker, Evernote and HTTPS Everywhere.

I use ShareMouse to make both computers and monitors feel like one big computer. The price is right (free in my case) but it's occasionally glitchy.

For remote work these come in handy: TimeZone, Skype and join.me for impromptu screen sharing

I use Evernote to keep track of information, DropBox to sync files, Pomodoro on occasion to focus, f.lux to save my eyes when working after dark, Alfred as an app launcher and searcher, Marked for previewing MarkDown files. MindNode to create mind maps, PandaBar to make listening to Pandora radio not depend on Adobe Air (WTF) and ShiftIt to easily organize windows.

What would be your dream setup? Pretty much my same setup but with more RAM. Maybe some SSDs. The Scala compiler does a lot of work for you so you need top end hardware when you're doing any Scala project that is beyond trivial. Although our own informal analysis at work seems to indicate that SSDs don't buy you too much for building Scala code, seems that good old fashioned RAM and processor speed is what you need..

Other than that I'd like to have a screaming ThinkPad or AlienWare laptop running some Debian Linux variant.