This article was written in collaboration with Andrea Ferrando, a Software Engineer at Meta and Sean Keegan, a Developer Advocate at Meta.
For today's interview, we have Andrea Ferrando, a front-end engineer at Meta. His team works on the Ads Manager App where users create, edit, and monitor advertising campaigns.
I am Andrea Ferrando, a software engineer with a passion for delivering exceptional digital products and user experiences. I currently work on the Ads Manager App (AMA); it enables advertisers to create, monitor, and manage their campaigns across all Meta platforms. This app provides a comprehensive solution for advertisers to reach their target audience, making it a critical tool for anyone looking to advertise effectively. I have been working on the AMA for just over a year and have been able to make a real impact on its development.
What inspired me to get involved with React Native is the potential to bring a seamless and efficient user experience to both iOS and Android users. With its reusable components and ability to manage state easily, React Native makes it possible to create high-quality apps quickly and efficiently. The added benefit of having the ability to write code once and run it on multiple platforms is a huge advantage, as it enables us to reach a larger user base and offer a consistent experience across all devices.
I have been using React on a daily basis and it has become an integral part of my role. As a tech lead for a customer-focused product at Meta, I have higher-level responsibilities managing end-to-end product development, setting direction, and working with cross-functional teams; but at the same time, I also have the opportunity to actively contribute to AMA by working on critical features and making hands-on contributions.
Since joining Meta, my work has been focused solely on the Ads Manager App. Our team has end-to-end ownership of the product, which also involves contributing to the development of backend functionality, but AMA is the only React application that I work on.
We take pride in the fact that the Ads Manager App was one of the first React Native applications in the world. It is well-known that React Native originated from a Facebook hackathon in 2013, and our app was one of the pioneers in using this technology. The app provides advertisers with insights and recommendations to help them succeed with their advertising campaigns, and React Native is a perfect fit for this purpose. With its fast development capabilities for both iOS and Android platforms and its ability to deliver great performance, React Native has been instrumental to the success of AMA.
Recently, I have been putting a significant amount of effort into our push notifications infrastructure with a strong focus on ensuring its reliability.
Notifications play a crucial role in mobile applications, and in the case of AMA, they are especially important as they provide a timely delivery of insights to users, which can make all the difference in a successful advertising campaign.
However, it is crucial to strike a balance to prevent overloading users with too many notifications. Additionally, the way notifications are treated and managed differs between iOS and Android, and privacy rules for these two mobile operating systems must be taken into consideration. Despite the challenges, it is a thrilling project to work on, as it requires both product and technical skills to ensure the best user experience and to develop different flows for iOS and Android while managing notifications in ways appropriate to each platform.
React Native allows us to simplify the development process by abstracting out most of the logic that differs between iOS and Android notification delegates, enabling us to concentrate on the development process.
Working as a developer on a React Native application at Meta is a truly remarkable experience. The ability to reach a massive user base with your work and have a significant impact on so many people is very gratifying. However, working at such a large scale also comes with unique challenges that make the job exciting and constantly evolving.
One key aspect of the job is maintaining privacy and data integrity for users. As developers, we need to be knowledgeable about what data we can store–and what data we can't–and we work closely with privacy teams to protect user privacy. This is a critical aspect of the job that can be overlooked in smaller projects or startups, but it is a major priority at Meta and requires us to be flexible and adaptable in our approach.
Another challenging aspect of working on a front-end application that’s used globally is localization. While it is relatively straightforward to design and develop an app in English, translating everything into more than 20 languages can bring to light defects and bugs that were previously unseen. The same word can be three to four times longer in another language, which requires careful design and precise development to make sure all constraints are handled correctly. My previous experience working for banks and airlines has prepared me well for this aspect of the job and I bring a lot of that experience to my current role at Meta.
Working as a React developer at Meta is a truly special opportunity, as it allows you to be in close proximity to the React team, allowing for direct collaboration and communication. This puts you in a one-of-a-kind position within the company.
I also personally really like the functional components in React as they are very useful: They can be optimized for performance using the memoization feature and they can significantly improve the performance of an application by preventing unnecessary render updates. In particular the ease of component reuse is especially important for large-scale applications, making it easier to maintain, test, and manage the codebase.
Actually, I haven’t heard many misconceptions in my career about React or open source software; most of the world's largest companies use and develop open-source software in their day-to-day operations and a large community of developers work on open-source projects.
React Native has a robust architecture and is equipped to handle large-scale applications with its efficient updates and real-time UI rendering. It also provides ease of code management, making it ideal for large projects. Additionally, React Native gives developers the ability to access native modules, providing access to native functionality, thereby enabling the development of comprehensive applications.
As I was starting out with React earlier in my career, I was fortunate enough to work for a company that offered free access to a major online learning portal with video lessons taught by experts. For me, the best way to learn was by watching these video tutorials, which walked me through everything I needed to know step-by-step. After getting a grasp of the basics, I found that hands-on experience–by working on real projects–was invaluable in furthering my understanding of React. If you do not have the opportunity to do it at work, I really suggest finding something you are passionate about and developing an application for it. I started creating my personal website with my portfolio. Additionally, I found the official documentation for React Native to be well-written and very helpful when I needed to look up specific information.
I have a Github account, but most of my work experiences are either proprietary due to work-related confidentiality or are personal projects that are not open-source. I enjoy being on social media and have a good presence on Instagram, but I do not utilize it as a platform to discuss development. Instead, it serves as my escape from work.
We would like to thank Andrea for taking the time to do this interview. It was amazing to learn how React is being used to improve major applications, and how we are learning from all the things we build here and contribute back to the React community. We hope you found this interview useful and it gave you some insight into how and where React is being used at Meta.
React is one of the most popular open source projects and has consistently been ranked as one of the “most loved” web frameworks for the last several years. We at Meta believe that React is an outstanding library that helps developers build user interfaces easily and at scale. Used by millions of developers worldwide, in everything from simple websites to enterprise applications, React is an open source library with a place for everybody.
This blog is a part of our Meet the Developers series, where we invite the engineers and developers who use React on a regular basis to share their experiences and tell us about the amazing products that they are building using React here at Meta. Look out for more interview blogs where we meet with other engineers and hear their thoughts on this topic.