Sean Cribbs
Who is Sean Cribbs?
I’m a developer and music geek. I maintained and directed Radiant CMS for just over two years, and I’m currently the author and maintainer of Ripple, a collection of gems that help you connect your Rails 3 applications to Riak, a distributed key-value store product that is made by my employer, Basho Technologies. For about 4 years after receiving my CS degree, I studied Music Theory, dabbled in composition, and worked as choir director, so you could say I have a liberal arts background as well. I like to think that the aesthetic principles that I learned as a musician influence my code.
Where and when did you start programming?
I started programming back in grade school. Like many people my age, my first exposure to programming was Apple LOGO, although I didn’t know it was programming at the time. There was also a book on BASIC that I would check out from the school library and renew until they wouldn’t let me renew it anymore. Unfortunately the teachers were really protective of the school’s Apple IIe computers, so I didn’t get any serious programming time until I was in my early teens. By that time, we had IBM PC/IIs in the schools and my parents had purchased a home computer which I hacked on a lot.
Why Ruby?
Ruby caught my eye in early 2006, naturally because of Rails, and saved me from doing PHP or Java professionally. Soon after, I found it very useful for many other things, including scripting my way out of tedious tasks. Beyond that, I find it rewarding to be able to write code that is both useful and aesthetically pleasing. It also helps that the community values those things as well; cleanliness, good tests, and good documentation are important. At the end of the day, Ruby helps me get things done, so I keep coming back to it.
You favorite language? and why?
I don’t know that I have a favorite language, I like languages for different reasons. Ruby is great at both quick scripts and larger, but still loosely-structured OO problems. I love Erlang for working out problems that feel functional, or that involve a network component. R is awesome for doing statistical analyses and has killer declarative graphing components. C is nice for when you just need to add that last bit of speed to programs in another language, and has a feeling of great freedom (and peril) to it. Of course, Javascript is THE language of the browser, and is hard to avoid on the server-side these days, too. I even wrote some Emacs Lisp recently to enhance my day-to-day workflow. I try to keep many languages in my toolbox.
What does your typical day look like?
I usually make it to my desk in my home office by 8:00 or 8:30AM. My work is all done remotely — Basho has offices in Cambridge and San Francisco, but employees all over — so I usually spend my first hour catching up on what the West Coasters did after I left work the previous day. Since I work as part of Basho’s Products and Services team, I often need to field customer support requests, answer questions on the mailing list, or review the status of our internal projects. If there are no pressing issues, I’ll then dive into whatever project I had left the day before, be it automating support tasks, developing educational content for the next webinar, or working out a new feature for the Ripple library. We have our standup call at noon EST, after which I spend the lunch break with my wife (one of the benefits of working from home). After lunch, more of the same. I usually leave my desk between 4:00 and 6:00PM, depending on the day.
What do you do in your free time?
I’ve been playing piano since I was 10, so I’m often playing Chopin, Beethoven, Bach, Ravel or Rachmaninoff on our aging spinet. My wife and I also like to watch movies and older TV shows together – either on DVD or on streaming Netflix. I’m quite addicted to meetups, and try to go to them at least once or twice a month – they help break up the monotony and isolation of working from home. I also read a ton of technical papers and presentations on my computer to keep abreast of new technologies and ideas. When I’m tired of staring at pixels, I’ll sit down with a good novel.
Current favorite apps?
- Desktop: Google Chrome
- Developer tools: Emacs, RVM, git, homebrew
- Web: github, Hootsuite, Google Reader, GMail
- iPhone: Stick Wars, Angry Birds, EchoFon
What OS do you prefer?
For my personal and work machines, it’s Mac OS/X; I started using it 4 years ago and haven’t looked back. It combines the best of thoughtful UI design with the flexible developer tools available to *nix systems. Also, I can’t measure how much time I’ve saved not having to debug device-driver issues! After a while fixing that stuff yourself just gets old and in the way of doing real work. However, Linux (usually Ubuntu or CentOS) is what I would pick to deploy a server application on.
Small picture for your Workplace?
I usually have my desk a little cluttered, but simply use my laptop at it, with no external mouse, keyboard, or monitor. I splurged on an ergonomic mesh chair and my back constantly thanks me for it. Magical Trevor and a Dilbert calendar usually adorn my desk. Our older cat also stays in the home office at night, so her bed and litter box sit near the desk.
Name something that has inspired you recently?
Art and music usually inspire me the most. In November, I visited the Glyptotek museum in Copenhagen, which has a huge collection of incredibly moving ancient and modern sculpture. Many of them started music playing in my head.
What do you prefer (and why)? Freelance work or full time employment?
I did freelance work for three years, until I started at Basho last March. I liked the freedom of being able to set my own schedule and work on what I wanted to, but the cost of that freedom was unpredictable income and lots of paperwork. Truth be told, I could have handled it a lot better, but I was much better at coding than the business stuff. I learned a lot from the experience of freelancing, but I’m going to stick with full-time employment until I’m ready to set out making my own product.
What are your personal projects and goals for 2011?
My first goal is to get Ripple to “1.0″ status, and it’s really close. I’d also like to revisit my Erlang projects, specifically Neotoma, which is a parser-generator that has some similarities to Treetop. There are also countless other things I’d love to be doing, and piano pieces I’d love to learn. 2011 should be an exciting year.





