ESH StB-Examensvorbereitung GmbH
Agile Robots SE
Engenheiro de Performance Sênior em C++ (todos os gêneros)
Sobre a vaga
Na Agile Robots, construímos frameworks de software poderosos para orquestrar sistemas robóticos complexos e resolver tarefas desafiadoras. As soluções são vendidas para diversos clientes internacionais para permitir que controlem suas células de trabalho robóticas. Integração fluida e implantação escalável são objetivos fundamentais.
O AgileCore foi projetado para ser uma plataforma escalável que suporta múltiplos projetos em paralelo. Isso só funciona se a plataforma subjacente escalar junto — se ela permanecer rápida, thread-safe e diagnosticável à medida que projetos, dispositivos e condições operacionais se multiplicam.
Estamos buscando um Engenheiro de Performance Sênior em C++ para se juntar à nossa equipe principal do AgileCore Runtime. Esta é uma função em formato T em uma pequena equipe sênior: você é um membro pleno da equipe principal primeiro — contribuindo para o Runtime, revisando contribuições das equipes que constroem sobre nossa plataforma e compartilhando nossas tarefas de suporte e lançamento — e, dentro da equipe, você assume a prática de performance e estabilidade como sua especialização.
No lado da especialização, você impulsionará a performance do núcleo do Runtime — o Blackboard, o Behavior Engine e os caminhos de execução abaixo deles —, tornará o sistema comprovadamente thread-safe sob carga e fará com que falhas em campo sejam rápidas de diagnosticar. Você é o dono da prática: a metodologia, as ferramentas, os benchmarks, as auditorias e a educação. Você trabalha lado a lado com o arquiteto da plataforma, que detém os orçamentos de performance e os contratos de interface de caminho crítico no nível da arquitetura — você transforma esses orçamentos em uma realidade medida e aplicada, moldando-os com suas descobertas. Você define o padrão para performance, concorrência e solução de problemas, e aumenta a capacidade da equipe de alcançá-lo sem desacelerar o desenvolvimento de funcionalidades. Esta é uma função de entrega, não de pesquisa: o sucesso é medido em melhorias mescladas, escalações de campo encerradas e gates de regressão verdes — não em tabelas de classificação de microbenchmarks. Otimizamos para o orçamento que o produto precisa, não para zero.
Por que esta vaga
- Infraestrutura de performance do zero: as suítes de benchmark, orçamentos e gates de regressão de CI são seus para construir, não para herdar
- Um problema físico e mensurável: seu profiling e seus benchmarks rodam contra robôs reais em nossos rigs de hardware-in-the-loop — onde plugins de terceiros encontram loops de controle de fornecedores de 1 kHz
- Uma pequena equipe principal sênior com propriedade real: seu trabalho se torna o padrão sobre o qual toda a plataforma é construída
Suas Responsabilidades
- Assumir a latência, throughput e jitter dos componentes principais do Runtime — o Blackboard (nosso plano de dados em processo, tipado e assinável) e o Behavior Engine (árvore de execução de habilidades, tratamento de gatilhos) — e conduzir melhorias de ponta a ponta: do flame graph à mudança mesclada e a um gate de regressão que a mantém corrigida
- Construir a base de tempo real para a plataforma: políticas e prioridades de agendamento, afinidade de CPU, alocação e disciplina de page-fault em caminhos críticos, e estruturas lock-free onde elas valem a pena
- Ser um membro pleno da equipe principal do Runtime: desenvolver componentes principais, revisar contribuições de equipes de funcionalidades que constroem sobre a plataforma e participar das rotações de suporte e lançamento da equipe
- Tornar a performance mensurável e aplicada — suítes de benchmark, orçamentos por subsistema e gates de regressão em CI em vez de surpresas no site do cliente
- Ser a autoridade prática em thread safety: modelos de propriedade, hierarquias de lock, raciocínio de ordem de memória e eliminação de classes inteiras de condições de corrida por meio de sanitizers, testes de estresse e soak testing
- Garantir que o produto se sustente em todo o domínio operacional em que é usado — cada dispositivo suportado, perfil de carga e topologia de implantação, não apenas as configurações que aparecem em uma demonstração
- Melhorar a capacidade de depuração para que a implantação na fábrica e o suporte escalem: tracing, logs estruturados, métricas de runtime, tratamento de crash e core-dump, símbolos para binários de release stripados
- Levar performance e estabilidade para o SDK de Plugin e sua C ABI, onde plugins de terceiros encontram loops de controle de fornecedores rodando a 1 kHz
- Investigar problemas complexos através de fronteiras de software, SO, rede e hardware — incluindo as escalações mais difíceis vindas de campo
- Parceirar com o arquiteto da plataforma em design crítico de performance: propor e implementar melhorias dentro dos orçamentos de performance e contratos de interface de caminho crítico da plataforma, e retroalimentar as medições em como esses orçamentos são definidos
- Mentorar engenheiros em performance, concorrência e solução de problemas por meio de revisões de código, sessões de aprofundamento, discussões de design e orientação técnica — sem gerar sobrecarga
Habilidades Essenciais
- 7+ anos de experiência profissional em engenharia de software, com forte desenvolvimento prático em C++
- Baseado em Munique ou aberto a realocação — apoiamos realocação e patrocínio de visto
- Fortes habilidades de comunicação escrita e verbal em inglês
- Forte experiência com C++ moderno, idealmente C++17 ou C++20, incluindo templates e design em tempo de compilação
- Engenharia de performance comprovada: profiling antes de otimizar, leitura de flame graphs e contadores de hardware, e raciocínio sobre latência de cauda e jitter em vez de médias
- Um histórico de trabalho de performance entregue: melhorias que você conduziu desde a medição até o código mesclado e a aplicação sustentada em CI — não benchmarks isolados
- Forte experiência com programação multithread e concorrente: modelos de memória, atomics, padrões lock-free e o discernimento para saber quando um mutex simples é a resposta certa
- Exposição a sistemas de tempo real ou quase tempo real em Linux é fortemente preferida: políticas de agendamento, preempção, inversão de prioridade, afinidade de CPU e as fontes usuais de jitter — experiência prévia profunda em RT é um diferencial, não um requisito; os fundamentos de performance importam mais
- Fortes habilidades de depuração usando GDB, sanitizers (ASan/TSan/UBSan), Valgrind, perf, strace, ltrace, tcpdump e core dumps
- Sólido entendimento dos internos do Linux: processos, threads, IPC, sinais, agendamento, gerenciamento de memória, buffering e vinculação dinâmica
- Experiência com CMake e toolchains de compiladores (GCC, Clang)
- Experiência escrevendo testes automatizados, incluindo testes unitários, testes de integração e estratégias de teste relacionadas a hardware, bem como benchmarks e testes de estresse/soak
- Uma mentalidade sênior pragmática e focada na equipe: você otimiza as coisas que importam para o produto e para quando o orçamento é atingido; você compartilha revisões, suporte e tarefas de lançamento em uma pequena equipe sênior; você torna sua especialidade uma capacidade de toda a equipe em vez de um silo — e você prefere entregar um ganho de 30% esta semana do que discutir um ganho de 3% por um mês
Habilidades Benéficas
- Internos de banco de dados: estruturas de armazenamento e índice, controle de concorrência, MVCC, design de transação e cache — nosso Blackboard é essencialmente um armazenamento tipado em processo
- Contribuições para software de alta performance ou de sistemas: alocadores, runtimes, engines, bancos de dados, pilhas de rede, kernels
- Um background em baixa latência: sistemas de trading, áudio ou vídeo em tempo real, telecomunicações ou controle de movimento embarcado
- Extensa metaprogramação de templates e computação em tempo de compilação
- Conhecimento de Linux de tempo real, agendamento de kernel, tratamento de IRQ, fronteiras entre kernel/user-space e medição de latência com cyclictest, ftrace ou eBPF
- Design de ABI de C++ e API de plugin/biblioteca compartilhada que permanece estável entre compiladores e versões de toolchain
- Experiência prática com profilers de instrumentação como Tracy (nós o usamos), bem como perf, VTune ou similares
- Internos de Windows e a toolchain MSVC — partes da plataforma também são enviadas em Windows
- Fundamentos de rede: TCP/IP, UDP, sockets, latência, buffering e fluxo de pacotes
- Experiência projetando arquiteturas sustentáveis — propriedade clara, separação de preocupações, testabilidade — em sistemas limitados pelo tempo, não apenas por funcionalidades
O que oferecemos
- Uma empresa de alta tecnologia dinâmica, combinada com solidez financeira e investidores de classe mundial.
- Junte-se a uma equipe interdisciplinar e internacional com 60+ nacionalidades diferentes em um ambiente de trabalho colaborativo.
- Muitas oportunidades de desenvolvimento à medida que continuamos a crescer.
- Tarefas desafiadoras e projetos impactantes ao lado de especialistas que permitem o crescimento profissional e pessoal.
- Programa de Benefícios Corporativos cobrindo saúde, mobilidade e aprendizado por 100€ líquidos por mês.
- Instalações de escritório modernas com um terraço na cobertura com vista para Munique, bebidas e frutas gratuitas e eventos regulares da empresa contribuem para um bom ambiente de trabalho
Sobre nós
Agile Robots SE é uma empresa internacional de alta tecnologia sediada em Munique, Alemanha, com um local de produção em Kaufbeuren e mais de 3500 funcionários em todo o mundo. Nossa missão é preencher a lacuna entre inteligência artificial e robótica desenvolvendo sistemas que combinam tecnologia de ponta de detecção de força-momento e processamento de imagem líder mundial. Esta combinação única de tecnologias nos permite fornecer soluções robóticas fáceis de usar e acessíveis que permitem a montagem de precisão inteligente.
Isso é possível graças aos nossos funcionários, que trazem o melhor de si a cada dia com criatividade e entusiasmo. Torne-se parte desta equipe e molde o futuro da robótica conosco!
Orgulhamo-nos da nossa diversidade e recebemos sua candidatura independentemente de gênero e identidade sexual, nacionalidade, etnia, religião, idade ou deficiência.
