Descripción
El puesto se centra en el desarrollo y mantenimiento de servicios backend para la plataforma Vision, la solución corporativa para la gestión de servicios urbanos, incluyendo recogida de residuos, limpieza y flotas. La labor principal implica trabajar sobre una arquitectura en entorno JVM, preferiblemente en Scala, aunque también se acepta Java, desplegada en infraestructuras cloud de AWS y orientada a sistemas multi-cliente. El rol es clave en la evolución de la plataforma, participando activamente en la transición desde un entorno monolítico hacia una arquitectura más modular y en la definición de buenas prácticas relacionadas con APIs, gestión de configuración, observabilidad, operabilidad y calidad del código, lo que incluye la migración progresiva de componentes legacy.Las responsabilidades incluyen diseñar, desarrollar y mantener servicios backend, implementar y versionar APIs siguiendo estándares como OpenAPI/REST para garantizar compatibilidad hacia atrás, y participar en la transición arquitectónica con planes de migración de componentes existentes. También se requiere implementar lógica de negocio desacoplada de la capa de persistencia, definir modelos de persistencia adecuados sobre PostgreSQL, y gestionar la configuración de aplicación como dato con feature flags y procesos de promoción trazables. Además, se deben diseñar, implementar y mantener procesos asíncronos como colas, workers y tareas periódicas, asegurar la calidad del código mediante pruebas unitarias y de integración, linters, SonarQube y revisión de código, e implementar capacidades de observabilidad con logging estructurado, métricas y trazabilidad, colaborando en la definición de SLOs y alertas.
El candidato colaborará estrechamente con equipos de arquitectura, frontend, QA, DevOps y seguridad para garantizar integraciones correctas, despliegues fiables y cumplimiento normativo. Se espera que aplique prácticas de desarrollo seguro y contribuya a la operabilidad de los servicios en entornos de producción, participando en la evolución técnica de la plataforma y en la reducción de deuda técnica. Este rol implica trabajar en entornos complejos, tomar decisiones técnicas fundamentadas y mantener un enfoque en la escalabilidad, mantenibilidad y seguridad de las soluciones desarrolladas.