Ingeniero de Software en Mercado Libre: Rol y Funciones Clave

Ser un ingeniero de software implica más que solo codificar. Para desempeñarse con excelencia y utilizar el tiempo de manera eficiente, es crucial trabajar sobre pilares fundamentales que no solo garantizan comodidad como desarrollador, sino que también promueven el crecimiento profesional continuo. En un entorno dinámico como el de Mercado Libre, estos principios son la base para innovar y generar impacto.

El tiempo es oro, por lo que es esencial aprender a elegir, con conciencia, en qué ocupar el tiempo. Lo ideal es aprender a usar herramientas que sirvan en el proyecto actual, en el siguiente y en futuros trabajos. A continuación, se detallan algunos de los aspectos más importantes en los que un ingeniero de software debe enfocarse.

Pillares Fundamentales del Ingeniero de Software en Mercado Libre

Aprender y Aplicar Metodologías y Patrones

Una forma efectiva de adquirir herramientas que sean útiles tanto en el presente como en el futuro es aprender metodologías de desarrollo y patrones de diseño. Esta es una excelente manera de aprovechar el tiempo de manera eficiente. Estos conocimientos se pueden aplicar en cualquier tecnología, lenguaje o framework de desarrollo, facilitando la creación de código que sea fácil de entender, mantener y flexible a cambios.

Dado que constantemente surgen nuevas herramientas para solucionar problemas conocidos, el manejo de los conceptos de fondo es lo que realmente marca una diferencia y otorga independencia del framework de moda. Esto permite al ingeniero de software adaptarse rápidamente a nuevas tendencias sin depender de tecnologías específicas.

infografía sobre metodologías ágiles y patrones de diseño de software

Conocer la Plataforma y su Comunidad

Es fundamental conocer los "do’s" y "don’ts" de la plataforma (como Android, iOS, Web, Desktop, TV o Automotive) en la que se desea trabajar. Existen equipos enormes dedicados a pensar y repensar la usabilidad, el rendimiento y la escalabilidad de cada plataforma para ofrecer la mejor experiencia posible al usuario, entre muchos otros aspectos. Aprovechar todo lo que estos equipos han aprendido es una ventaja.

Estos equipos están en constante evolución y buscan que los desarrolladores adopten sus productos, convirtiéndolos en una parte fundamental de sus propios productos. Para lograrlo, dedican mucho esfuerzo en generar contenido, como documentación, videos, workshops y conferencias, para que los desarrolladores puedan ser autodidactas y tengan todo lo necesario para aprender.

Además de ser autodidactas, existen comunidades enfocadas tanto en tecnologías específicas (como Android Devs Buenos Aires) como en metodologías (como Clean Code Buenos Aires). En todas ellas se pueden encontrar compañeros y ayuda de todo tipo. En Mercado Libre, incluso, existen distintas comunidades por plataforma que ayudan a competir en equipo para ganar. Esto permite aprovechar los aprendizajes de otras personas para no repetir sus errores.

Y lo que es aún mejor, se tiene la oportunidad de devolver a la comunidad lo que esta ofrece de diversas formas:

  • Ayudando a alguien en Stack Overflow, o simplemente dando un +1 a una pregunta.
  • Cargando issues o colaborando activamente en repositorios open source.
  • O simplemente dando "like" en algún evento online al que se haya asistido.
ilustración de comunidad de desarrolladores global y colaboración en línea

Forjar una Opinión Propia

Más allá de que siempre es saludable tener una opinión propia, la tecnología evoluciona muy rápido, y las librerías "entran" y "salen" del mercado constantemente. Esto provoca que muchas herramientas se pongan de moda cuando aún se encuentran en una etapa temprana de madurez. Por ejemplo, Airbnb adoptó React Native para sus aplicaciones de Android/iOS y después de 2 años decidió dejar de usarlo (años antes, Dropbox tuvo una experiencia similar).

Al adoptar un framework y una estrategia nuevas, estos equipos vivieron una gran experiencia donde aprovecharon las ventajas y, a pesar del costo, pudieron aprender de las desventajas. Una manera de crear una opinión propia es desarrollando proyectos paralelos (sandbox side projects). Por ejemplo, aunque el Play Store esté lleno de aplicaciones de "Lista de Tareas" (ToDo List apps), está bien hacer una más.

Lo valioso de la experiencia es lo que se pudo poner en práctica al pensar, diseñar, desarrollar, llevar la aplicación a la tienda y ver cómo funciona en el mundo real, no la aplicación en sí. Esto permite aplicar las metodologías y frameworks aprendidos en casos de uso más reales, lo que lleva a encontrar problemas y superar dificultades al aplicar y combinar distintos patrones en una misma solución. Es una experiencia invaluable.

