A Checklist For Evaluating the Skills of a ROR Dev
Tags: ruby, rails
Published: 2019-10-16 17:29:58

Any product manager dreams of having a team of superb developers. If a squad consists of first-rate engineers, the chances of building a first-tier product increase significantly.

Each company establishes its own requirements for candidates depending on the technology in question. 

For example, a Python engineer has to know language-specific libraries like Laravel or Symfony, as well as paradigms, databases and other tools. For that reason, a universal set of requirements can not be used.

![Alt text of image](https://www.socialtalent.com/wp-content/uploads/2016/08/13557709_1490023794356993_3579202670312772577_n.jpg)

Specifically, what is needed when the goal is to hire a Ruby on Rails developer? The following checklist of soft and hard skills will be helpful in assessing a candidate’s expertise.

## Soft skills ##
These skills do not refer to software engineering at all but are no less important to evaluating the entire personality of the candidate.

## Empathy ##
That’s an integral component of teamwork. Empathy allows you to look at something from another person’s perspective. The skill also acts as a filter of what needs to be said and why.

## Patience ##
This skill contains a very important component - respect. Being patient means respecting your teammates' opinion regardless of what you're discussing.

## Communication ##
It’s important to differentiate between sociability and communicability. The latter is more important for team collaboration than the first one due to the focus on outcome. Effective communication consists of the ability to listen to others without interruption and clearly express one's own thoughts.

## Hard skills ##
Technical expertise of the Rails developer consists of skills in the Ruby programming language, the Ruby on Rails framework, as well as supplementary knowledge of databases, front-end technologies, and other tools. 

## The language ##
The evaluation of skills in Ruby is based on two aspects. The first one is syntax, which is the reason many developers opt for this programming language. It is necessary to check the candidate’s knowledge of  Ruby’s essential elements including basic data structures, methods, loops & iterators, variables, etc. 



Another domain knowledge to take into account is object-oriented programming. Ruby is the OOP language that forces the Rails engineer to be familiar with the main concepts of the object-oriented paradigm like encapsulation, inheritance, duck typing, and others. 

## The framework ##
Rubyists do not limit their knowledge to one framework, but since the goal is to hire a Rails engineer, he or she must be a pro in the following things:

## Structure ##
An app made in Rails has a structure based on the model-view-controller paradigm.  Each layers is meant for specific tasks. The candidate must know them to differentiate between where the view is and where the business logic is.

## ORM + Active Record ##
The experience in creating web apps entails the work with relational databases. ORM, which is referred to object-relational mapping, is a fundamental programming technique represented by versatile frameworks written in Ruby. Active Record is one of them that comes out-of-the-box. 

## Templating engines ##
As a rule, companies mention the knowledge of two of the most popular templating systems, ERB and HAML. However, the Ruby society offers other view engines like Slim, eRuby, and others. 

## Testing frameworks ##
Test-driven development is the approach widely used in building RoR apps. The framework lets you write tests easily and offers versatile testing tools. Knowledge of some of them, like RSpec or Minitest, is essential.

## JSON API ##
The framework is often leveraged for building JSON APIs. For that reason, the candidate has to know oats of the concept of application programming interface and the JavaScript Object Notation data-interchange format.

## Front-end ##
There is nothing extraordinary here. Three pillars of front-end development, HTML5, CSS, and JavaScript, are the essential expertise of any web developer. As for a Ruby on Rails engineer, these set of skills is a great bonus to his or her domain knowledge.

## DB ##
Some background knowledge of database engines is also welcomed. In most cases, it refers to MySQL and PostgreSQL due to their popularity and widespread use. NoSQL DBs lag behind in popularity, but a basic understanding of the concept won’t hurt.


## Code management ##
Git is a superb assistant for any software developer. The chances that the candidate has no idea about pull requests or new branches are quite low. However, it is better to check this out. 

## Deployment ##
The RoR teams prefer different deployment automation tools, including Heroku, Mina, Capistrano, and others. The broader list the candidate has, the better.

## Project management ##
There are a plethora of PM tools nowadays. There is no guarantee that the candidate is familiar with the tool the company leverages. Nevertheless, his/her knowledge of some most popular tools, like Jira, Github, Trello, and others, should be checked as well.



The checklist is done. Depending on the policies or rules established in the company, it can and should be updated.

*Share with me in the comment section what other skill would you add to my checklist. Penny for your thoughts :)*

Till next time!