The Nomad Developer

Pleased To Meet You!

Hi there! I’m Shane, and I joined the Belly Engineering team as a junior System Engineer just over a month ago. I’ll be helping maintain, improve and grow our infrastructure as our needs evolve. My early efforts have focused on improving the testing of our management/deployment tools as well as developing a few new Chef cookbooks.

I come to Belly from Michigan, where I have previously worked as a Windows-based system/network administrator as well as in customer-facing software support. This is not my first stay in Chicago, and I’m very happy to be back!

I am extremely interested in some up-and-coming technologies, particularly Docker, and I’m incredibly excited that Belly is considering adding these to our technology stack once we’ve had time to research and experiment.

In addition to already being comfortable with Ruby, I am also looking to add some less-common languages to my repertoire, and have started to study Go, Elixir and Clojure over the last 6-12 months. I don’t think any of these languages will find a place in Belly’s infrastructure soon, but I am always looking for new ones to learn and grow in my spare time as well!

If you too are looking to pick up a new programming language, I highly recommend Project Euler and Exercism as great resources to help hone your skills.

Being A Nomad Developer

I have a Macbook Pro at home that I’ve customized a good deal over the last 2 years, and I received an updated model of MBP to use here at work. One of the best ways to be able to hit the ground running in a new position is to make sure you have access to familiar tools wherever it makes sense. To do that, you should try to travel light and keep your prized possessions with you. That advice goes well when it comes to physical belongings, but you can also apply it to your digital assets as well.

Here are some of the tools and techniques I used to be able to have a comfortable, familiar working environment within my first day on the job.

  • Dropbox should be familiar to many readers and I use it to store many miscellaneous files and resources that are not sensitive in nature. Additionally, several of the tools I’ll mention below allow you to use Dropbox to synchronize their own configuration between machines as well.
  • My sensitive information, such as server addresses, API keys, passwords, software keys, etc. are stored safely using 1Password and synchronized using Dropbox. 1Password works very well on OSX and Windows both, integrates with all the major browsers I use, and even has an iOS app for mobile access.
  • Some of the other tools I like to use, like Alfred, also support using Dropbox for synchronizing their settings.
  • Several of the technical publishers I buy ebooks from, notably Pragmatic Programmers and O’reilly, can deliver new ebooks and updated editions to my Dropbox account automatically.
  • Most of my favorite command-line tools are just a brew install away with homebrew. You can even automate installing your common tools using brew bundle, as described on thoughtbot’s blog.
  • By adding brew-cask to the mix, I can also conveniently install most of my GUI software using homebrew as well, and nearly all the rest are a one-click install through the App Store.
  • I keep my dotfiles in Git, and use a thoughtbot tool named rcm to help manage them. This means that the configuration for many of my favorite tools follow me wherever I go, and are version controlled. Similar tools are also covered on this page. If you’re not sure what kind of customization is possible via dotfiles, dotshare.it is an excellent resource.
  • I primarily use Sublime Text, but also periodically use vim or Atom when the mood (or necessity) strikes. I am even dabbling with emacs. All of them besides Sublime use traditional dotfiles for configuration, so they’re covered by rcm mentioned above. Sublime, on the other hand, is trickier to sync. I currently manually synchronize a few core configuration files via Dropbox and symlinks, but I’ve started to look into Sublimall with interest.
  • Like many developers, I definitely prefer to have some tunes going as I work. I’ve moved away from a hefty iTunes library in favor of a paid Spotify account. For those songs/artists that aren’t available on Spotify, I buy DRM-free versions and store them in Dropbox, then add that folder to Spotify as a local source. This even works well with Spotify’s mobile sync.
  • (Bonus Recommendation!) Looking at documentation is often necessary in my line of work, but that task has been made easy and painless by installing Kapeli’s Dash tool, which as of v2 has greatly improved support for rubygems and cheatsheets.

By using these tools and techniques, I was able to sit down with a brand new laptop, install Xcode through the App Store, and then install and configure all my favorite applications in a matter of an hour or two.

Readers who use Windows are not able to take advantage of most of my recommendations above, but you do have the fantastic tool Ninite available to you!

Ask a question or share this article, we’d love to hear from you!