ESH StB-Examensvorbereitung GmbH
Agile Robots SE
Senior C++ Performance Engineer (m/w/d)
Über die Rolle
Bei Agile Robots entwickeln wir leistungsstarke Software-Frameworks zur Orchestrierung komplexer Robotersysteme und zur Lösung anspruchsvoller Aufgaben. Die Lösungen werden an verschiedene internationale Kunden vertrieben, damit diese ihre Roboter-Arbeitszellen steuern können. Eine reibungslose Integration und skalierbare Bereitstellung sind dabei zentrale Ziele.
AgileCore soll eine skalierbare Plattform sein, die mehrere Projekte parallel unterstützt. Das funktioniert nur, wenn die zugrunde liegende Plattform mitwächst – wenn sie schnell, threadsicher und diagnostizierbar bleibt, während Projekte, Geräte und Betriebsbedingungen zunehmen.
Wir suchen einen Senior C++ Performance Engineer für unser AgileCore Runtime Core-Team. Dies ist eine T-Shaped-Rolle in einem kleinen, erfahrenen Team: Sie sind in erster Linie ein vollwertiges Mitglied des Core-Teams – Sie tragen zur Runtime bei, überprüfen Beiträge der Teams, die auf unserer Plattform aufbauen, und teilen sich die Support- und Release-Aufgaben. Innerhalb des Teams verantworten Sie als Spezialisierung die Performance- und Stabilitäts-Praxis.
Im Bereich Ihrer Spezialisierung treiben Sie die Performance des Runtime-Cores voran – das Blackboard, die Behavior Engine und die darunter liegenden Ausführungspfade. Sie stellen sicher, dass das System unter Last nachweislich threadsicher ist und Fehler im Feld schnell diagnostiziert werden können. Sie verantworten die Praxis: die Methodik, die Tools, die Benchmarks, die Audits und die Schulungen. Sie arbeiten eng mit dem Plattform-Architekten zusammen, der auf Architekturebene die Performance-Budgets und die Verträge für die Hot-Path-Schnittstellen verantwortet – Sie setzen diese Budgets in messbare, erzwungene Realität um und gestalten sie durch Ihre Erkenntnisse. Sie setzen den Standard für Performance, Nebenläufigkeit und Fehlerbehebung und verbessern die Fähigkeit des Teams, diesen zu erfüllen, ohne die Feature-Entwicklung zu verlangsamen. Dies ist eine Rolle für die Produktbereitstellung, keine Forschungsrolle: Erfolg wird an zusammengeführten Verbesserungen, geschlossenen Eskalationen aus dem Feld und grünen Regressionstests gemessen – nicht an Microbenchmark-Bestenlisten. Wir optimieren auf das Budget, das das Produkt benötigt, nicht auf Null.
Warum diese Rolle
- Greenfield-Performance-Infrastruktur: Die Benchmark-Suiten, Budgets und CI-Regressionstests dürfen Sie selbst aufbauen, nicht nur verwalten.
- Ein messbares, physisches Problem: Ihr Profiling und Ihre Benchmarks laufen gegen echte Roboter auf unseren Hardware-in-the-Loop-Rigs – dort, wo Plugins von Drittanbietern auf 1 kHz-Steuerungsschleifen des Herstellers treffen.
- Ein kleines, erfahrenes Core-Team mit echter Eigenverantwortung: Ihre Arbeit wird zum Standard, auf dem die gesamte Plattform aufbaut.
Ihre Aufgaben
- Sie verantworten Latenz, Durchsatz und Jitter der Runtime-Core-Komponenten – das Blackboard (unsere typisierte, abonnierbare In-Process-Datenebene) und die Behavior Engine (Skill-Ausführungsbaum, Trigger-Verarbeitung) – und setzen Verbesserungen durchgängig um: vom Flame Graph über den zusammengeführten Change bis hin zum Regressionstest, der die Stabilität dauerhaft sichert.
- Sie bauen die Echtzeit-Basis für die Plattform: Scheduling-Richtlinien und Prioritäten, CPU-Affinität, Allokation und Page-Fault-Disziplin auf Hot Paths sowie lockfreie Strukturen, wo sie sich auszahlen.
- Sie sind ein vollwertiges Mitglied des Runtime-Core-Teams: Sie entwickeln Core-Komponenten, überprüfen Beiträge von Feature-Teams, die auf der Plattform aufbauen, und nehmen an den Support- und Release-Rotationen des Teams teil.
- Sie machen Performance messbar und erzwingbar – durch Benchmark-Suiten, Budgets pro Subsystem und Regressionstests in der CI, statt Überraschungen beim Kunden vor Ort.
- Sie sind die praktische Autorität für Threadsicherheit: Ownership-Modelle, Lock-Hierarchien, Memory-Order-Reasoning und die Eliminierung ganzer Klassen von Race Conditions durch Sanitizer, Stress- und Soak-Tests.
- Sie stellen sicher, dass das Produkt über den gesamten operativen Bereich hinweg funktioniert – für jedes unterstützte Gerät, jedes Lastprofil und jede Bereitstellungstopologie, nicht nur für die Konfigurationen, die in einer Demo gezeigt werden.
- Sie verbessern die Debug-Fähigkeit, damit die Bereitstellung in der Fabrik und der Support skalieren: Tracing, strukturiertes Logging, Runtime-Metriken, Crash- und Core-Dump-Handling, Symbole für gestrippte Release-Binaries.
- Sie bringen Performance und Stabilität in das Plugin SDK und dessen C ABI ein, wo Plugins von Drittanbietern auf Steuerungsschleifen des Herstellers treffen, die mit 1 kHz laufen.
- Sie untersuchen komplexe Probleme über Software-, OS-, Netzwerk- und Hardwaregrenzen hinweg – einschließlich der schwierigsten Eskalationen aus dem Feld.
- Sie arbeiten partnerschaftlich mit dem Plattform-Architekten an performancekritischem Design: Sie schlagen Verbesserungen innerhalb der Performance-Budgets und Hot-Path-Schnittstellenverträge der Plattform vor, setzen diese um und lassen Messungen in die Festlegung dieser Budgets einfließen.
- Sie betreuen Ingenieure in den Bereichen Performance, Nebenläufigkeit und Fehlerbehebung durch Code-Reviews, Deep-Dive-Sessions, Design-Diskussionen und technische Beratung – ohne dabei Overhead zu erzeugen.
Wesentliche Qualifikationen
- 7+ Jahre Berufserfahrung in der Softwareentwicklung mit fundierter praktischer C++-Entwicklung.
- Ansässig in München oder offen für einen Umzug – wir unterstützen bei Umzug und Visumsbeantragung.
- Sehr gute schriftliche und mündliche Kommunikationsfähigkeiten in Englisch.
- Fundierte Erfahrung mit modernem C++, idealerweise C++17 oder C++20, einschließlich Templates und Compile-Time-Design.
- Nachgewiesene Erfahrung im Performance Engineering: Profiling vor Optimierung, Lesen von Flame Graphs und Hardware-Countern sowie Verständnis für Tail-Latenz und Jitter statt nur Durchschnittswerte.
- Erfolgsbilanz bei ausgelieferter Performance-Arbeit: Verbesserungen, die Sie von der Messung über den zusammengeführten Code bis zur dauerhaften Durchsetzung in der CI begleitet haben – keine isolierten Benchmarks.
- Fundierte Erfahrung mit Multithreading und nebenläufiger Programmierung: Speichermodelle, Atomics, lockfreie Muster und das Urteilsvermögen, wann ein einfacher Mutex die richtige Lösung ist.
- Erfahrung mit Echtzeit- oder Near-Real-Time-Systemen unter Linux ist sehr erwünscht: Scheduling-Richtlinien, Preemption, Prioritätsinversion, CPU-Affinität und die üblichen Quellen für Jitter – tiefgehende RT-Erfahrung ist ein Plus, keine Voraussetzung; die Performance-Grundlagen sind wichtiger.
- Starke Debugging-Fähigkeiten unter Verwendung von GDB, Sanitizern (ASan/TSan/UBSan), Valgrind, perf, strace, ltrace, tcpdump und Core Dumps.
- Fundiertes Verständnis der Linux-Interna: Prozesse, Threads, IPC, Signale, Scheduling, Speicherverwaltung, Buffering und dynamisches Linken.
- Erfahrung mit CMake und Compiler-Toolchains (GCC, Clang).
- Erfahrung im Schreiben automatisierter Tests, einschließlich Unit-Tests, Integrationstests und hardwarebezogener Teststrategien sowie Benchmarks und Stress-/Soak-Tests.
- Eine pragmatische, teamorientierte Senior-Mentalität: Sie optimieren die Dinge, die für das Produkt wichtig sind, und hören auf, wenn das Budget erreicht ist; Sie teilen sich Reviews, Support- und Release-Aufgaben in einem kleinen Senior-Team; Sie machen Ihre Spezialisierung zu einer Fähigkeit des gesamten Teams, statt sie in einem Silo zu isolieren – und Sie würden lieber diese Woche einen 30%-Gewinn ausliefern, als einen Monat lang über einen 3%-Gewinn zu diskutieren.
Vorteilhafte Qualifikationen
- Datenbank-Interna: Speicher- und Indexstrukturen, Concurrency Control, MVCC, Transaktions- und Cache-Design – unser Blackboard ist im Wesentlichen ein typisierter In-Process-Speicher.
- Beiträge zu Hochleistungs- oder Systemsoftware: Allocators, Runtimes, Engines, Datenbanken, Netzwerk-Stacks, Kernel.
- Hintergrund im Bereich Low-Latency: Handelssysteme, Echtzeit-Audio oder -Video, Telekommunikation oder eingebettete Bewegungssteuerung.
- Umfangreiche Template-Metaprogrammierung und Compile-Time-Berechnungen.
- Kenntnisse in Echtzeit-Linux, Kernel-Scheduling, IRQ-Handling, Kernel/User-Space-Grenzen und Latenzmessung mit cyclictest, ftrace oder eBPF.
- C++-ABI und Plugin / Shared-Library API-Design, das über Compiler- und Toolchain-Versionen hinweg stabil bleibt.
- Praktische Erfahrung mit Instrumentierungs-Profilern wie Tracy (wir verwenden es) sowie perf, VTune oder ähnlichen.
- Windows-Interna und die MSVC-Toolchain – Teile der Plattform werden auch auf Windows ausgeliefert.
- Netzwerkgrundlagen: TCP/IP, UDP, Sockets, Latenz, Buffering und Paketfluss.
- Erfahrung im Entwurf wartbarer Architekturen – klare Ownership, Trennung von Zuständigkeiten, Testbarkeit – in Systemen, die durch Zeit und nicht nur durch Features eingeschränkt sind.
Was wir bieten
- Ein dynamisches High-Tech-Unternehmen, kombiniert mit finanzieller Solidität und erstklassigen Investoren.
- Werden Sie Teil eines interdisziplinären, internationalen Teams mit 60+ verschiedenen Nationalitäten in einem kollaborativen Arbeitsumfeld.
- Zahlreiche Entwicklungsmöglichkeiten, während wir weiter wachsen.
- Anspruchsvolle Aufgaben und wirkungsvolle Projekte an der Seite von Experten, die berufliches und persönliches Wachstum ermöglichen.
- Corporate Benefits Programm für Gesundheit, Mobilität und Weiterbildung im Wert von 100€ netto pro Monat.
- Moderne Büroräume mit Dachterrasse mit Blick über München, kostenlose Getränke & Obst sowie regelmäßige Firmenevents tragen zu einem guten Arbeitsklima bei.
Über uns
Agile Robots SE ist ein internationales High-Tech-Unternehmen mit Sitz in München, Deutschland, einem Produktionsstandort in Kaufbeuren und mehr als 3500 Mitarbeitern weltweit. Unsere Mission ist es, die Lücke zwischen künstlicher Intelligenz und Robotik zu schließen, indem wir Systeme entwickeln, die modernste Kraft-Moment-Sensorik mit weltweit führender Bildverarbeitungstechnologie kombinieren. Diese einzigartige Kombination von Technologien ermöglicht es uns, benutzerfreundliche und erschwingliche Roboterlösungen anzubieten, die eine intelligente Präzisionsmontage ermöglichen.
Dies wird durch unsere Mitarbeiter ermöglicht, die jeden Tag mit Kreativität und Begeisterung ihr Bestes geben. Werden Sie Teil dieses Teams und gestalten Sie mit uns die Zukunft der Robotik!
Wir sind stolz auf unsere Vielfalt und begrüßen Ihre Bewerbung unabhängig von Geschlecht und sexueller Identität, Nationalität, ethnischer Herkunft, Religion, Alter oder Behinderung.
