Description:
Responsibilities include but are not limited to:
- Develop and maintain robotic control and measurement software systems for PCs and embedded systems.
- Lead efforts in testing and validation of robotics software and control systems.
- Manage software field deployments and provide support on-site and remotely to customers.
- Derive and own software system requirements and schedules.
- Evaluate and identify improvements to system design with a specific focus on robust autonomy.
- Interface with scientists, engineering managers, product management, and program management to drive new product development programs from concept to production.
- Provide hands-on support to cross-functional product development teams servicing markets, including space, defense, medical, manufacturing, and other industries.
- Write requirements and specification documents.
Required Qualifications
- BS in Computer Science, Robotics, Computer Engineering, Electrical Engineering or equivalent.
- 5+ years of experience in software development for either PC or embedded targets.
- Extensive knowledge of C/C++ development.
- Experience testing frameworks and unit testing.
- Experience with Git version control system.
- Experience reading circuit diagrams and performing basic debugging.
- Experience designing effective software architectures for critical high-reliability systems.
- Capability to write maintainable and responsive multithreaded and multi-process applications.
- Knowledge of digital communication systems (ethernet, USB, async, serial, CAN, SPI, I2C).
- Experience with space flight avionics or ground system software, particularly on planetary exploration missions.
- Knowledge of automated software tests and continuous integration systems.
- Experience with navigation visualization systems.
- Experience interfacing with various sensors and cameras.