martin2k
ForumsVB6GamesSoftwareDirectoryHTMLArticlesBlogContact

How to hire a ReactJS developer in 2017? Ultimate skill set

Articles

If you plan to create a new web application you will need a ReactJS developer. But how can you choose one? What defines a good ReactJS developer? What is the ideal skill set of such developer? This article will help you answer these questions.

Introduction

TL;DR

Ultimate ReactJS developer should know:

  • The difference between ReactJs and other JS frameworks
  • The life cycle of a ReactJS component
  • JSX
  • Flux
  • Stateless functional components

 

In this article I will not focus on the usual qualities of employee that you should look out for, this text is only about what should ReactJS developer know. Speaking from experience, I can tell that the best candidates for a developer position can promptly deliver their opinions and defend it based on their own experience. That’s what you should look for. But, how do you search for a developer like that? You can deduct that there are a lot of developers, because, React is the top trending tech on Stack Overflow. You interview several developers and then choose one depending on his answers. Usually, these interviews consist of notorious gotcha-style questions and irrelevant white board exercises. I propose a different approach, five questions that will help you determine which of the candidates is a worthy ReactJS developer.

I. What is ReactJS? What is the difference between ReactJS and other JS frameworks?

Yeah, I know, it sounds like a very simple question for a ReactJS developer, but it has a purpose. The answer of a potential developer will give you an insight about his opinion on ReactJS, as well as other JS frameworks. This question will test his knowledge of the JavaScript ecosystem and as well as ReactJS unique features. 

So what answer should you hear from an ideal ReactJS developer?

ReactJS is an open-source JavaScript library for building complex, interactive UIs in web and mobile applications. The core purpose of ReactJS is to build UI components. Thus, it is virtually independent of other pieces of your technology and can be integrated into any application.

 

II. What is the life cycle of a ReactJS component?

In ReactJS components allow you to divide the user interface into independent pieces, and work with them separately. One of the most valuable features of ReactJS is the component lifecycle. If the potential developer doesn’t understand exactly how separate components work over time, it means that he cannot build a maintainable application.

What is the right answer?

There are three major events in the ReactJS components life cycles:

  • Initialization
  • State and/or properties updates
  • Destruction

 

III. What can you tell about JSX?

JSX is a dialect of JavaScript, it embeds raw HTML templates inside JS code. It was introduced at the same time as React by Facebook. JSX code must be transformed into vanilla JS because it cannot be read by the browser. It can be done using tools like Webpack and Babel. Most of the developers have a strong negative reaction to JSX, however, it has become the default method of defining React components.

Nonetheless, a potential developer can declare that you don’t have to use JSX to create an application in ReactJS. Well, it is true, but Facebook certainly encourages it and JSX reduces the overall code complexity. Another benefit of JSX is that it supports ES2015 – it is the latest version of JavaScript approved by ECMA International.

IV. Have you ever worked with Flux?

Flux is an architectural pattern, its main purpose is to control derived data. Flux really helps multiple components interact with “borrowed” data without the risk of pollution.

For a skilled ReactJS developer Flux is a relatively simple concept, but the applicant will need to demonstrate a deep understanding of its implementation.  In order to test the knowledge of Flux you will have to talk with your potential ReactJS developer about following topics:

  • Description of Flux
  • Flux vs MVC
  • Difference with AngularJS(1.x)
  • Testing
  • Popular Flux libraries(Redux, Alt,js)

 

V. Are you familiar with stateless functional components?

Stateless functional components were presented with the introduction of React .14. These components use plain JS functions, and the difference with and without them seems subtle at first glance, but there are some major wins if the ReactJS developer uses them, for example:

  • No class needed - experienced developer should agree that simple functions are generally better
  • No “this” keyword – as a result, all the annoying and confusing aspects of JS’s “this” keyword are obsolete
  • Protects from laziness – stateless functional components enforce the programmer to keep the code pure and to put everything where it belongs
  • Less “noise” – this means that the code will be shorter by ~20%, keeping the same functions.
  • Easier to understand and test – because the developer is encouraged to write pure functions with less “noise” they are naturally easier to read and test.

 VI. Additional questions

If you have several candidates that are equal after the previous questions here are some more, so you can decide the ideal ReactJS developer for you:

  • When should you choose ReactJS over AngularJS?
  • Can you explain the problems that you might encounter developing a large app using ReactJS? Since it focuses on building UI components.
  • How much code are you expecting to re-use when rewriting an AngularJS app to ReactJS?
  • What is the difference of React components with ES5 and ES6?

Also, you can add bonus points if you find following skills in the applicants:

  • Java
  • SOAP
  • REST
  • XML
  • Redux
  • ES6
  • HTML5
  • Android SDK
  • Eclipse

 

Conclusion

Now you are ready to browse the market and pick the best ReactJS developer for you. Don’t forget that you will need an experienced interviewer to detect one though. Also, the ultimate skill set is not equal to an ideal employee. This means, that don’t forget about simple human skills that you find valuable.

 

Author: Alex Volski

Business analyst at ThinkMobiles with over 5 years of experience in all kinds of software development. I am always open to new ideas and willing to share the experience. Currently working on several AR projects, if you have some interesting info on this subject feel free to contact me.



Martin Allen 1999 - 2018.  Last updated Sunday 4 March 2018 20:44 +0000.