Volver a las novedades para desarrolladores

Meet the Developers - Edición de React @ Meta (Andrea Ferrando)

27 de abril de 2023DeNavyata Bawa

Este artículo se escribió con la colaboración de Andrea Ferrando, ingeniero de software de Meta, y Sean Keegan, representante de desarrolladores de Meta.

En la entrevista de hoy, invitamos a Andrea Ferrando, ingeniero de frontend de Meta. Su equipo trabaja en la app del administrador de anuncios, con la que los usuarios crean, editan y supervisan las campañas publicitarias.

Cuéntanos más sobre ti.

Soy Andrea Ferrando, ingeniero de software apasionado por entregar experiencias de usuario y productos digitales únicos. Ahora trabajo en la app del administrador de anuncios, que permite a los anunciantes crear, supervisar y administrar sus campañas en todas las plataformas de Meta. Esta app proporciona una solución integral para que los anunciantes lleguen al público objetivo, lo que la vuelve una herramienta fundamental para cualquier persona que quiera implementar una publicidad eficaz. Vengo trabajando en la app del administrador de anuncios desde hace más de un año y logré producir un impacto real en su desarrollo.

Lo que me inspiró a involucrarme con React Native es el potencial de ofrecer una experiencia simple y eficiente a los usuarios de iOS y de Android. Con componentes reutilizables y la capacidad de administrar estados fácilmente, React Native permite crear apps de alta calidad de manera rápida y eficiente. El beneficio agregado de poder escribir código una vez y ejecutarlo en varias plataformas es una gran ventaja, ya que nos permite llegar a más usuarios y ofrecer una experiencia coherente en todos los dispositivos.

¿En qué medida estuviste usando React?

Estuve usando React todos los días y se volvió una parte fundamental de mi rol. En Meta, como líder técnico de un producto centrado en el cliente, tengo responsabilidades de nivel superior relacionadas con la administración de todo el proceso de desarrollo de productos, la definición de un rumbo y el trabajo con equipos multifuncionales. Al mismo tiempo, tengo la oportunidad de contribuir activamente con la app del administrador de anuncios. Para eso, trabajo en funciones clave y realizo contribuciones prácticas.

¿En cuáles de los proyectos de Meta en los que trabajaste se usa React?

Desde que entré a Meta, mi trabajo se centró solo en la app del administrador de anuncios. Nuestro equipo tiene la propiedad integral del producto, que también implica contribuir con el desarrollo de la funcionalidad de backend, pero la app del administrador de anuncios es la única app de React en la que trabajo.

¿Por qué tu equipo eligió usar React y cómo los ayudó a ti y a tu equipo a cumplir sus objetivos de desarrollo?

Nos enorgullece que la app del administrador de anuncios haya sido una de las primeras apps de React Native del mundo. Se sabe que React Native tiene sus orígenes en el hackatón de Facebook de 2013, y nuestra app fue una de las primeras en usar esta tecnología. La app proporciona a los anunciantes estadísticas y recomendaciones que los ayudan a tener éxito en sus campañas publicitarias, y React Native es la herramienta perfecta para este fin. Con las capacidades de desarrollo rápido de las plataformas de iOS y Android, y con la capacidad de entregar un alto rendimiento, React Native ha sido fundamental en el éxito de la app del administrador de anuncios.

En este último tiempo, ¿qué actividades te entusiasman o te enorgullecen mucho?

En este último tiempo, me dediqué mucho a la infraestructura de las notificaciones push, con especial atención en garantizar la confiabilidad.

Las notificaciones cumplen un rol clave en las apps para celulares y, en el caso de la app del administrador de anuncios, son muy importantes, ya que proporcionan una entrega oportuna de estadísticas a los usuarios, lo que puede marcar una gran diferencia en una campaña publicitaria exitosa.

Sin embargo, es fundamental encontrar un equilibrio para evitar sobrecargar a los usuarios con tantas notificaciones. Además, la manera en que se tratan y administran las notificaciones es diferente en iOS y en Android, y se deben tener en cuenta las reglas de privacidad de estos dos sistemas operativos móviles. A pesar de los desafíos, es emocionante trabajar en este proyecto, ya que involucra habilidades técnicas y de productos para garantizar la mejor experiencia de usuario y desarrollar diferentes flujos para iOS y Android y, a la vez, administrar las notificaciones de manera acorde a cada plataforma.

