Senior C++ Software Engineer

Agile Robots Ag
München, Germany
4 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior

Job location

München, Germany

Tech stack

Abstraction Layers
API
Automation of Tests
Unit Testing
Unix
C++
CMake
Code Generation
Software Quality
Code Review
Communications Protocols
Concurrent Computing
Debian Linux
Software Debugging
Linux
DevOps
Programming Tools
File Systems
EtherCAT
Firmware
Python
Modbus
Networking Basics
Package Management Systems
Pair Programming
Software Architecture
Queueing Systems
OPC Unified Architecture
Memory Leaks
Robotic Automation Software
Software Engineering
Software Systems
System Programming
System Software
Systems Integration
TCP/IP
Tcpdump
Strategies of Testing
WebRTC
Data Logging
Multithreading
Reliability of Systems
Backend
GIT
Perf (Linux)
Containerization
Integration Tests
Low Latency
Build Tools
C++14

Job description

Agile Robots SE is transforming advanced robotics research into reliable industrial solutions. Our Robot Group develops the full software stack for our robotic systems, from low-level system integration, real-time communication, Linux-based platform services, and hardware abstraction layers up to developer tooling and user-facing interfaces., We are looking for a Senior C++ Software Engineer to join our Platform Team. In this role, you will work on the core software infrastructure that enables our robots to run reliably, safely, and efficiently in production environments. You will contribute not only as an experienced developer, but also as a technical owner who improves architecture, code quality, maintainability, and engineering practices across the team., * Design, implement, and maintain robust C++ software components for robotics platform infrastructure

  • Work on Linux-based system software, runtime services, communication layers, configuration handling, logging, diagnostics, and developer tooling
  • Build reliable interfaces between robot applications, backend services, operating system components, containers, and hardware-facing services
  • Contribute to real-time and near-real-time data processing pipelines, considering latency, determinism, resource usage, and failure behavior
  • Improve system reliability through better error handling, observability, logging, monitoring, recovery mechanisms, and testing
  • Review and improve software architecture with a focus on maintainability, scalability, modularity, and clear ownership
  • Write high-quality, testable C++ code using modern C++ practices
  • Define and improve APIs used by other internal teams and components
  • Support integration with real robotic hardware and investigate complex issues across software, OS, network, and hardware boundaries
  • Mentor other engineers through code reviews, design discussions, pair programming, and technical guidance
  • Collaborate closely with firmware, control, backend, DevOps, QA, and application teams
  • Help define technical standards, development workflows, and long-term platform direction

Requirements

Do you have experience in UNIX?, * 7+ years of professional software engineering experience, with strong hands-on C++ development

  • Strong experience with modern C++, ideally C++17 or C++20
  • Solid understanding of Linux system programming, including processes, threads, IPC, sockets, signals, scheduling, file systems, and debugging
  • Experience designing maintainable software architectures using principles such as SOLID, clear ownership, separation of concerns, and testability
  • Strong debugging skills using tools such as GDB, Valgrind, sanitizers, perf,strace,ltrace,tcpdump, or similar.
  • Experience with multi-threaded and concurrent programming
  • Good understanding of networking fundamentals, such as TCP/IP, UDP, sockets, latency, buffering, and packet flow
  • Experience writing automated tests, including unit tests, integration tests, and hardware-related test strategies
  • Strong Git experience, including code reviews, merge requests, branching workflows, and CI-based development
  • Ability to analyze complex production or integration issues across multiple components
  • Fluency in English, both written and spoken
  • A senior mindset: ownership, technical judgment, clear communication, and willingness to improve not only code but also the surrounding engineering process, * Experience with robotics, industrial automation, embedded systems, or machine control software
  • Experience with industrial communication protocols, such as EtherCAT, CAN, Modbus, OPC UA, Profinet, or similar
  • Knowledge of real-time Linux, kernel scheduling, IRQ handling, or kernel/user-space boundaries
  • Experience with IPC mechanisms such as message queues, shared memory, Unix domain sockets, or similar
  • Experience with firmware update mechanisms, boot processes, OS images, or system update flows
  • Experience with containerized environments
  • Experience with package management and build systems such asConan, CMake, and Debian packaging
  • Experience with Python for tooling, automation, testing, or code generation
  • Experience designing internal frameworks, SDKs, APIs, or reusable platform libraries
  • Experience debugging issues on real hardware across software, OS, network, and hardware boundaries
  • Experience mentoring engineers or leading technical topics, * A dynamic high-tech startup, combined with financial soundness and world-class investors
  • Challenging tasks and projects
  • Great working environment in an interdisciplinary, international team
  • Room for creativity and personal development

Apply for this position