Job Description
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