Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news.

11 Tips on Hiring a Rails Developer

By Peter Cooper / November 29, 2007

The following article is a guest article written by John Philip Green of Savvica, a Toronto based educational technology company whose development efforts are focused on Ruby and Rails.

Hiring Rails full-time Rails developers is hard. Here's why:

  • Surging demand. You will likely fight other companies for every recruit.
  • $100/hour++ freelance consulting rates are commonplace.
  • It's hard to evaluate candidates. In the Java or .NET world, number of years of experience is relevant, but not here. The framework is only 3 years old.

I've hired ten full-time Rails developers into startups so far in 2007, but to do that I've had to interview hundreds and learned a lot of lessons. With that, here's my best advice to anyone else who wants hire a Rails developer:

  1. Don't use Monster.com or recruitment agencies. Use your feet instead; find out where Rails developers meet each other and go there. In San Francisco it's the Ruby Meetups, in Toronto check out PubNite. WorkingWithRails.com can also be useful. If you must post to job boards, try 37 Signals and add your job posting to SimplyHired. [Ed: Don't forget the Ruby Inside job board!]
  2. Poach! Talented but unhappy Rails developers are sulking in companies all around you. Just don't poach from friends (or me).
  3. Don't hire someone that doesn't know Rails at all. Perhaps as with all things, you want to hire someone who has self-selected to do that job. Rails is famously easy to get started with… you can literally be running your first Rails app minutes after visiting rubyonrails.org for the first time. I won't hire anyone who hasn't at least built and deployed a couple of projects in their spare time and who understands both the advantages and disadvantages of using the technology.
  4. Look for open source contributions. Being intimate with the open source workings of the Rails community is crucial. Open Source contributions such as releasing a Rails plugin, or fixing bugs on projects like Beast, or Rails itself, demonstrates exposure to other Rails code bases.
  5. A personal Rails blog is required. Every Rails developer should have a blog to engage with the community. On a related note, I've often asked candidates to list their favorite Rails blogs or even show me their newsreader. They should know most of the top Rails blogs and who's behind them.
  6. A university degree is not important. I hate to say it–I'm personally a graduate from Canada's highly-regarded Math/CS program at Waterloo–but several of the best Rails developers I know didn't study computer science at all.
  7. Be wary of holes in proficiency. Rails developers should be fearless. Its reasonable to expect them to have a command of everything from database indices to cross-platform JavaScript. (Bonus points if they are handy in Photoshop and Illustrator.)
  8. Avoid brand-name superstars. They will command massive salaries, sport huge egos, and ultimately not fully commit to your company. Better they gain notoriety through your projects.
  9. Hire perpetually. You'll find that I always have an open Rails developer position, because when demand outstrips supply, you should hire when you can.
  10. Have a company Rails blog with useful, meaningful posts (like our Email Veracity post which made it to del.icio.us/popular) to spread awareness and goodwill.
  11. Special compensation. Money is just one technique of persuasion, everybody wins if you are more creative. First, Rails developers need their MacBook Pros and fat external screens, obviously. Trip to RailsConf should be included. I've also noticed they enjoy free lunches now and again. [Ed: Don't forget the Red Bull..!]

Happy Hiring!

Sponsored, in part, by: https://www.business2community.com/gambling/offshore-casinos

