Key job responsibilities
- Develop features which automate the provisioning, operation and support of large robotic fleets
- Design and develop low level workflows that directly control machine operation with very high reliability
- Continuously simplify the overall system - including code, workflows, exception handling and integration with hardware/software components
- Debug internal and field issues; develop tools and best practices for debugging, system monitoring and troubleshooting at scale
- Implement automated testing strategies for repeatable quality
Basic qualifications
- 3-5 years of non-internship professional software development experience
- Experience programming with at least one software programming language
- 3-5 years of non-internship design or architecture (design patterns, reliability and scaling) of new and existing systems experience - Bachelor's degree in Computer Science or Electrical Engineering
- 3+ years of programming with C/C++, Java, Rust or similar OO language
Preferred qualifications
- 1+ years of experience creating software which controls robots or other industrial automation equipment
- Experience in low-level firmware architecture, design and development, preferably for motion control
- Knowledge of Linux kernel and device-driver development
- Familiarity with common bus protocols such as Modbus, CAN bus, Ethernet/IP, EtherCAT, et