Descripción
**ARQUIMEA**, somos una **empresa tecnológica** que opera a nivel global y ofrece soluciones y productos innovadores en sectores de alta exigencia.
Nuestras áreas de actividad son **Aeroespacial, Defensa y Seguridad, Gran Ciencia, Biotecnología y Fintech.**
**Función principal y alcance:**
Buscamos un **Ingeniero de Software Robótico** con amplia experiencia práctica en el desarrollo de software para sistemas robóticos, plataformas mecatrónicas complejas o sistemas ciberfísicos. El candidato seleccionado se incorporará al Equipo de Plataforma Robótica, trabajando en proyectos multidisciplinares de I+D y orientados al producto que involucran plataformas robóticas altamente dinámicas, tecnologías avanzadas de actuación, simulación, control, sensores y herramientas de software operativas en entornos técnicamente exigentes.
Este puesto se centra en desarrollar, integrar, probar y mantener los fundamentos del ecosistema de software que permiten diseñar, simular, construir, controlar, validar y utilizar eficazmente las plataformas robóticas. El candidato trabajará en software de plataforma, integración de sistemas, simulación, control de alto nivel, pruebas, herramientas para desarrolladores e interfaces de software orientadas al usuario, contribuyendo tanto a plataformas internas de I+D como al ecosistema de software utilizado por equipos internos, socios y clientes.
El Equipo de Plataforma Robótica actúa como usuario interno y socio de validación de las tecnologías de actuadores, motores, software embebido y control de ARQUIMEA. Por tanto, este puesto implica un ciclo de retroalimentación estrecho entre el desarrollo real de plataformas robóticas y la evolución del ecosistema subyacente de actuación, con el objetivo de hacer que estas tecnologías sean robustas, utilizables y valiosas para los especialistas en robótica que trabajan en sistemas reales.
No se espera que el candidato sea un experto profundo en todas las áreas de la robótica. Buscamos un perfil amplio de software robótico con sólidos fundamentos de ingeniería, intuición práctica de sistemas y uno o varios ejes técnicos más especializados, tales como software de plataforma, control de alto nivel, simulación, pruebas, integración de percepción, herramientas de desarrollo o desarrollo de software orientado a lanzamientos.
En función de las necesidades del proyecto, el puesto puede implicar trabajo en control de robots de alto nivel o generación de comportamiento, incluidos control clásico, control basado en modelos, MPC, aprendizaje por refuerzo, locomoción o manipulación, así como la integración de capacidades de percepción, localización, cartografía, navegación, sensores o autonomía desarrolladas por equipos de investigación especializados.
**Funciones principales:**
* Desarrollar y mantener software para plataformas robóticas, incluidas interfaces de control, puesta en marcha de la plataforma, abstracción de hardware, integración de sistemas, herramientas de prueba y flujos de trabajo de validación.
* Contribuir a componentes de software reutilizables para sistemas robóticos altamente dinámicos y aplicaciones de interacción física humano-robot.
* Apoyar el desarrollo, la integración y la validación de módulos de control o generación de comportamiento de robots de alto nivel, incluidos locomoción, manipulación, control basado en modelos, MPC, aprendizaje por refuerzo o enfoques de control clásico cuando proceda.
* Integrar subsistemas robóticos a través de actuadores, dispositivos embebidos, sensores, comunicaciones, herramientas de simulación, software de control y aplicaciones de nivel superior.
* Trabajar con sistemas robóticos reales y virtuales, utilizando simulación y flujos de trabajo basados en gemelos digitales para acelerar el desarrollo, depuración, pruebas y validación.
* Contribuir a pruebas a nivel de plataforma, validación experimental, registro de datos, diagnóstico, resolución de problemas y evaluación del rendimiento en hardware real.
* Desarrollar y mantener paquetes ROS 2, archivos de lanzamiento, archivos de configuración, interfaces y capas de integración cuando corresponda.
* Apoyar interfaces de software, API, ejemplos, tutoriales y herramientas que faciliten el uso del ecosistema robótico por parte de equipos internos, colaboradores de investigación, socios y clientes.
* Colaborar con equipos de percepción, localización, cartografía, navegación o autonomía al integrar resultados de investigación en pilas de software de plataformas robóticas.
* Aplicar buenas prácticas de ingeniería de software, incluidos flujos de trabajo limpios con Git, revisiones de código, diseño modular, pruebas automatizadas, documentación y entornos de desarrollo reproducibles.
* Apoyar flujos de trabajo CI/CD, validación automatizada, empaquetado, preparación de lanzamientos y mantenimiento de herramientas e interfaces de software.
* Identificar riesgos de integración, diagnosticar fallos complejos a nivel de sistema y proponer acciones correctivas prácticas en los ámbitos de software, electrónica, control, mecánica y pruebas.
* Proporcionar retroalimentación a los equipos de actuadores, motores, software embebido y control basada en el uso real de la plataforma, necesidades orientadas al cliente y restricciones de los sistemas robóticos.
* Colaborar en la planificación técnica multidisciplinar con equipos de software, control, electrónica, mecánica, sistemas, pruebas y producto.
**Requisitos del candidato:**
* Titulación universitaria en Informática, Ingeniería del Software, Robótica, Ingeniería de Telecomunicaciones, Ingeniería Informática, Ingeniería Industrial o similar.
* Experiencia práctica en el desarrollo de software para sistemas robóticos, plataformas mecatrónicas, sistemas embebidos, sistemas de automatización u otros sistemas ciberfísicos complejos.
* Competencias sólidas en programación en C++ y Python, con capacidad para escribir software mantenible, testeable y de calidad productiva.
* Experiencia con ROS/ROS 2 o marcos de middleware robótico similares.
* Amplia experiencia diaria con flujos de trabajo de desarrollo basados en Git, incluidas ramificaciones, solicitudes de extracción (pull requests), revisiones de código, seguimiento de incidencias y cambios trazables.
* Conocimiento general de los sistemas robóticos en los ámbitos de actuación, control, sensores, simulación e integración de software, con profundidad práctica en al menos un área técnica relevante.
* Capacidad para trabajar cerca de problemas de control o generación de comportamiento de robots, traduciendo las necesidades de la plataforma en interfaces de software útiles, pruebas y flujos de trabajo de validación.
* Conocimiento sólido de los principios de ingeniería de software, diseño modular, interfaces, pruebas, documentación y mantenibilidad.
* Experiencia integrando software con hardware real, incluida la depuración de problemas de comunicación, sincronización, configuración, despliegue o a nivel de sistema.
* Experiencia trabajando en entornos de desarrollo basados en Linux y con herramientas comunes de desarrollo robótico.
* Experiencia práctica con pruebas automatizadas, flujos de trabajo CI/CD, empaquetado de software o prácticas de desarrollo orientadas a lanzamientos.
* Capacidad para trabajar con requisitos cambiantes, información incompleta y altos niveles de incertidumbre técnica, manteniendo el software utilizable y mantenible.
* Capacidad para colaborar eficazmente entre las disciplinas de software, control, electrónica, mecánica, sistemas y pruebas.
* Inglés fluido, tanto escrito como hablado.
* Disposición para trasladarse a las Islas Canarias o a Madrid (Torrejón).
* Entusiasmo por aprender nuevas tecnologías y contribuir más allá de un rol estrictamente definido.
**Cualquier experiencia relevante relacionada con lo siguiente será valorada positivamente:**
* Experiencia en control de robots de alto nivel, generación de comportamiento o planificación, como control clásico, MPC, aprendizaje por refuerzo, control corporal completo, locomoción o manipulación.
* Experiencia con robots bípedos, plataformas caminantes, robots humanoides, exoesqueletos u otros sistemas robóticos altamente dinámicos.
* Experiencia con aplicaciones robóticas que impliquen interacción física humano-robot, control de fuerza, control de impedancia o interacción segura con humanos.
* Conocimientos sobre localización, cartografía, SLAM, odometría visual-inercial, navegación, percepción o fusión de sensores en sistemas robóticos.
* Experiencia integrando cámaras, sensores RGB-D, cámaras de eventos, IMU u otros sistemas de sensores en plataformas robóticas.
* Experiencia con ros2_control, interfaces de hardware robótico, control de actuadores, telemetría, diagnóstico o protocolos de comunicación de bajo nivel.
* Familiaridad con simulación, gemelos digitales, desarrollo basado en modelos, validación simulación-a-real o identificación de sistemas robóticos.
* Experiencia con restricciones de software en tiempo real o casi en tiempo real.
* Familiaridad con Pixi o Docker, despliegues contenerizados, entornos de desarrollo reproducibles o prácticas DevOps.
* Experiencia creando documentación técnica, tutoriales, ejemplos, cuadernos (notebooks) u otras herramientas orientadas a desarrolladores para usuarios de robótica.
* Antecedentes en investigación aplicada, desarrollo de productos en fases iniciales, robótica industrial, aeroespacial, defensa u otros entornos técnicamente exigentes.
Este puesto puede desempeñarse bien en **Avenida Premios Nobel 51, Torrejón de Ardoz (Madrid)**, o bien en el **Edificio Nanotec, San Cristóbal de La Laguna (Tenerife).**
Buscamos personas **curiosas, creativas, tenaces** y **colaboradoras**, deseosas de hacer las cosas y sin miedo a enfrentar retos para contribuir a mejorar la sociedad en la que vivimos.
#### **Piensa en grande, haz el trabajo y disfruta la vida**
*En ARQUIMEA valoramos la diversidad y la inclusión. No discriminamos por raza, color, religión, género, orientación sexual, identidad de género, origen nacional, edad, discapacidad u otros factores protegidos por la ley. Todos los candidatos serán considerados de forma equitativa según sus competencias y experiencia*