Saltar al contenido

Agile Robots SE

Ingeniero/a Senior de Rendimiento en C++ (todos los géneros)

C++
Traducción automática. Consulta el original.

Sobre el puesto

En Agile Robots, creamos potentes marcos de software para orquestar sistemas robóticos complejos y resolver tareas desafiantes. Las soluciones se venden a diversos clientes internacionales para permitirles controlar sus celdas de trabajo robóticas. La integración fluida y el despliegue escalable son objetivos clave.

AgileCore está diseñado para ser una plataforma escalable que soporte múltiples proyectos en paralelo. Eso solo funciona si la plataforma subyacente escala con ellos: si se mantiene rápida, segura para subprocesos (thread-safe) y fácil de diagnosticar a medida que se multiplican los proyectos, los dispositivos y las condiciones operativas.

Buscamos un/a Ingeniero/a Senior de Rendimiento en C++ para unirse a nuestro equipo central de AgileCore Runtime. Este es un puesto de perfil en T dentro de un equipo senior pequeño: primero eres un miembro pleno del equipo central, contribuyendo al Runtime, revisando las contribuciones de los equipos que construyen sobre nuestra plataforma y compartiendo nuestras tareas de soporte y lanzamiento; y, dentro del equipo, te haces cargo de la práctica de rendimiento y estabilidad como tu especialización.

En cuanto a la especialización, impulsarás el rendimiento del núcleo del Runtime (el Blackboard, el Motor de Comportamiento y las rutas de ejecución subyacentes), harás que el sistema sea demostrablemente seguro para subprocesos bajo carga y lograrás que los fallos en el campo sean rápidos de diagnosticar. Eres responsable de la práctica: la metodología, las herramientas, los benchmarks, las auditorías y la formación. Trabajarás mano a mano con el arquitecto de la plataforma, quien posee los presupuestos de rendimiento y los contratos de interfaz de ruta crítica a nivel de arquitectura; tú convertirás esos presupuestos en una realidad medida y aplicada, y los moldearás con tus hallazgos. Establecerás el estándar de rendimiento, concurrencia y resolución de problemas, y elevarás la capacidad del equipo para cumplirlo sin ralentizar el desarrollo de funciones. Este es un puesto orientado a la entrega, no a la investigación: el éxito se mide en mejoras fusionadas, escalaciones de campo cerradas y puertas de regresión en verde, no en tablas de clasificación de microbenchmarks. Optimizamos según el presupuesto que necesita el producto, no hasta cero.

Por qué este puesto

  1. Infraestructura de rendimiento desde cero: las suites de benchmarks, los presupuestos y las puertas de regresión de CI son tuyos para construir, no para heredar.
  1. Un problema físico y medible: tu perfilado y tus benchmarks se ejecutan contra robots reales en nuestros equipos de hardware-in-the-loop, donde los plugins de terceros se encuentran con bucles de control de proveedores de 1 kHz.
  1. Un equipo central senior pequeño con verdadera propiedad: tu trabajo se convierte en el estándar sobre el que se construye toda la plataforma.

