View all Jobs
Principle Software Engineer
Principal Software Engineer
- Design, implement, and test new robot software subsystems.
- Integrate new sensors and capabilities into multiple product lines.
- Proactively write software documentation.
- BS in Computer Science or equivalent.
- 8+ years of software development experience.
- Expert in C and C++ programming languages.
- Solid understanding of object-oriented programming, design patterns, and data structures.
- Experience with communications protocols, particularly UDP/TCP, and socket programming.
- Experience with multi-threaded programming.
- Proficient in Linux application development.
- Proactive and self-directing, able to work both independently and in a team environment.
- Excellent written and verbal communication skills.
- Experience working in an Agile environment
- Experience developing application software for robotics systems.
- Experience with ROS (Robot Operating System) framework.
- Experience w/ scripting languages e.g. Python is a plus.
- Experience interfacing with various hardware devices, e.g. serial, I2C, USB, etc.