About the role
As a member of Upstream Robotics Software & DevOps team, you'll design, implement, maintain, and extend components of our software platform, support its users, integrate new functionality, and proof-of-concept applications. You'll collaborate closely with team members, Upstream design and research engineers, and Downstream colleagues. This role offers an opportunity to play a key part in improving architecture, practices, and tooling to accelerate research and development, bridge the gap to production, and shorten time-to-market.
Responsibilities:
- Contribute to the ideation, exploration, and proof-of-concept implementation of new features and product concepts
- Design, implement, test, maintain, and evolve functional components and tools of our software platform using modern C++ and Python
- Integrate third-party components and implement new system behaviors
- Manage the entire high-level software stack, including operating systems, device drivers, and user interfaces
- Design scalable and deployable distributed system software architecture
- Document and communicate software requirements, design, and implementation thoroughly
- Mentor and support junior team members, fostering a positive and engaging team environment
- Promote a culture of software quality and collaboration across the group
About you
Required:
- Degree in engineering or equivalent industry experience
- 3+ years of experience with robotic, actuated, real-time, or simulated physical systems
- Strong object-oriented and functional programming skills in modern C++
- Working knowledge of Python or Bash
- Good knowledge of Linux systems and toolchains
- Proficient with development best practices and tools such as version control, unit testing, CI/CD
- Ability to analyze problems, estimate effort, and prioritize tasks
- Commitment to engineering precision
Preferred:
- Experience with real robots or autonomous systems in the field
- Professional software development experience in production environments
- Contributions to open-source projects
- Experience debugging, testing, and profiling complex software systems
- Experience with ROS 2, DDS middleware, messaging frameworks
- Parallel programming and performance optimization skills
- Experience with simulation environments like Isaac Sim, MuJoCo, Genesis, and cloud-scale simulation
- Experience with ONNXRuntime, TensorRT, CVflow, RKNN, or NPU deployments
- Experience with NVIDIA tools (Jetson, NITROS, TAO, DeepStream)
- Experience profiling and optimizing machine learning models for hardware
- Knowledge of Yocto/BitBake build systems
- Experience with containerized development and deployment
- Experience with behavior planning, decision-making architectures, perception, motion planning, control, reinforcement learning, imitation learning, or VLMs