20th October 2009
Geoffrey Grosenbach Interview
Geoffrey Grosenbach is the host of the acclaimed Ruby on Rails Podcast. His Gruff graphing library for Ruby is in wide use even though it has not convinced the Ruby elite that he is a legitimate Rubyist. “Independent tech publisher, video producer, Senior Visionary” (from his twitter bio).
- PeepCode Screencasts for Web Developers
- Nuby on Rails Ruby Weblog
- Ruby on Rails Podcast
- twitter.com/topfunky
My very first paying Ruby work was an existing contract that I
convinced the client to use Ruby for.
My next Ruby contract was a job posting that I replied to. It turned
out that the client knew of my recent blog posts and hired me.
Where, and how, do you search for work now? Can you give me some advice on the best ways to find Ruby related work?
I run PeepCode Screencasts full time and am not
doing other consulting work.
I would suggest contributing to open source projects or create your
own project so you have quality code to show a potential employer.
What advice would you give a Ruby beginner without any projects ready to show?
Fix bugs in an existing one. Write tests for an existing project that
doesn’t have many.
What have you learned in the past about working with Ruby, clients, how to find good clients, etc.? Many people dream about changing the past for a better present moment … anything you want to share?
Find one good client and stick with it. It’s much more difficult to
work for many clients at once (especially if you are working solo).
What books, or sites, or recipes, or whatever else you can recommend (they may be about productivity, or negotiation, or thinking – anything you think will help me live a better life as a programmer)?
Of course, PeepCode . I keep up on news with a
site I made: news.peepcode.com.
Paul Graham has some of the best articles I’ve read on productivity
and programming.
I keep a todo list in several ways. Currently I prioritize with Things
(iPhone) and Emacs org-mode (individual projects).
How much time per week do you work? How do you keep yourself productive and focused?
I work full time, at least 40 hours a week. I keep productive by
- Getting up early (I’m most productive in the morning)
- Scheduling blocks of time to focus
- Working on projects first thing in the morning and checking email later
- Hiring a few top-notch assistants to do customer service and other
- non-programming tasks
In my home office I run an 8-core Mac Pro with 20 and 24 inch Dell
screens for video editing and rendering. On the road I run a 13″
MacBook Pro. The SSD has made a huge difference in how often I have to
wait for the computer. Highly recommended for only about $200.
Most of the time I’m in Emacs for text editing and task management. I
try to focus on one thing at a time as much as possible, so I run it
full screen and hide other applications. The only application that I
run when the computer starts is LaunchBar (for quickly jumping to
files, starting applications, sending files to applications, and
searching Google).
I run IM only infrequently and am rarely on IRC. One of the most
productive things I’ve found is to go to a local coffee shop with
flaky WiFi, so I can’t go on the Internet even if I want to!
For email I use MailPlane with Google Gears
so I can use Gmail offline.
For PeepCode, my favorite application is Adobe After Effects. It’s an
amazing application and I wish that Adobe’s other applications were as
efficient and well designed.
It’s always a conflict between spending time optimizing my workflow
(shell scripts, aliases, rake tasks) or just sticking to work. I’ve
ended up with a huge number of useful aliases for creating remote Git
repos, rendering After Effects animations, etc.
How do recommend becoming a successful and profitable programmer?
A complicated question! Figure out what you want to do and find a way
to accomplish it. Starting my own business is one of the best choices
I’ve made, but it’s also stressful and means that I spend less time
writing code and more time on the business. If you just love to
program, find a stable company so you can focus on code. If you want
to run your own show, experiment with a bunch of ideas until you find
one that’s profitable. There are many good business ideas that haven’t
been implemented yet, or have been done poorly.
What should every programmer know?
Keep learning.
Thank you for your time and attention.