Senior Technical Lead
Senior Technical Lead
Posted 14 days ago
SENIORITY
Lead
About the role
- Develop and maintain ROS2 nodes for gripper command/state, sensor streaming (cameras, IMU, dToF, tactile), and device management (DFU, discovery, calibration)
- Develop and integrate host-side SDKs that interface with embedded MCU subsystems over Ethernet and EtherCAT — wrapping vendor C/C++ libraries into ROS2-compatible drivers
- Implement sensor integration pipelines on Jetson: camera frame acquisition and GPU-accelerated processing (CUDA de-Bayering), depth sensor post-processing (dToF zone point cloud), IMU streaming, tactile data decoding
- Integrate control and perception algorithms developed by scientists into the real-time platform — ensuring timing, data flow, and API contracts are met
- Develop device management software: firmware update orchestration (DFU) across heterogeneous nodes (MCU, sensor modules, actuators), device discovery, health monitoring
- Write and maintain integration tests validating end-to-end data paths from embedded hardware through ROS2 topics
- Skill Requirements
- Mandatory Skills 5+ years of software engineering experience, with significant work on embedded Linux / robotics platforms
- Strong proficiency in C++ and Python on Linux (Ubuntu)
- Hands-on experience with ROS2 — writing nodes, custom message types, lifecycle management, launch files, parameter handling
- Experience developing software on NVIDIA Jetson platforms (JetPack, CUDA basics, Docker containers)
- Experience interfacing host software with embedded systems — consuming C/C++ SDKs from hardware vendors, Ethernet/UDP communication with MCUs, serial protocols
- Experience with sensor integration: cameras (V4L2, GStreamer, or vendor SDK), IMUs, depth sensors, or similar
- Comfortable working at the hardware-software boundary — reading protocol specs, validating data with Wireshark/logic analyzers, coordinating with firmware engineers
- Preferred Qualification
- Experience with EtherCAT master libraries (IgH, SOEM) on Linux for real-time motor/actuator control
- Experience with CUDA kernels or GPU-accelerated image processing (de-Bayering, filtering, point cloud generation)
- Experience with CycloneDDS or other DDS implementations and real-time ROS2 tuning (executor configuration, QoS, zero-copy transport)
- Experience integrating manipulation/control algorithms (trajectory execution, position control loops, impedance control)
- Familiarity with Cyphal/DroneCAN or other CAN-based protocols from the host side
- Experience with Docker-based development and deployment workflows on embedded Linux
- Experience with device firmware update orchestration across multiple heterogeneous targets
- Familiarity with PREEMPT_RT Linux configuration, CPU isolation, and real-time scheduling
- Experience with Yocto/OE or custom BSP builds for Jetson
- Experience with calibration systems (camera intrinsics/extrinsics, hand-eye calibration)
Before you apply
Applying takes about a minute. These four things decide how fast it moves after that.
Your profile is current
It's what we read first. Occupations, seniority and locations matter more than a long history.
Two examples you can talk through
Not a portfolio — just two pieces of work where you can explain the decisions and what you'd change.
A number in mind
What you're on now and what would make you move. We negotiate better when we know both.
Your notice period
Employers plan around it, and it's the question that stalls offers most often.
Once you apply, someone reads it and calls you before anything reaches the employer — usually within two working days.
