Writing Code Across Multiple Platforms
31 March, 2020
During my time as head of mobile at Envoy, I was tasked to pilot and create a new product for both IOS and Android. Managing both the front and back end of a small mobile team, we needed to maintain two different platforms. Functionality wise, everything was pretty much the same except for certain features that are native to their specific platform. It was such a huge task because these two products don’t share the same code base and need to be compiled in different ways.
Before 2015, hiring both Android and IOS engineers to build a team from scratch is what all companies did. With that, you do not gain a lot in terms of cross-functionality however, because they are so separate. At Envoy, we were facing the same problem. This is when I decided to research and try a new platform that came to me by word of mouth.
A lot of people in my startup circle had been using a new platform on Facebook by the name of React Native. While there may be more up to date tools now, back then, React Native was the only platform of its kind. It was made for writing code for an app just once and then creates different code native to their apps.
A month later I quit Envoy and brought this new tool with me when I joined Spin. Instead of having two engineering teams on each platform, I wanted just one person to code out the app for both IOS and Android.
- By using a platform like React Native, you no longer need to hire two sets of different engineers. All you need to do is write the code once and make the necessary tweaks for each platform. Unfortunately, being a new platform, it didn’t garner much support and was painful at times due to a lack of resources like Stack Overflow to tell you how to solve engineering problems. I really had to dig in myself and comment back to the community. Despite that, it ended up working really well and we were able to ship on both platforms within a month.
- Introducing React Native to Spin really helped us scale; even today when we are 600 people. We are at the size right now where we can actually hire specific expertise for each platform. This has allowed us to get the most out of the platform itself and thus, enhance the user experience.
- My recommendation for any startup moving forward is to start with React Native as a means to save time and money. One of the problems of having teams across different platforms is that they become misaligned. This can affect the release cycle and cause inconsistent updates.
- Getting your app to be completely perfect on each platform is good, but it comes at a cost. In a startup, this might not be as important as it is to quickly figure out if the code works or not.
Shridharan Muthu, VP of Engineering at Zoosk, discusses effective communication using Slack including a recommended framework that entails three simple tips to make the most of the tool.
VP of Engineering, Backend Applications at Zoosk
Jeff Foster, Head of Product Engineering, highlights key learnings from his experience of running open spaces and if and how it contributed to an increase in innovation.
Head of Product Engineering at Redgate
Jeff Foster, Head of Product Engineering, shares how he managed to break down silos in his organization by encouraging their employees to choose their own team.
Head of Product Engineering at Redgate
Murali Bala, Director, Software Engineering at Capital One, outlines how he applied a root cause analysis to fix a recurring outage of their website.
Director, Software Engineering at Capital One
Agata Grzybek, ex-Uber Engineering Manager, outlines her efforts to inspire mission-driven culture among engineers on her team.
Engineering Manager at ex-Uber
You're a great engineer.
Become a great engineering leader.
Plato (platohq.com) is the world's biggest mentorship platform for engineering managers & product managers. We've curated a community of mentors who are the tech industry's best engineering & product leaders from companies like Facebook, Lyft, Slack, Airbnb, Gusto, and more.