Buscamos un Desarrollador de Software Senior para construir y mantener experiencias móviles y de backend listas para producción. Trabajarás principalmente con React Native, GraphQL y PostgreSQL, siendo responsable de funcionalidades desde el desarrollo inicial hasta el despliegue y las mejoras continuas. Este rol es ideal para alguien que asume la responsabilidad, trabaja de forma independiente y se siente cómodo resolviendo problemas técnicos complejos en toda la pila de aplicaciones.
**Responsabilidades:**
- **Desarrollo Móvil:**
- Construir, mantener y mejorar aplicaciones React Native en producción.
- Ser responsable de funcionalidades desde la definición y el desarrollo hasta el despliegue y la iteración post-lanzamiento.
- Trabajar tanto en aplicaciones iOS como Android.
- **Backend y Datos:**
- Diseñar y mantener esquemas de PostgreSQL.
- Escribir consultas eficientes y optimizar el rendimiento de la base de datos.
- Gestionar indexación, migraciones e integridad de datos.
- Construir y mantener APIs GraphQL, incluyendo esquemas y resolvers.
- Trabajar con Apollo o herramientas similares de GraphQL.
- **Calidad y Rendimiento del Código:**
- Participar activamente en revisiones de código y mantener altos estándares de legibilidad y cobertura de pruebas.
- Depurar problemas en toda la pila, desde el rendimiento de React Native hasta las consultas de PostgreSQL.
- Identificar problemas técnicos de forma proactiva y llevarlos a resolución.
- **Colaboración y Responsabilidad:**
- Trabajar en estrecha colaboración con compañeros de producto, diseño e ingeniería para traducir requisitos en soluciones confiables.
- Comunicar el progreso, los bloqueos y las decisiones técnicas con claridad en un entorno asincrónico.
- Contribuir a discusiones arquitectónicas y ayudar a identificar compensaciones desde el principio.
**Requisitos:**
- Más de 5 años de experiencia profesional en desarrollo de software, incluyendo experiencia sustancial en producción.
- Sólida experiencia práctica con React Native.
- Experiencia publicando y manteniendo aplicaciones tanto en iOS como en Android.
- Sólida experiencia con PostgreSQL, incluyendo diseño de esquemas, optimización de consultas, indexación y migraciones.
- Sólida experiencia construyendo y consumiendo APIs GraphQL.
- Experiencia con esquemas GraphQL, resolvers y herramientas como Apollo o similares.
- Fuertes habilidades de depuración y resolución de problemas en toda la pila de aplicaciones.
- Capacidad para trabajar de forma independiente en problemas técnicos ambiguos.
- Sólido dominio del inglés (escrito y hablado) para la colaboración diaria con un equipo distribuido.
**Qué te hace un buen candidato:**
- Asumes la responsabilidad de las funcionalidades de principio a fin y te preocupas por su rendimiento en producción.
- Identificas problemas de forma proactiva en lugar de esperar a que alguien los señale.
- Te comunicas con claridad y proporcionas suficiente contexto para compañeros de equipo que trabajan en diferentes zonas horarias.
- Te sientes cómodo discutiendo compensaciones técnicas y desafiando ideas de forma constructiva.
- Te preocupas por el código limpio y mantenible y por estándares de ingeniería consistentes.
- Abordas tanto las correcciones pequeñas como las grandes decisiones arquitectónicas con atención a la calidad.
**El éxito se verá así:**
- Las funcionalidades se entregan de forma confiable desde el desarrollo hasta la producción.
- Las aplicaciones React Native se mantienen estables, performantes y mantenibles en iOS y Android.
- Las APIs y las consultas de PostgreSQL son eficientes y están bien estructuradas.
- Los problemas técnicos se identifican y resuelven con mínima idas y vueltas.
- Las revisiones de código mejoran la calidad y la mantenibilidad general.
- La comunicación se mantiene clara y proactiva en todo el equipo distribuido.
**Día Típico:**
Pasarás la mayor parte del tiempo escribiendo y revisando código tanto en el frontend React Native como en el backend GraphQL/PostgreSQL. Trabajarás en tickets, contribuirás a discusiones técnicas y arquitectónicas, colaborarás de forma asincrónica con compañeros de producto e ingeniería, y ayudarás a lanzar funcionalidades a usuarios reales. Dado que el equipo trabaja en diferentes zonas horarias, la comunicación escrita sólida es una parte importante del rol. Tus actualizaciones, documentación, decisiones técnicas y revisiones de código serán una parte importante de cómo el equipo trabaja en conjunto.
**Proceso de Entrevista:**
- Solicitud inicial
- Entrevista de video unidireccional Spark Hire
- Entrevista con el cliente
- Oferta