Robot Ground Control Software Engineer
Must-have:CI/CDLead
Work Week: 5 days Working Hours: 9 am to 6 pm
Key Responsibilities
- Lead the architecture, development, and continuous enhancement of ground control software for underwater robotic systems, covering core functions such as device management, mission configuration, teleoperation, system monitoring, and data playback.
- Design and implement user interfaces and operational workflows to improve usability and operational efficiency, including multi-window/multi-view layouts, shortcuts, alerts and guidance, user permissions, and operating-mode switching.
- Develop and maintain communication links between the ground control software and robotic platforms, including serial, Ethernet, UDP,TCP, and other communication interfaces; implement command transmission, parameter configuration, heartbeat and reconnection mechanisms, as well as band width and latency optimization.
- Integrate and visualize multi-source data, including video streams, sonar imagery, IMU/depth/attitude/velocity data, motion trajectories, sensor health status, fault codes, and other telemetry.
- Develop mission planning and operational tools, including waypoint editing, area mapping/marking, workflow orchestration, mission template management, and automated operation report generation.
- Contribute to the development of logging and data lifecycle capabilities, including data recording, playback and analysis, data export and retrieval, crash capture, and automated issue reporting to support troubleshooting and issue reproduction.
- Collaborate closely with algorithm, embedded software, testing, and product teams to complete system integration and on-site delivery, including water and sea trials; rapidly identify issues and drive them through to resolution.
- Contribute to cross-platform compatibility and software engineering initiatives, including modular and plugin-based architecture, automated build systems, version management, and software release processes.
Qualifications
- Bachelor’s degree or above in Computer Science, Software Engineering, Automation, Electronic Information Engineering, or a related discipline.
- Strong C++ development skills and solid coding practices, with a good understanding of common data structures, concurrency/threading, memory management, and performance optimization.
- Hands-on experience in desktop application development, with a good understanding of event-driven programming, UI layout, and practical user interaction design.
- Strong knowledge of network communication and common protocols, including TCP, UDP, WebSocket, and serial communication; experience with connection recovery/reconnection, data validation, packet parsing, and protocol design.
- Experience with multimedia and graphics-related development, including video stream decoding and rendering, 2D graphics, 3D models, charts and dashboards, map/trajectory visualization, and related technologies.
- Strong software engineering capabilities, including modular architecture, testability, logging and exception handling, continuous integration, and automated build/package processes.