There have been some exceptionally good articles this week about how to hire great Ruby developers, kicked off by Ryan Sobol's list of 15 questions to ask during a Ruby interview. I thought it was a pretty good list, but some of the comments really rubbed me the wrong way. For example, weeding out people who don't know the difference between a Lambda and a Proc.
Peter Cooper picked up on my response in Hiring Ruby Developers over on RubyInside.
The best way to recruit amazing talent is to approach people that you already know are at the top of their game. At this point, the most important question becomes whether their personality is a good fit for the existing team.
Really, if an awesome person who is clearly smart doesn’t know the answer to one of these questions, they can learn it quickly with a little direction. That’s the advantage of having a team - you help each other move forward.
Peter touches on the fact that the demand for top Ruby talent is much bigger than the availability. This is awesome, because it means that people willing to take the leap and quit their Java day job to make Ruby hacking their full time gig likely have their pick of cool startups to work with.
Toronto Ruby developer Andrew Burke saw Wall-E on the weekend, and pointed me to an interview with Andrew Stanton at Pixar:
And I think some of that is because we had a mentality when we were young to hire people based on who they were, not based on their talents. They had to have the right requirements on their résumés, but the most important thing was, “Do I get along working with you? Can I work with you all night in the trenches? If you can get along with everyone in the group, then we’ll see if you’re the person with the best requirements for whatever the task is.” And we’ve kind of kept that attitude ever since we’ve grown. It’s almost this theory of “If you put a whole bunch of good apples in the barrel, the bad apples just can’t stay.”
People often ask us if we’re hiring, and the truth is that we’re never hiring. We don’t consciously recruit people for our development team, but when we meet someone that seems like a perfect fit, we evaluate if it feels like time to grow. We’re very sensitive about company size, and keeping it “single digits” meant that everyone could sit around a dinner table together. We started as three people, and every time a person is added, it’s a big deal. When a person leaves, there is no rush to replace them because they were unique in the first place.
Unspace made an early decision that everyone we bring on has to be the smartest person we’ve ever met. When we met Hampton Catlin, he blew me away and to this day runs circles around me in Ruby coding. However, the first time he came to Unspace, there was no interview. He didn’t have a resume, and we didn’t look at his code. It was just obvious that he was awesome and if we were serious, we should get him before someone else did! We trusted our collective gut, and hired on personality.
We begged Jeffrey Hardy to join after a weekend road trip to RailsConf; if you can enjoy a weekend in a car with someone, chances are you’d work well together. Mike Ferrier came to Rails Pub Nite, and he had awesome rock star hair. He started asking questions that illustrated a problem solving process that made Hampton and I exchange knowing looks. Tyler Rooney was the same story; we met him at RailsConf and he just seemed like someone we wanted to have around. Obviously if he’s doing Rails work at Amazon, someone else has vetted him technically, and dumb people don’t say the things Tyler was saying.
None of these people showed up with resumes, and we didn’t sit them down and ask trick questions about blocks and closures. That’s not to say we couldn’t have asked, but sitting down to audit code is not how we want to choose our friends.
Much like a rock band, building a team is like agreeing to be married to several people at once. You get a lot of face time, and you’re only ever as strong as your weakest link. Next time you find yourself considering someone new, ask yourself if you’d enjoy taking a weekend road trip with them. If you can’t imagine that being fun, perhaps that’s a sign that this A+ candidate your recruiter found might not be a good fit.
Pro tip: we’ve noticed that some of the best developers are also amazing musicians. Make of that what you will!
“Music is a hidden exercise in mathematics by minds unconscious of dealing with numbers.” — Gottfried Wilhelm Leibnitz