Tus responsabilidades

  1. Responsabilizarte de la latencia, el rendimiento y el jitter de los componentes principales del Runtime (el Blackboard, nuestro plano de datos tipado y suscribible en proceso, y el Motor de Comportamiento, árbol de ejecución de habilidades, manejo de disparadores) y llevar las mejoras de principio a fin: desde el gráfico de llama (flame graph) hasta el cambio fusionado y una puerta de regresión que lo mantenga corregido.
  1. Construir la base de tiempo real para la plataforma: políticas y prioridades de programación, afinidad de CPU, asignación y disciplina de fallos de página en rutas críticas, y estructuras sin bloqueos (lock-free) donde valga la pena.
  1. Ser un miembro pleno del equipo central de Runtime: desarrollar componentes principales, revisar contribuciones de los equipos de funciones que construyen sobre la plataforma y participar en las rotaciones de soporte y lanzamiento del equipo.
  1. Hacer que el rendimiento sea medible y obligatorio: suites de benchmarks, presupuestos por subsistema y puertas de regresión en CI en lugar de sorpresas en el sitio del cliente.
  1. Ser la autoridad práctica en seguridad de subprocesos: modelos de propiedad, jerarquías de bloqueo, razonamiento sobre el orden de memoria y eliminación de clases enteras de condiciones de carrera mediante sanitizers, pruebas de estrés y de carga (soak testing).
  1. Asegurar que el producto se mantenga en todo el dominio operativo en el que se utiliza: cada dispositivo soportado, perfil de carga y topología de despliegue, no solo las configuraciones que aparecen en una demostración.
  1. Mejorar la capacidad de depuración para que el despliegue en fábrica y el soporte escalen: rastreo, registro estructurado, métricas de tiempo de ejecución, manejo de bloqueos y volcados de memoria (core-dumps), símbolos para binarios de lanzamiento eliminados.
  1. Llevar el rendimiento y la estabilidad al SDK de Plugins y su C ABI, donde los plugins de terceros se encuentran con bucles de control de proveedores que se ejecutan a 1 kHz.
  1. Investigar problemas complejos a través de los límites de software, SO, red y hardware, incluyendo las escalaciones más difíciles del campo.
  1. Colaborar con el arquitecto de la plataforma en el diseño crítico para el rendimiento: proponer e implementar mejoras dentro de los presupuestos de rendimiento y los contratos de interfaz de ruta crítica de la plataforma, e incorporar las mediciones en cómo se establecen esos presupuestos.
  1. Mentorear a ingenieros en rendimiento, concurrencia y resolución de problemas a través de revisiones de código, sesiones profundas, discusiones de diseño y orientación técnica, sin generar sobrecarga.

Habilidades esenciales

  1. 7+ años de experiencia profesional en ingeniería de software, con un sólido desarrollo práctico en C++.
  1. Residente en Múnich o dispuesto a reubicarse; apoyamos la reubicación y el patrocinio de visados.
  1. Sólidas habilidades de comunicación escrita y verbal en inglés.
  1. Sólida experiencia con C++ moderno, idealmente C++17 o C++20, incluyendo plantillas y diseño en tiempo de compilación.
  1. Ingeniería de rendimiento probada: perfilado antes de optimizar, lectura de gráficos de llama y contadores de hardware, y razonamiento sobre la latencia de cola y el jitter en lugar de promedios.
  1. Un historial de trabajo de rendimiento entregado: mejoras que llevaste desde la medición hasta el código fusionado y la aplicación sostenida en CI, no benchmarks aislados.
  1. Sólida experiencia con programación multihilo y concurrente: modelos de memoria, atómicos, patrones sin bloqueos y el criterio para saber cuándo un mutex simple es la respuesta correcta.
  1. Se prefiere encarecidamente la exposición a sistemas de tiempo real o casi tiempo real en Linux: políticas de programación, preempción, inversión de prioridad, afinidad de CPU y las fuentes habituales de jitter. La experiencia previa profunda en RT es una ventaja, no un requisito excluyente; los fundamentos del rendimiento importan más.
  1. Sólidas habilidades de depuración utilizando GDB, sanitizers (ASan/TSan/UBSan), Valgrind, perf, strace, ltrace, tcpdump y volcados de memoria (core dumps).
  1. Sólida comprensión de los aspectos internos de Linux: procesos, hilos, IPC, señales, programación, gestión de memoria, almacenamiento en búfer y enlace dinámico.
  1. Experiencia con CMake y cadenas de herramientas de compilación (GCC, Clang).
  1. Experiencia escribiendo pruebas automatizadas, incluyendo pruebas unitarias, pruebas de integración y estrategias de prueba relacionadas con el hardware, así como benchmarks y pruebas de estrés/carga.
  1. Una mentalidad senior pragmática y orientada al equipo: optimizas las cosas que importan para el producto y te detienes cuando se cumple el presupuesto; compartes revisiones, soporte y tareas de lanzamiento en un equipo senior pequeño; haces de tu especialidad una capacidad de todo el equipo en lugar de un silo, y preferirías entregar una mejora del 30% esta semana que discutir una mejora del 3% durante un mes.

