Do you need to find a Ruby on Rails developer to work on your existing software project? Are you now in the role of recruiting a contractor and/or full-time Rails developer but need to learn more about Ruby on Rails?
It's okay to feel like you're out of your depth.
Over the last 20+ years, I've had an opportunity to be both the person hired and, over time, have become the person who has hired well over a hundred Rubyists to work for us and/or provide consulting to our clients as they recruit their own developers.
For this article, I assume you have already found a few potential Ruby on Rails developers and now need to vet them.
If not, it would be helpful to read How To Find Top Ruby on Rails Engineers In This Market.
Ahead of your interview or conversation with candidates, here are some topics and questions that I'd encourage you to consider. Before we get into some Rails-specific topics, I’ll touch on some questions you should ask yourself to find a good fit for your working style.
Rails Interview Questions to Ask Yourself First: How would I prefer to collaborate with a developer?
In an ideal world, a developer can read your mind and quickly push out code changes to manifest those ideas into reality. But, unfortunately, we don't live in that world.
You will likely need to write down your goals and keep them organized and prioritized.
- How much time will you have to interact with a developer every week?
- How quickly will you be able to respond to their questions?
- Will you have time to think about what is next?
- Do you prefer to work through a project management tool, or are you hoping to be able to send a few emails back and forth?
As you reflect on how you'd answer these questions, you should ask prospective developers to share what they believe is an ideal workflow for them. For example, you can ask questions like:
- How do you like to receive requests?
- What would a good request include?
- Can you describe how you've navigated a scenario where you delivered something to a client/customer and heard, "That wasn't quite what we were asking for…”?
If they didn't recall when they built the wrong thing, I would be skeptical about their experience level. Every single developer I know can easily share a few stories. Oftentimes, these scenarios help us grow the most in terms of gathering requirements.
Building on this, you might ask if they have preferred tools for collaborating with people like you. If they answer this question by listing off a bunch of different tools they have experience with (vs. sharing a strong opinion), you might ask a few follow-ups.
- Which of these tools do you believe has been most efficient for you as a developer?
- Which of these tools do you believe are most efficient for your clients?
Listen to how they answer these questions. If they don't reveal much about why they believe those are the case, I’d encourage you to prod them further.
Great developers tend to have strong opinions.
Another question I believe can be pretty revealing is, "If I were to hire you for this, can you give me some advice on how best to oversee your projects and priorities?"
Rails Interview Questions on the Technical Knowledge of Ruby on Rails
Okay, let's talk about ways to better assess a candidate’s experience with Ruby on Rails.
“Can you explain the difference between Ruby and Rails?”
I recommend asking this because I've had to answer it many times. As you'll be collaborating with this person, can they convey a clear distinction that you understand? This might be one of the simplest technical topics for them to explain.
They will likely need to explain other technical concepts to you in the future, so this is a good trial run on what that might look like a few months later. Does their answer make some sense to you? Or does it feel entirely over your head?
“Can you tell me how you found yourself working with Ruby on Rails?”
Did they learn it at a boot camp? On their own?
“What were you working with before Ruby on Rails?”
Do they have experience in other programming languages or frameworks? Prior experience should lead to good answers to the following few questions.
“Can you tell me some of the pros and cons of using Ruby on Rails?”
They should be able to outline a few benefits and downsides.
“Why do you choose to continue working with Ruby on Rails?”
There are a ton of viable programming languages and frameworks available to them. Are they happy working with Rails?
I've spoken with several companies who hire us because their recent contract developer has wanted to "rewrite it all" in another "newer" framework. This can speak to their ability to improve existing code. If they don't enjoy working with Rails, they might start to advocate for a rewrite, which is rarely the best solution.
“How would you ideally begin acclimating yourself to our existing Ruby on Rails codebase?”
Hopefully, they don’t dive too deep into technical jargon and have it go over your head. But, in the scenario that they do, you might listen to them talk about reviewing the database schema, looking at the README, checking for automated tests to describe desired behavior in the application, etc.
If they stay high-level, ask them about how much time they typically need to do that. There’s no correct answer, but I’d be wary if they didn’t have some relative timeline based on their experience.
“Can you explain how you approach testing a Ruby on Rails app?”
One of the great things about the Ruby on Rails framework and community is the strong emphasis on writing automated tests. While we still do manual testing in our web browsers from time to time, we also write code that will test that critical areas of the application are working after we make changes.
If they don't mention automated tests in their answer, you might ask a follow-up, "What automated testing tools do you have the most experience with?"
You might hear a response that references a few of these.
- Test Unit
Ask them to outline how those tools have improved their development workflow if they mention a few.
If they don't have an answer, you might state that you heard from Robby (on Rails) Russell that this was important to look into when hiring a developer.
“Do you have experience upgrading existing applications to a newer version of Ruby on Rails?”
Your own app is likely overdue for some updates. You'll want to find someone who can navigate those upgrades.
If they don't have experience, you should ask them to share what prevented them from being able to do so. Notice if they blame a lack of time or that the product owner not prioritize it. Also, ask if they recommended an upgrade to a stakeholder.
Listen to how they respond to this. If they blame stakeholders for not prioritizing it, you can ask them to share how they pitched their recommendations.
If they don't have a track record of successfully advocating for the long-term stability and security of the application when engaging with stakeholders, this could highlight potential challenges for your project in the future.
“Can you share an example of how you optimized the performance of a Ruby on Rails application?”
While Rails isn't inherently slow, there are often problematic areas of any web application that struggle with some slowness. Perhaps part of your own app comes to mind that seems to load up data and/or perform a process slowly.
There are several tools that developers can use to track down those problems and fine-tune the code and/or database to help speed it up.
If they don't have a few stories to share, it's possible that they haven't (yet) worked on a project with much complex processing or high usage.
“Can you describe how you typically troubleshoot and resolve bugs that occur in production?”
You'll want to note if they reference using any 3rd-party bug monitoring tools, if they mention looking for log files, or if they speak about trying to replicate the bug.
There are several ways that Rails developers can approach debugging production bugs. Does their answer make sense?
“Is there a capability in Ruby on Rails that you've not yet had a chance to put into use but hope to one day?”
This can speak to whether they are paying much attention to the direction of where the framework is going. There isn't a right answer, but I'm going to go out on a limb and say that you likely don't wish to settle with only the capabilities that existed when your software project was first built.
“How would you feel if we contracted with another Ruby on Rails developer to review some of our code from time to time?”
Some of our clients hire us to do just this. We'll spend a handful of hours each month providing peer review of their code to assess how things are evolving. This isn't to say that you should hire us to do that, but this question can reveal a lot about their experience working well with others.
Rarely do we meet great developers who shy away from an opportunity to get peer feedback so they can continuously improve their skills.
My goal here was to arm you with some questions that you could raise in an interview with a prospective Ruby on Rails developer that doesn't require much knowledge about Rails itself.
Another thing to remember is that this need not be a forever decision. You can always initiate a new developer relationship with a few months' trial period. Schedule regular check-ins with them to ensure you understand the technical challenges they're encountering while working on your application. You can always ask for a second opinion, too.
There are plenty of talented Rails developers across the planet. In time, you’ll surely find one. If you do and this article helps, do let me know!
Best of luck out there!
If you need help recruiting Ruby on Rails developers, check out our new Recruiting services can help match you with vetted candidates looking for a new opportunity.
<!--[if lte IE 8]>