Comments

  1. Swombat says:

    Great post! Another interesting one on the topic is at my blog:

    http://www.inter-sections.net/2007/11/13/how-to-recognise-a-good-programmer/

    Number 3 should be strengthened into: if they don't have any pet projects, never hire them for any programming job, and applies to all languages, imho.

    Daniel

  2. me says:

    If you plan to hire a local candidate do not use 37signals job board. I've used it twice, it's pricey, and I never got a single resume from a local candidate. Our office is in a major American city.

    On the other hand I got a great resume from monster which turned into us hiring a great programmer. To be fair, his was the only resume with rails experience, but we got a good number of decent resumes from monster of people that had a genuine interest in rails, but had not used it professionally.

    This was a few years ago so things may be different now.

  3. vavatch says:

    You only hire people who have a blog? Ugh.

  4. Peter Cooper says:

    I don't think it's necessarily great advice to say to never hire someone who doesn't blog, as you're cutting out 99% of the market that way.. and some pretty darn good programmers. However, it's a sentiment I personally agree with.. I even blogged the same over two years ago.

    A blog also acts as a permanent, long-term résume. You can see if someone has any sense.

  5. Mike Breen says:

    #5, why is a personal Rails blog required? There are enough Rails related blogs out there (such as this fine blog ;-). You don't need your own Rails blog to engage the community just take part in the great blogs that already exists by leaving positive comments/questions or sending constructive criticism directly to the author. Or engage the community through the mailing lists or IRC.

    What we don't need is YARB (yet another rails blog), what we need to do is help the current bloggers improve their sites.

    Now if the person has a truly unique idea (like Ryan Daigle's blog http://ryandaigle.com/) then go for it but having a blog just for the sake of having a Rails blog is just pumping more noise.

  6. Derek Haynes says:

    Good article!

    I do think that the number of candidates that fit these requirements is pretty slim - there aren't many Rails developer actively seeking new positions that (a) have contributed to open-source Rails projects and (b) have a Rails-specific blog with valuable content/insights. Having both of those really starts to cross into #8, avoiding brand-name superstars.

  7. Alex G says:

    If somebody can make 100+/h, why would they want to go full time and make half of that?

  8. planetmcd says:

    What about sense enough not to commit ramblings to blog.

  9. doug says:

    I agree with planetmcd... I don't have a personal blog because I'm afraid of what my signal-to-noise ratio would be. And does a blog with a post or two a month really make me look better than not having one, at the rate things in this community change?

  10. Eric Anderson says:

    As a Rails developer who has created a number of production apps I have to say this post is full of it.

    First of all having a blog may mean they are involved in the community. Or it may just mean they will blow your money wasting time posting to a blog that nobody reads when they should be working. It all depends on the person.

    Second, we don't all use snazzy Macs with all the trimmings and hop around to conferences. Some of us hack code on the same thing we've been hacking other stuff (Java, .NET, Perl, PHP, etc.), we are using that for Rails and we will continue using it after Rails. For me that is Linux. For others it might be Windows, for others it might be Mac. Who the fuck cares! It is an operating system. They all have text editors and Rails runs under all of them. So just get stuff done and use whatever you are comfortable with.

    When will people every learn that productivity is not about the technology? It is about the person. Can that person get stuff done or not? If they can they will pick the best technology for them at the time and get stuff done. If they can't then they will hop around to conferences pretending like they know what they are doing wasting your money.

    When picking a "Rails" programmer pick a person that is technically competent. That is obviously true. But also look for someone who values the money you are paying them and will make your investment in them provide a valuable return. Pick someone who will get stuff done.

  11. Thomas says:

    I guess if you have a blog that means that you read other blogs much more than most other developers. And in a framework that young you need a quick information channel which blogs definitely are. So, give you devs some time to blog and read blogs.

  12. John Philip Green says:

    @vavatch and @planetmcd: I've broken my own advice regarding candidates requiring blogs, but its certainly very important to me:

    - If they are using Mephisto or Typo then they've been exposed to an established rails code base and have successfully deployed it and even customized it.

    - As my company does social media software, engaging in the blogosphere is good experience. How else can you really learn the nuances of FeedBurner and Technorati, etc., if you haven't had a blog?

    - Lastly there's the psychological effect of identifying yourself publicly as a Rails developer. That's a commitment, and addresses my Tip #3 about finding candidates that have self-selected to do Rails.

  13. Peter Cooper says:

    If anyone blogs a rebuttal or a similar, but contrary, post, then feel free to mention it here, as I might link to it in a future post. Nothing like getting the full blend of views!

  14. John Philip Green says:

    @doug One of my favorite Rails blogs is PJ Hyatt & Chris Wanstrath's http://errtheblog.com. They seem to do no more than 1 or 2 posts a month, but they are always monumental. That's what I would aim for with your blog.

  15. Fran says:

    Interesting post but what about those who have less experience? If people follow these rules then people like myself won't ever get a chance. I've reached the limit of what I can learn in total isolation and I don't have the time to do any extra development in my spare time. I don't have a rails blog because I'm still very much learning and I don't have anything extra to add that other rails developers haven't said already. Does someone like me have to become an expert in Rails before even having the opportunity to work with and learn from others? It reminds me of all the "junior developer posts" that asked for 6 months commercial experience in VB - like you can get that as a graduate. While I can see that a lot of your points are for the ideal candidate I'd be interested in what you'd ask for for a junior developer - or do you just not have juniors?

  16. John Philip Green says:

    @Eric I'm disappointed with your hostility, because I think we largely agree. My tips are to help you identify people that can "get stuff done", and should only inform good old-fashioned judgement about hiring.

    That said, I believe engaging in the blogosphere and attending conferences make you a better programmer.

    Regarding MacBook Pros... I perhaps didn't make that point especially well. What I meant was that if your developer wants a Mac, don't cheap out with a MacBook, get them the Big Boy. Of course if they can "get stuff done" better on Linux, BSD, Windows--whatever--then get them that. (BTW, I've personally used Gentoo and Ubuntu on my desktop, and would never mean to malign Linux!)

  17. Dave says:

    A blog is required but not a degree? What they studied is not important, but the fact that they had the motivation and intelligence to finish a degree is.

  18. matt says:

    This is a dumb post full of generalizations.

    - We hired someone with 0 Rails experience and they are now contributing on multiple projects. Why? Because he was a good programmer. Good programmers have no problem moving between languages/frameworks, even if they have favorites.

    - This is just plain stupid:

    "Be wary of holes in proficiency. Rails developers should be fearless. Its reasonable to expect them to have a command of everything from database indices to cross-platform JavaScript. (Bonus points if they are handy in Photoshop and Illustrator.)"

    Of course, everyone should know everything. In addition to being a top notch Ruby developer, he should also be a Javascript whiz (cause hey, that's easy), a rockin' sysadmin, a DBA AND a talented graphics designed. Oh and BTW - DON'T HIRE SUPERSTARS! Oh yeah - he never makes mistakes so he fears nothing.

    What a waste of time.

  19. Graham says:

    And what advice do you have for finding a good Rails freelancer?

  20. John Philip Green says:

    @matt Your anecdotal experience of hiring someone with 0 Rails experience and it working out well is interesting, but certainly not any more generalizable than my experience of hiring 10 this year, and seeing how its working out. I firmly believe that hiring someone with zero Rails experience is risky, because its sufficiently different from more traditional Java and .NET development. I'm surprised that you object to this so vehemently.

    Regarding holes in proficiency... web development is increasingly vertically integrated. In Java and .NET worlds, its quite customary to have front end, business tier, and DBAs all separated. The highly integrated Rails philosophy--convention over configuration, and all that--requires a top to bottom perspective.

    Also, matt, I fear you missed my point about brand-name superstars... I didn't warn against hiring talented developers (quite the contrary) but rather ones that are very well known in the community. (There are exceptions; I would have loved to hire Jeffrey Hardy had 37 Signals not grabbed him. But Jeff is rare!)

  21. Alastair says:

    If you're a half decent Rails programmer, with an app in the real world, the nature of the framework forces you NOT to have any holes in proficiency. I started as a Designer (so I agree with the no CS degree!) and before Rails I knew nothing about sysadmin and little of javascript but Rails forces (and helps) you to learn every part of web development. No part of an application works in isolation, being a 'jack of all trades' makes you a better developer. Who wants to hire the guy who says "don't ask me I'm the DBA" anyways?

    As for having a blog if you're a freelancer it can only help, my business has tripled since I started a blog. Having a blog also means you're not afraid to put your ideas out there (and suffer the drive-by comments). I have to laugh - blog posts are waste of time? possibly, but is the next logical to waste even more time posting a comment?

  22. Shanti Braford says:

    Great list, John! I concur on most all of your points. (heck, I recently got used to free lunch + dinner provided by a local SF startup! but I know that's not the norm)

    @Mike Breen --

    We don't need another YARB?!? Oh noes, not more ruby bloggers!

    http://shanti.railsblog.com/

  23. vicaya says:

    agree with matt. this article is narrow minded bs except for not requiring a cs degree. it just narrow your choices to a bunch of inbred egomaniacs. bloggers are egomaniacs by definition.

    ruby/rails is not hard. in the end, you only need good web developers for any web projects. good web developers are those who have good work ethics and solid cs foundation, who have delivered non-trivial MVC projects and who are comfortable with both OO and functional languages.

    p.s. it's ironic that rubyinside.com is powered by php ;-)

  24. Joel Hayhurst says:

    I was hired by the author of this article (for a previous company he worked for). I was hired via a recruiter and I think the Ruby Meetups are boring. I don't have a Rails blog. My favorite compensation is money.

    My personal advice is to hire just about anyone who shows any proficiency in Rails and seems smart. With the Rails dev market being what it is, you're lucky to find people to interview unless you've got something considerable to offer them. And then you can always fire the bad ones.

  25. Peter Cooper says:

    @vicaya: It seems ironic, but I definitely believe in using the best tool for the job.. and the best blogging software is WordPress which uses PHP :) That said, I think for regular uncomplicated apps, PHP is a good bet due to the lower overheads, easier deployment, etc. Alas, I don't know PHP myself.. which is why I can't use it for anything of my own :)

  26. Meneer R says:

    Here is a couple of sane advises about hiring:
    1. you don't want a fanboy. rails is quirky. even ruby can be quirky. There isn't anything better at the moment for this particular sort of site though.
    2. not all projects do well with ruby. Sometimes you, for example, need to integrate it with a lot of legacy systems that all run java for example.

    Ruby is the very best choice for:
    - freelancers that create small-sites quickly for small companies

    Ruby could be a nice choice for:
    - internet start-ups, but they should feel free to use any technology thats works best for their site. don't fear the duck-tape. dare to be a pioneer. understand there is no standard for your type of site. google's front-page runs on C. their ajax stuff runs on java. their crawlers run on python. don't fear the duck-tape. Use what works to get what you need.

    When hiring people remember that:

    - it is very important they know what they don't know.

    Ask them very difficult questions. make sure they don't bluff. if they tell you they don't know (which is good!) ask them how they would go about finding that information. Internet development is _not_ academically complicated. Its just very nitpicky. The small differences between the browsers, etc.

    - They need patience, they need to be stubborn

    Because what is supposed to work doesn't always work. There are myths out there about the garbage collectors of javascript, about the scalability of ruby and java and the majority of it is just speculation. Nobody really knows. So don't assume the 'internet community' knows best. Test with a prototype. Rewrite everything if needed. Change platform, framework or programming language if that is required. Reality is that ugly mess left when the smoke of the hype clears out ..

    They need to keep up to date with latest developments.

    More than any other area of CS internet development and tricks is an open community. They do not need to participate though. People that write blogs, don't read them in general. So they need to know what is going to happen. They need to know about important internet sites. They need to know about all the myths out there. They can have any opinoin they like about it. Nobody knows until it's tested and done.

  27. Anirban says:

    Rails is not that different from any other MVC framework. Anyone who has used Struts+Hibernate in the Java World can start working on Rails easily.

    I think working with Rails and being a good Ruby developer are different things. Finding a good Ruby developer is harder. A good Ruby developer with decipher the internals of the Rails implementation , understand the philosophy , and extend it, the average one will just follow the book.

  28. Rik says:

    "Don't hire someone that doesn't know Rails at all."

    Wow, great advice! You're a genius!

  29. Mike Breen says:

    @shanti

    total coincidence, I had no clue there was a blog named YARB. Please don't think I was using your blog as an example.

  30. Jeremy Nicoll says:

    @Dave: the reason a degree is not so important is because there are a lot of people out there who can program well but never went to school. There are also a lot of other people out there who have degrees and have trouble putting more than twenty lines of code together. I tell people that my Bachelor's in Information Technology is the most expensive piece of paper I've ever purchased. The most important things about programming I've learned from the community and from practice, though I did pick up a FEW important things in school.

  31. Jay says:

    Interesting blog posting, but I don't know if I fully agree. My current job is all Rails development, which includes at least 5 or so different sites within the company. The only Rails project I had attempted before was one the infamous 'side projects' we always have going on. I never deployed it for anyone to use.
    I was hired as QA actually at the company. Supposed to be testing the website for bugs and what not. It turns out, with my programming background, which includes a masters in CE, I was able to pick Ruby and Rails pretty fast. I started fixing the bugs I was reporting because the contractor rockstar Rails developer was moving a little slow on it and also had his own agenda with the website.
    Now, I do have a Rails blog, etc... but I can say that anyone who is just talented in general can pick up Ruby on Rails. There main focus doesn't just have to be that to be hired. The talent is out there.

  32. jonpv says:

    This post seems to reinforce the fact that most ruby developers are just a load of hipsters who read/write blogs of internet sludge and go to conferences and be all like 'web 2.0'.

    Ruby is good, but the people who use it make it look very bad.

  33. danb says:

    John, as an experienced programmer just starting out in Rails, I would encourage you to weigh overall programming ability more heavily and not rely quite so much on specific knowledge of Rails. One tip in hiring for any new technology is that there are capable people out there who can learn new subjects as needed. If you rely exclusively on experience with one piece of software, even one as good as Rails, you may wind up with people who don't program very well. This applies especially to your tip #3, knowing the limitations of Rails from experience elsewhere. As for tip #1, rubynow (http://jobs.rubynow.com/) seems to be popular and well recommended. I've been checking the telecommunte section regularly.

  34. James says:

    Interesting article, so I figure there must be a few Ruby on Rails developers out there reading this. Which brings me to my point, i am currently looking for a Sr. Web Developer obviously with RoR experience. So if you or any RoR developer friends are unhappy (or not) with your current position please contact me so we discuss the opportunity. The office enviornment is casual with an emphasis on work life balance. And if you want some special compensation we might be apple to work something out. Anyway, this was my attempt to address as many of the authors points as possible in my recruiting efforts. E-mail: hr@corpedia.com

  35. Reta says:

    I would like to see a response to @Frans comments on junior developers. I enjoy developing but need more experience. I have developed a couple of programs in RoR but I'm still too slow to get hired. I don't have a blog but I read others. Any advice for a recently graduated programmer that enjoys coding in RoR would be appreciated.

  36. Jay says:

    Based on a comment left by Peter Cooper on my blog, which was response to this one. Here is the link to view it http://webrepsects.blogspot.com/2007/11/response-to-hiring-buzzword-developer.html

  37. matt says:

    and if you did all these things without having read this blog post . . . you're an ace.

  38. Mat Schaffer says:

    Philadelphia has a PubNite too for those of us state-side on the east coast:
    http://www.phillyonrails.org/community/PubNite

  39. Adam Conroy says:

    Hey Peter I just saw this Adword link and thought of this article:

    http://www.odesk.com/console/users/?filter%5BProfileData%5D=ruby&action=Professionals&titles_only=yes&search_button.x=1&template=landing_g&skill=ruby&gclid=COmXxrvpjJACFSG8GgodOU9jtg

    Ouch! Either demand isn't really as high as us Ruby guys are projecting (even the Us has a 15$/hr job listed) or this job board doesn't work!

  40. Peter Cooper says:

    Good find, but I don't think we should be panicking over oDesk too much. People on there list every single technology they've *heard of* in their profiles. I bet many of those Ukrainian C++ programmers aren't going to be packing hot Ruby code, have any idea of how to deploy a Rails application properly, or so forth. It'd probably take five hours for most of them to do something a Ruby diva could pull off in less than one. Of course, if that still works out cheaper.. :)

  41. Johan says:

    I'm working myself into the RoR market, and although I have plenty of software development experience (all but 25 years of it), I'm new to Ruby (on Rails).

    The biggest obstacle I'm facing, is a lack of real-world examples of RoR sites that I've developed. Fact is, I don't have enough spare time to develop such applications, or to contribute to Open Source projects (that is the reality when you have a family and kids).

    It makes a lot more sense for me to use the spare capacity to generate additional income, the downside is that it will take longer to build up the required portfolio (only way of doing it is to have a pet project or two, or to work on a RoR project at a reduced rate).

    Back to Peter's post ...

    Personal blog is required - not all developers are good writers, don't equate good code writing with good literacy skills (just look at my writing, although English is my 2nd language). Fridaytraffic.com is not exactly the New York Times, but rather a Rails playground. I prefer the Twitter way :-)

    A university degree is not required - true, but a degree in engineering or computer science does have benefits, such as good problem solving skills or algorithm knowledge.

    In conclusion:

    James - I'll be in touch ...

    Meneer R - you are either staying in South Africa, or originated from ZA. Which is it :-)

  42. Peter Cooper says:

    Just to note that the post isn't mine, in case of confusion. It was written by John Philip Green as noted in the first paragraph.

  43. Johan says:

    Peter, sure, misread the intro ...

  44. Jeff Judge says:

    I haven't read through all the comments here, but posting articles like this is pretty tough as there's no magic formula for hiring.

    Having managed development teams ranging in size from from 3-30 people , I feel the most important things are (1) hire smart people, (2) hire people who like to solve problems and figure things out and (3) hire people that you and your team like. They could have loads of programming experience, or they could be newbie. It would be great if they have had experience with other languages outside of Ruby, frameworks outside of Rails, or worked on a high performance system - but that's not required (everybody starts somewhere right?)

    On the flip side of the equation (which is just as important), people are going to like working for you if you take care of them. If someone wants a laptop, get them a laptop. If someone wants a 5k+ mac workstation, ask them why :) Hook them up with a couple monitors. Make the office comfortable. Those are easy things to to do. It's figuring out what motivates and excites people, and making sure they're getting that too that can be tricky.

    Bottom line - you're going to hire some really good people, and you'll probably hire some not so good people. Just go with your gut.

  45. FrankLamontagne says:

    That's an interesting post, but...

    The red bull stuff, please, that's pretty lame. We're not all junkies! Some of us care about their physical and mental condition :)

    "Rails blog required"... nah, bad idea. What's the point of having every rails developers create their own blog? I'm sure there are tons of great rails developers out there who are simply not interested to manage a blog... and it's perfectly fine.

    I think the rest are good advices

Other Posts to Enjoy

Twitter Mentions