Habilidades beneficiosas

  1. Aspectos internos de bases de datos: estructuras de almacenamiento e índice, control de concurrencia, MVCC, diseño de transacciones y caché; nuestro Blackboard es esencialmente un almacén tipado en proceso.
  1. Contribuciones a software de alto rendimiento o de sistemas: asignadores, runtimes, motores, bases de datos, pilas de red, kernels.
  1. Antecedentes en baja latencia: sistemas de trading, audio o video en tiempo real, telecomunicaciones o control de movimiento embebido.
  1. Amplia metaprogramación de plantillas y computación en tiempo de compilación.
  1. Conocimiento de Linux en tiempo real, programación del kernel, manejo de IRQ, límites entre kernel/espacio de usuario y medición de latencia con cyclictest, ftrace o eBPF.
  1. Diseño de ABI de C++ y API de plugin/biblioteca compartida que se mantenga estable a través de compiladores y versiones de cadenas de herramientas.
  1. Experiencia práctica con perfiladores de instrumentación como Tracy (lo usamos), así como perf, VTune o similares.
  1. Aspectos internos de Windows y la cadena de herramientas MSVC; partes de la plataforma también se distribuyen en Windows.
  1. Fundamentos de redes: TCP/IP, UDP, sockets, latencia, almacenamiento en búfer y flujo de paquetes.
  1. Experiencia en el diseño de arquitecturas mantenibles (propiedad clara, separación de responsabilidades, capacidad de prueba) en sistemas limitados por el tiempo, no solo por las funciones.

Qué ofrecemos

  • Una empresa de alta tecnología dinámica, combinada con solidez financiera e inversores de clase mundial.
  • Únete a un equipo interdisciplinario e internacional con más de 60 nacionalidades en un entorno de trabajo colaborativo.
  • Muchas oportunidades de desarrollo a medida que seguimos creciendo.
  • Tareas desafiantes y proyectos impactantes junto a expertos que permiten el crecimiento profesional y personal.
  • Programa de beneficios corporativos que cubre salud, movilidad y aprendizaje por 100€ netos al mes.
  • Instalaciones de oficina modernas con una terraza en la azotea con vistas a Múnich, bebidas y frutas gratuitas, y eventos regulares de la empresa que contribuyen a un buen entorno de trabajo.

Sobre nosotros

Agile Robots SE es una empresa internacional de alta tecnología con sede en Múnich, Alemania, con un centro de producción en Kaufbeuren y más de 3500 empleados en todo el mundo. Nuestra misión es cerrar la brecha entre la inteligencia artificial y la robótica mediante el desarrollo de sistemas que combinan tecnología de detección de fuerza-momento de última generación y tecnología de procesamiento de imágenes líder en el mundo. Esta combinación única de tecnologías nos permite ofrecer soluciones robóticas fáciles de usar y asequibles que permiten un ensamblaje de precisión inteligente.

Esto es posible gracias a nuestros empleados, que sacan lo mejor de sí mismos cada día con creatividad y entusiasmo. ¡Forma parte de este equipo y da forma al futuro de la robótica con nosotros!

Estamos orgullosos de nuestra diversidad y agradecemos tu solicitud independientemente de tu género e identidad sexual, nacionalidad, etnia, religión, edad o discapacidad.

Más oportunidades con un solo perfil

¿Quieres optar a más puestos sin repetir todo el proceso? Crea tu perfil para que te encuentren las empresas que usan Nort.

Crear mi perfil

El equipo de NortJobs mantiene Vagas Dev de forma gratuita.

Tu próximo empleopuede estar en NortJobs.

Vagas Dev

Empleos para desarrolladores y programadores. Brasil en primer lugar. Tu próxima oportunidad.

NortJobs · patrocinadorInstagramLinkedInTwitter
LegalSobre el proyectoPrivacidadVagas Dev © 2026