I haven’t written here anything in a while. Whatever, I’d like to describe my toolbox and setup.

Hardware

First of all, most of magic happens on my Macbook Air 13”. When I’m not on the go, or laying on the couch, the Macbook is hooked up to Thunderbolt Display.

Macbook Air is really a beautiful, appealing thing. Not only it’s a piece of hardware, but also the awesome experience. Small, thin, light, fast.

OS

My OS of choice is, not hard to guess, OS X. Compared to Windows, its main pro is, it’s the real UNIX, meaning I have my lovely terminal there, and all UNIX tools. (I can’t even imagine myself working without that.)

A few pros of OS X over both Windows and different Linux distros:

UI/UX, the one I really like it for. Stylish, elegant, Made For Humans™

could be a part of previous, but I’d rather write it separately: font rendering. If you’ve ever seen how texts are rendered on Macs, I doubt you’ll be able to look at how they are rendered on Windows/Linux machines without your eyes bleeding

nice application ecosystem

(Shortly: I really do care about simplicily, power, and aethetics at the same time.)

Dev environment

My entire development environment can be bootstrapped on any Mac with a single command1:

I also run a manservant instance using Pow on man.dev. With it, I’m able to look up manpages right from Safari.

Obviously, my personal & client apps are on Github. Github is especially useful for client app development — each repo has got a wiki for some project-related documents, Issues are awesome for both tracking bugs, offering new features, having discussions, and managing milestones.

Nevertheless, I don’t like being locked into one language, I want to be a polyglot. I’m playing with a whole lot of different technologies in my spare time — Node.js, Scala, Erlang/Elixir, Clojure. (And whenever some of those make specific taks better than Ruby, I’m using it over Ruby. So in my recent client app I’ve got a zoo of a few apps — backend Rails app, utility Node.js application, communicating via REST API/Pusher with frontend Backbone app.)

Deployment

I don’t deploy my apps to separate own server, nor I really want to.

Heroku allows rapid, dead-simple deployment. And so, it’s my the only deployment option (for now at least, I do understand that some very specific kinds of apps might require separate server). I like its simplicity (in deploying, scaling, managing env vars), I like lots of its hidden power (buildpacks, for example). Deployed apps use MongoLab for MongoDB in the cloud, Redis to go for Redis.