imagen conceptual de un desarrollador probando diferentes herramientas y frameworks

La Experiencia del Usuario como Prioridad

¿Qué sentirías si una de las aplicaciones que usas ocasionalmente fuera la que más batería consume en tu celular, incluso cuando no la estás utilizando? Siempre se debe velar por la experiencia completa de los usuarios. Por ejemplo, al desarrollar aplicaciones para Android/iOS, hay que monitorear cuánto consume la batería. Un usuario desinstalaría una aplicación que gasta mucha batería, y es una perspectiva que el ingeniero debe adoptar.

En Mercado Libre, desde el rol de desarrolladores de software, se debe pensar más allá de la tarea específica que se está realizando y considerar el impacto que esta tiene en el producto final y en el ecosistema completo. Es fundamental pensar en la experiencia que se desea que los usuarios tengan y las sensaciones que experimenten al usar el producto.

ilustracion de interfaz de usuario amigable y persona interactuando con tecnologia

Entender el Contexto

Cuando se pregunta: "¿Cuánto tiempo tardarías en hacer una ToDo List app?", "Depende" es probablemente la respuesta más válida en el desarrollo de software. Las consideraciones pueden variar: ¿se usará como excusa para aprender algo nuevo? ¿Es el principal proyecto de la compañía? ¿Solo se necesita una prueba de concepto? ¿Se quiere hacer una segunda ToDo List app en otro lenguaje para comparar experiencias?

El lenguaje, la tecnología y los frameworks son importantes, y está bien dedicar parte del tiempo a aprenderlos, ya que, junto con los patrones y las personas, forman la base de todos los proyectos. Sin embargo, lo más importante son las razones detrás de por qué se elige usar una herramienta u otra, las razones detrás de cada decisión que se toma.

El resultado puede ser el esperado o no, pero lo crucial es estar seguro de haber evaluado las variables correctas antes de tomar la decisión. Y si el resultado no fue el esperado, sin duda se habrá tenido la oportunidad de aprender mucho de esa experiencia.

El Poder de la Comunicación

Si bien se han mencionado varios pilares, la piedra angular de todos ellos es la comunicación. Las personas son una parte crucial de cualquier proyecto, y los problemas más grandes que pueden surgir entre ellas se deben a la falta de una comunicación efectiva. Acordar objetivos de equipo y personales, tener responsabilidades claras, una relación transparente y, principalmente, entender que todos -incluso otros equipos- persiguen el mismo objetivo, es tan o más importante que las habilidades técnicas.

Es importante reflexionar sobre los objetivos de equipo y personales, y cómo la comunicación efectiva es clave para alcanzarlos, entendiendo que el camino de crecimiento profesional se nutre de un diálogo constante y constructivo.

esquema de comunicación efectiva entre equipos de desarrollo

La importancia de la comunicación en el equipo interdisciplinar

En Síntesis: Principios Clave para el Ingeniero de Software

Para resumir la filosofía de un ingeniero de software exitoso, especialmente en un entorno como Mercado Libre:

  • Usa el tiempo para aprender cosas que te sigan siendo útiles a largo plazo.
  • Interiorízate en la plataforma y sus directrices (guidelines), y sé parte activa de la comunidad de software.
  • Forja tu propia opinión. Prueba, experimenta y aprende algo nuevo cada día.
  • Pregúntate siempre: ¿Por qué haces lo que haces? ¡Para mejorar la vida de tus usuarios!
  • Todo es un trade-off (intercambio). Asegúrate de poner en la balanza las variables adecuadas antes de tomar decisiones.
  • Los proyectos los hacen las personas, y tus palabras tienen un poder ENORME. La comunicación es fundamental.

Oportunidades para Ingenieros de Software en Mercado Libre

No se trata de ofrecer un listado de frameworks para investigar, ya que cualquier lista sería sesgada por los objetivos actuales de un equipo y quedaría desactualizada rápidamente. Cada tecnología, aplicación o compañía es un mundo en sí mismo, y la clave es la adaptabilidad y el aprendizaje continuo.

En Mercado Libre, el equipo de Tecnología comparte constantemente información en su blog, donde se puede aprender más sobre lo que hacen y, fundamentalmente, cómo lo hacen. La compañía está en constante crecimiento, creando nuevos equipos, expandiendo horizontes y sumando nuevos desafíos.

Si tienes al menos 2 años de experiencia desarrollando Android, iOS, Web o Backend y deseas ser parte de un equipo de aproximadamente 14000 personas con la misión de democratizar el comercio, el dinero y los pagos en LATAM, Mercado Libre ofrece diversas posiciones abiertas. Puedes encontrar más detalles en su sitio de empleos.

tags: #feto #ingeniero #mercadolibre