Some of our clients need help expanding their mobile teams. Often, we work on projects that are built with React Native. It’s a natural extension to a team that already has experience building web applications in React.
But often we end up with a big problem.
When we open the job advert for React Native experts, we receive myriad irrelevant applications. Here’s the definitive list of what you need to learn if you want to apply to a React Native position.
A history of shipping
For candidates applying to our open roles, we don’t require a minimum number of years of experience. Instead, we look for a pattern of achievement. In the case of a React Native position, we want to see that you’ve built and shipped mobile applications.
This means that you can point to a product that’s live and say, “I did this.” If the product is no longer live, then a set of screenshots is also useful to have in your portfolio. What we care about is the role you fulfilled and the specific actions you took to deliver the solution, alone or as part of a team.
Because you know how to ship a product, that means you also have experience with deployment. The mobile ecosystem differs greatly from web applications when it comes to getting a product in the hands of consumers.
Code signing has historically been complicated and, although it’s gotten easier, we want to see that you have the expertise to solve these types of problems. After all, you’ll be one of the experts dealing with this.
DevOps tooling continues to improve for mobile apps. Bitrise and Fastlane offer similar solutions, easing the delivery of mobile products. Which one do you prefer? We want to see that you understand how to build new versions of the application, properly sign the artifact, and get it approved in the vendor store.
Let’s talk about quality
For some reason, we also find that mobile developers are less likely to test their application using proper testing setups. Apple and Google have made great advances to facilitate easy testing. During your technical challenge, it’s one of the major things we look for.
Additionally, we want to see that you can communicate the tradeoffs between various solutions and the one you’ve settled on. Because programming is knowledge work, there is flexibility in the way we solve problems. It’s important that there is transparency around the strengths and weaknesses of the particular solution you’ve applied.
How does this lead to quality? It’s rare that any person we hire will be working in isolation. The ability to communicate and document these details is what separates medior and senior engineers. By creating transparency, it’s easier for a team to deliver a high-quality solution. Make sure that you are able to contribute to that.
Foundations are important
Modern applications are built using the newest versions of the technology. That means we expect you to build applications using the framework’s best practices. For instance, are you designing your application around hooks or classes? Are you using Redux or Jotai? What about Sagas and Thunks? A seasoned React Native developer understands the tradeoffs between these technology choices.
The biggest gap we see is that some developers apply without having any domain expertise in either Swift (iOS or Objective-C) or Kotlin/Java (Android). This is necessary because React Native engineers also need to build bridges. You should be an expert in one platform or the other.
Beyond the hard skills
Of course, anything else you can add to this is a benefit. Many modern mobile developers started out programming in other ways, and this experience can help you land the position. In fact, despite the list above, we still encourage you to apply even if you don’t meet all the requirements. We recognize that diversity, equity, and inclusion are at the heart of success.