Para simplificar el proceso de desarrollo, React Native nos permite abstraer la mayor parte de la lógica que difiere entre los delegados de notificaciones de iOS y de Android, de modo que podamos concentrarnos en el proceso de desarrollo.

¿Hay algo especialmente emocionante sobre ser desarrollador de React en una empresa como Meta?

Trabajar en Meta como desarrollador de una app de React Native es realmente una experiencia única. Es muy gratificante llegar a usuarios de forma masiva con tu trabajo y generar un impacto significativo en tantas personas. Sin embargo, trabajar a una escala tan grande también implica desafíos únicos, que hacen que el trabajo sea interesante y esté en constante evolución.

Un aspecto clave del trabajo es mantener la privacidad y la integridad de los datos de los usuarios. Como desarrolladores, debemos saber qué datos podemos almacenar (y cuáles no), y trabajamos estrechamente con los equipos de privacidad para proteger la privacidad de los usuarios. Es un aspecto clave del trabajo, que se puede pasar por alto en proyectos o empresas emergentes más pequeños, pero en Meta es una de las prioridades principales y exige que tengamos un enfoque flexible y adaptable.

Otro aspecto desafiante de trabajar en una app de frontend que se usa en todo el mundo es la localización. Mientras que es relativamente sencillo diseñar y desarrollar una app en inglés, traducir todo el contenido a más de 20 idiomas puede poner en evidencia defectos y errores que no se habían detectado antes. La misma palabra puede ser de tres a cuatro veces más larga en otro idioma, lo que exige un diseño cuidadoso y un desarrollo preciso para garantizar que todas las limitaciones se manejen como corresponde. Mi experiencia laboral previa en bancos y aerolíneas me preparó bien para este aspecto del trabajo, y aplico gran parte de esa experiencia en mi rol actual, en Meta.

¿Qué te motiva sobre trabajar en el espacio de React hoy?

Trabajar como desarrollador de React en Meta es, en verdad, una oportunidad especial, ya que me permite estar muy cerca del equipo de React y, así, establecer una colaboración y una comunicación directas. Esto te coloca en una posición única en la empresa.

Para ser un ingeniero exitoso de un producto centrado en el cliente, se necesita un conjunto de habilidades diversas. Es esencial escribir código que priorice el rendimiento de manera precisa y confiable, al igual que enfocarse en aspectos como la experiencia y la accesibilidad del usuario. En casos como este, resulta beneficioso trabajar con un lenguaje dinámico como React, ya que permite a los desarrolladores concentrarse en el proceso de desarrollo sin gastos generales excesivos. Con mi experiencia en el desarrollo de telefonía celular nativa, sobre todo en apps a gran escala, fui testigo de cómo el tiempo de compilación puede impedir el trabajo diario y desperdiciar tiempo valioso. Por eso, valoro el uso de un DOM virtual en React, que permite realizar actualizaciones eficientes y entregas en tiempo real de componentes de UI. A pesar de la adopción generalizada entre los desarrolladores y las empresas en toda la web, React sigue siendo fácil de usar y accesible para el usuario, en parte, gracias a su base en JavaScript/TypeScript (JS/TS), lenguajes muy usados entre los desarrolladores. Me gusta usar TypeScript con React. TypeScript un lenguaje estáticamente tipado, lo que hace que sea más fácil detectar errores en etapas tempranas del proceso de desarrollo.

Además, en lo personal, me gustan mucho los componentes funcionales de React porque son muy útiles: se pueden optimizar para aumentar el rendimiento mediante la función de memoización y pueden aumentar de manera significativa el rendimiento de una app, ya que evitan las actualizaciones de render innecesarias. En particular, la facilidad de reutilizar componentes es importante, sobre todo en las apps a gran escala, lo que facilita mantener, probar y administrar el código base.

¿Cuáles son algunos de los conceptos erróneos sobre React o el desarrollo de software de código abierto con las que te encontraste en tu carrera?

