Hardware wise, Take Off Labs is 100% Apple. Main development is carried out on various 13’’ MacBookPros, iPads, iPhones and two superb iMacs:
- One 27’’ iMac, 3.4GHz i7
- One 21.5’’ iMac, 2.8GHz i7
With that in hand, it’s all about software. The first two things I start in the morning is the Terminal and TextMate 1.
- I use oh-my-zsh mainly for highlighting the command line. I had to disable an annoying autocorrect option though
- TextMate 1 is a simple text editor with enough shortcuts to boost productivity. However, I do need to clear development.log from time to time to keep search times bearable.
In terms of building apps, the tools are the classical ones:
- GitHub for source management
- Heroku for hosting
- Databases are all over the map: from MySQL, PostgreSQL, MongoDB and others
Gems that make it in every app:
- airbrake for keeping track of Ruby exceptions
- devise + omniauth for all user registration with or without Facebook, Twitter etc
- sass + coffee + haml to avoid classic CSS, JS and HTML
- carrierwave + mini_magick + fog to upload, resize and store photos on Amazon S3
- I am using for a while Ryan Bates’s cancan gem for managing role-based permissions (manager vs. user vs. admin)
The general impression at Take Off Labs is that design must be implemented by developers. We know what a browser can and can’t do. Clients using IE will call us, not the designer when something doesn’t work. I always found it difficult to achieve the effects desired by the Photoshop file across all browsers and devices. Some gems however make life much much easier and I actually started to enjoy working closely with designs and learning from them. Compass and Fancy Buttons are the most important ones. I also found out another nice gem recently: iOS-checkboxes – iOS checkbox effect in browser.
Lastly but not least, there is one thing I learned in college and something worth embedding in our company culture. The table matters! I’ve learnt that it’s very important to have a large desk, uncluttered, simple, of the right height and with a lot of space around it. I think the cubicles, 6-people packed offices don’t work. I don’t believe common and noisy areas are the best environment for a developer. They are necessary for socializing, for meeting people and exchanging ideas, for talking to clients, but when it comes down to writing code, to thinking the problems through, a good table and some privacy do the trick.
What works best for you?