Interview with Xavier Shay
Introduce yourself/tell us about you
I make computers do wonderful things, swing dance, juggle, meditate, enjoy exercise, rock climb, live vegan, and I teach others how to do the same.
How long have you been working on Ruby/Ruby on Rails projects for?
Professionally since the start of 2007, back in rails 1.x days. Redbubble was my first gig, and I’ve worked on a number of other big projects since then.
What other languages have you been deeply involved with?
I was pretty up on Java back in the day but am pretty rusty these days. I remember I was teaching myself how to build websites with Spring and spending many joyful yet unproductive hours nerding out over factory factories, then tried Rails, got something working within a few hours and thinking “is that it? I guess I need to do some real work now.”
I once wrote a 3D engine in C++, that was pretty cool. Oh, and a boot loader in assembler. Recently I’ve been getting into Haskell to work on my functional programming skills.
What’s your favorite thing about anything Ruby/Ruby on Rails?
At this point, familiarity. I know the language and libraries backwards so am an order of magnitude more efficient with it than anything else. Of course, the ecosystem supports rapid development and has done ever since the 15-minute blog video came out for rails. That I can go from an idea to a deployed app (on Heroku) within an hour still amazes me.
I love the weight the community puts behind best practices such as automated testing and deployment, even though I feel it tends to be biased towards fast rather than sustainable development. I don’t feel there are good resources available for maintaining large Rails applications yet, even though there are a number of them out there. Perhaps as a community we just don’t have the collective experience yet, being a relatively new framework and language.
Are there any big realizations you came across when you were learning Ruby, that would help others learning too?
It’s been so long I can’t remember learning!
Get along to your local meetup group and get involved in the community, even if it’s just by showing up and drinking beer with people. This will give you exposure to what people are doing with the language, and how they’re doing it, and will save you a lot of time chasing down dead ends.
Start contributing to the libraries you use, even if it is just feedback, replicating bugs, or writing documentation. If you’re a beginner, you are in the best place to contribute documentation since maintainers and experts are typically already too familiar with their code to write good instructions. This will also force you to go the extra mile and figure out how things are working, which is good for your Ruby education.