A decir verdad, no escuché muchos conceptos erróneos durante mi carrera sobre React ni el software de código abierto. La mayoría de las empresas más grandes del mundo usan y desarrollan software de código abierto en sus operaciones diarias, y una gran comunidad de desarrolladores trabaja en proyectos de código abierto.

Escuché diversas preocupaciones sobre React Native, en particular, que es lento y solo adecuado para proyectos pequeños, con capacidades limitadas. Algunas personas piensan que el uso de JavaScript de React Native para interactuar con los componentes nativos genera un rendimiento más lento en comparación con las apps compiladas de manera nativa. En algunos casos, como en el streaming, las apps nativas pueden tener un mejor rendimiento, pero en el caso de la mayoría de las apps que se usan a diario, que principalmente muestran imágenes y texto, y que favorecen la interacción del usuario, React Native tiene un rendimiento igual de bueno.

¿Qué tienes ganas de ver en el futuro de React?

React Native tiene una arquitectura sólida y está preparado para gestionar apps a gran escala gracias a las actualizaciones eficientes y las entregas de UI en tiempo real. Además, proporciona facilidad en la gestión de códigos, por lo que es ideal para proyectos grandes. Asimismo, React Native ofrece a los desarrolladores la capacidad de acceder a módulos nativos, lo que proporciona acceso a la funcionalidad nativa y, así, permite el desarrollo de apps integrales.

¿Qué recursos son útiles para comenzar a usar React? ¿Qué puedes decirnos sobre la contribución?

Cuando estaba comenzando con React al principio de mi carrera, tuve la suerte de trabajar para una empresa que ofrecía acceso gratuito a un portal de aprendizaje online con lecciones en video dictadas por expertos. Para mí, la mejor manera de aprender era mirar esos tutoriales de video, que me guiaron en todo lo que necesitaba saber paso por paso. Luego de entender lo básico, me di cuenta de que esa experiencia práctica (de trabajo en proyectos reales) fue indispensable para ampliar mi comprensión de React. Si no tienes la oportunidad de hacerlo en el trabajo, sugiero buscar algo que te apasione y desarrollar una app relacionada con eso. Comencé a crear mi sitio web personal con mi portfolio. Además, la documentación oficial de React Native estaba bien escrita y me resultó muy útil cuando tuve que buscar información específica.

¿Dónde podemos encontrar y seguir tu trabajo?

Tengo una cuenta de Github, pero la mayoría de mis experiencias laborales son de propiedad exclusiva debido a cuestiones de confidencialidad relacionadas con el empleo o son proyectos personales que no son de código abierto. Disfruto usar las redes sociales y tener una buena presencia en Instagram, pero no lo utilizo como una plataforma para debatir sobre el desarrollo. En cambio, es mi forma de escapar del trabajo.


Le agradecemos a Andrea por tomarse el tiempo de participar en esta entrevista. Fue increíble aprender cómo se usa React para mejorar las apps principales, y también el hecho de aprender de todo lo que creamos aquí y contribuir con la comunidad de React. Esperamos que te haya resultado útil esta entrevista y te hayas llevado información sobre cómo y cuándo se usa React en Meta.

Sobre Meet the Developers - Serie React @ Meta

React es uno de los proyectos de código abierto más conocidos. En los últimos años, se lo ha calificado de manera constante como uno de los marcos web "más queridos". En Meta, creemos que React es una biblioteca excelente que permite a los desarrolladores diseñar interfaces de usuario de manera fácil y a gran escala. Usada por millones de desarrolladores en todo el mundo, ya sea en sitios web simples o apps de empresas, React es una biblioteca de código abierto con lugar para todas las personas.

Este blog forma parte de nuestra serie Meet the Developers, en la cual invitamos a los ingenieros y desarrolladores que usan React a diario para que compartan sus experiencias y nos cuenten sobre los increíbles productos que están desarrollando con React aquí, en Meta. Consulta otros blogs de entrevistas en los cuales recibimos a otros ingenieros y escuchamos sus opiniones sobre este tema.

Para obtener más información sobre código abierto de Meta, visita nuestro sitio de código abierto, suscríbete a nuestro canal de YouTube o síguenos en Twitter, Facebook, y LinkedIn.