If you’re looking to hire a React Native developer, here are both the hard and soft skills you should be looking for.
As of 2019, there were more than 204 billion mobile app downloads worldwide. Moreover, consumers spent over 23.4 billion U.S. dollars on mobile apps across all platforms – and that’s in Q1 of 2020 alone.
With those staggering numbers in mind, it might not be such a bad idea to tap into the power of mobile applications for your business (if you haven’t already). And if you think your business could benefit from the development of a custom mobile app, then chances are you’re in need of acquiring a top-notch React Native developer to help bring that idea to fruition.
Overview
- What is React Native?
- Soft Skills to Look for in a React Native Developer
- Hard / Technical Skills to Look for in a React Native Developer
- Vetting Traps to Avoid
- Conclusion: Over to You
What is React Native?
Created by Facebook, React Native is an open-source JavaScript framework used to create mobile applications. Based on Facebook’s React framework, which is used for building web-based user interfaces, React Native enables mobile apps created with it to render natively on both iOS and Android, which has been proven to save a whole lot of time, money, and resources.
Created by Facebook, React Native is an open-source JavaScript framework used to create mobile applications. Based on Facebook’s React framework, which is used for building web-based user interfaces, React Native enables mobile apps created with it to render natively on both iOS and Android, which has been proven to save a whole lot of time, money, and resources.
It’s a fair bet to say that mobile app development isn’t going anywhere any time soon, and having access to a quality React Native developer can take your organization to the next level, earning you more business, increasing customer loyalty and engagement, and, ultimately, helping you stay both relevant in a fast-paced world and top-of-mind for your customers.
But when looking for a React Native developer, what kind of skills and attributes are most important to look for?
Soft Skills to Look for in a React Native Developer
Technical skills are crucial, sure, but let us not forget the ever-important soft skills it takes to make a software developer exceptional.
Communication Skills
It sounds obvious, but in an increasingly remote world, being able to communicate well and in a timely manner is absolutely imperative. When looking for developers, discuss their means of communication and their hours of work. It’s likely that they may live in a different timezone than you, so being able to set aside time to connect is a must.
It’s also important to set up expectations when it comes to the communication channels that will be used. What tools are being used internally at your organization?
Lastly, any effective team player is willing to ask for help when it’s needed. Too often we see precious time wasted by someone who was unwilling to ask someone else for help. Ensure that there are open lines of communication between your developer and the rest of your team and that they understand the appropriate parties for any problem they might have. Encourage working together to uncover solutions.
Good Time Management
A skill that’s top priority for most organizations, time management becomes increasingly important when we’re talking about projects with a strict deadline. That often comes into play for developers being hired for a very specific project where time is of the essence. With many software developers having an entrepreneurial spirit, it’s important to know that your project is a top priority.Especially with many organizations moving into remote work for the first time, it’s natural to be weary about how time (and money) is being spent. For this reason, ensuring you’re working with a developer that knows how to manage his or her time wisely enables you both to set up feasible expectations up front while giving you the comfort of knowing they’ll follow through (pending any unexpected issues).
Problem-solving Skills
Problems will inevitably arise in any development project. It’s a creative and analytical developer that can seamlessly find the solutions and keep the project going. Your developer must be able to do their own research and have the ability to bring solutions to the table.
While it’s not a requirement, it’s also helpful to have a developer with different industry experience. They’ll be able to take that widespread experience and apply it to relevant situations encountered within your organization’s project.
Humility
When you’re hiring someone new to the team, it’s always going to be important for them to be a good culture fit and an overall team player. Regardless of the time being spent on a specific project with your organization, the developer you’re bringing on should be willing to understand your business as a whole and its specific need, and must also be willing to work with the appropriate people on the team to ensure your vision is being brought to light.
Client Feedback
It’s always an excellent addition to have client feedback. It’s not every day that someone is going to boast negative reviews, but positive feedback can give you a great look at what you might be able to expect from a developer from people who were once in your shoes.
Adaptability
Being adaptable may be one of the most important skills a developer can bring to the table. The industry is constantly in flux; it’s important to be able and willing to learn new skills and programming languages when they do present themselves as a necessity for current and future projects. Staying on top of the latest news and trends will keep a developer relevant and in demand.
Effort Estimation
Software is expensive. Therefore, having an engineer that can accurately scope out a project and its moving parts (e.g., how long it will take for them to add a feature) is vital to keep the product moving forward and set for on-time delivery, as well as ensuring that money’s not being wasted.
One can argue that accurate effort estimation could certainly fall under “hard skills” as there’s far more that goes into it than what meets the eye. Although, it’s worth mentioning that a good developer will have some experience with effort estimations, and should be able to give you a pretty good idea of what your project looks like in terms of dollar amount and man-hours/resources required to make it happen.
Hard / Technical Skills to look for in a React Native Developer
Naturally, any React Native developer you’ll be bringing on to your team should have specific hard technical skills in order to complete your project. At G2i we vet for engineers who have a deep understanding of React Native. To help you out, we asked our own engineers what those hard skills might look like. Here’s what they had to say. Feel free to use this info when you’re conducting your own developer vetting:
Adrian Carolli, Core Team Engineer
We spoke with one of our senior developers Adrian Carolli, a developer with eight years of professional experience. He started on the web with the LAMP stack and moved into the modern JavaScript ecosystem with React and React Native three years ago. He is a contributor to the React codebase, and is very involved in the larger React ecosystem. He loves startups and is plugged into the startup scene in Waterloo as well as YCombinator. His experience as a freelancer makes him great with communication in teams and with clients.
Here is what he believes you should look for in a React Native developer:
Required:
- Strong knowledge of React fundamentals such as the virtual DOM, component lifecycle, component state, etc.
- Strong knowledge of JavaScript and functional programming paradigms. For example, writing functional code as opposed to imperative code.
- Experience with a state management library like Redux, MobX or others deep understanding of the full mobile app development lifecycle such as releasing to the app stores and continuous integration
- Writing clean, reliable, and maintainable code
- Knowledge of type checking and unit testing like jest, typescript, prop types, flow, etc.
- Experience with debugging mobile applications
- Worked with large applications and can quickly understand a large codebase
Bonuses
- In some projects, knowledge of mobile programming languages like Swift, Java, and Objective-C are required
- Strong knowledge of type checking and unit testing
- Strong knowledge of mobile programming languages
- Knowledge of monitoring tools like crash reporting and analytics
- Experience writing npm packages and native modules
Andrei Calazans, Core Team Engineer
After speaking with Adrian, we spoke with another one of our senior developers, Andrei Calazans. He is a Software Developer with an emphasis on the JavaScript stack (React, React Native, GraphQL, Relay, Apollo, Redux, Redux-Saga, and others). Over the past few years, he has mostly worked with front-end applications but has also done back-end with GraphQL. Despite starting his career on the Web, he migrated and has been working with mobile applications for quite some time. Due to working on cross-platform solutions like React Native, he has experience writing Swift, Java, and C++.
He believes that despite knowing Software Development, to be successful we have to be good humans too. He cherishes good communication and respect. He also has some of the soft skills we mentioned earlier. He is a fast learner and has great communication skills.
Here is what he believes you should look for in a React Native developer:
Required:
- Strong knowledge of JavaScript, and also programming language fundamentals since as a React Native developer reading code in Swift, Java, Objective-C is required.
- Understanding of how React Native works architecturally in order to understand where a bug could be.
- Basic experience with Mobile UI.
- React Fundamentals.
Bonuses:
- Understanding of State Managers and how they solve problems.
- Experience with Stack and Tab Navigator pattern (Most commonly used navigation architecture for mobile)
- Experience with Animations using the Animated API and Reanimated
- DevOps for mobile development, this includes beta distribution, releasing pipelines, build tools like Fastlane, CI/CD, and etc.
- Some experience with analytics and crash logging.
- Understanding of how Android (gradlew) and iOS (Cocoapods) dependency managers work.
- How to write Native Modules.
- How to link third-party Native Modules.
Guillermo Velasquez, Core Team Engineer
Lastly, we spoke to Guillermo Velasquez, yet another senior developer at G2i. First thing you might notice on his resume, he has 10 years of experience. Long story short, he has always been very much interested in software development. He has an interest in building products in a semi-entrepreneurial kind of way. He can wear multiple hats as a React Native developer, product manager, and SCRUM master.
Here is what he believes you should look for in a React Native developer:
Required:
- Javascript
- NPM/yarn package management
- JSX
- “Modern JS”, ES6 onwards (basically ask them what ECMAScript is and what are those version numbers mean)
- React
- Knowledge of the Flexbox layout model (not super mandatory, but his/her life would be completely miserable until he gets it)
Bonuses:
- Type safety (Typescript and/or Flow)
- Testing
- Jest (preferably)
- Or any other: Mocha, Ava, etc…
- Some Java knowledge for extending Native Modules on Android
- Some ObjC/C++/Swift knowledge for extending Native Modules on iOS
- Some State management library knowledge (Redux, Mobex, even Apollo can be thrown at here)
Vetting Traps to Avoid
Not knowing/understanding what you’re looking for in a developer
In order to find someone well suited for your project, you need to know what you’re looking for in the first place. If you or someone in charge of recruiting within your organization isn’t completely sure what that is, it might be a wise choice to tap into a pool of pre-vetted developers. This can save you precious time and money and get your project underway faster than the alternative.
Overlooking talent
Not every talented developer is in Silicon Valley. Don’t fall into the trap of searching for talent in “prime” areas or searching for those that have the ability to be strictly in-house. You’re missing out on developers that could save you money with talent that’s just as good if not better for the project at hand.
Conclusion: Over to You
Hiring a React Native developer that fits well with your team and has all the skills and experience necessary may sound like a tiresome feat, but we promise it’s possible. Whether you’ve ensured your hiring team is equipped with all the tools and knowledge necessary to find the right fit, or you leave the complex vetting to an experienced team like G2i, you’re well on your way to taking your business to new technological heights. Happy hiring!