DEV Community

Andriy Zapisotskyi
Andriy Zapisotskyi

Posted on • Edited on

A Checklist For Evaluating the Skills of a ROR Dev

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

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!

Top comments (0)