We’re looking for experienced engineers capable of building and delivering functioning robotic systems and software that will be deployed at a global scale.
Responsibilities
- Participate in all phases of development including concept, design, prototyping, and production
- Influence the full-stack architectural roadmap
- Maintain high-level of communication with cross-functional teams and partners
- Performance tuning and maintenance of on-device software
- Contribute to software design reviews, architecture reviews, and best practices
- Mentor junior engineers
Requirements
- Bachelor’s degree in Computer Engineering, Computer Science, a similar technical field of study, or equivalent practical experience with an outstanding track record
- At least 3+ years as a software engineer in industry
- Mastery of C/C++ and proficient with Python
- Experience with common data structures and algorithms and their application to robotic systems
- Experience working in development team(s) that have delivered commercial software or software-based services
- Experience with real-time communication links and tradeoffs with bandwidth, latency, and reliability
- Experience with multithreading and concurrency
- Understanding of network protocols from data link through application layer
- Debugging/troubleshooting skills on embedded processes and systems
- Experience with designing, building, and deploying scalable and highly available systems
Nice to haves
These aren’t required, but be sure to mention them in your application if you have them.
- Master’s degree in Computer Science, Electrical Engineering, a similar technical field of study, or equivalent practical experience with an outstanding track record.
- Experience and knowledge in controlling and integrating robotic systems
- Experience with ROS or equivalent middleware toolkits
- Experience with a Linux development environment, e.g. CMake, GDB, Git, Ubuntu, etc.
- Experience with real-time systems, interrupts, and schedulers
- Subject matter expertise in one of Control and Dynamical Systems, Machine Learning, or Computer Vision
- Knowledge of professional software engineering practices for full software development life cycle, including coding standards, code reviews, source control management, agile development, build processes, and testing
- Participant in robotic competitions, e.g. RoboCup, DARPA Grand Challenge, and/or contributions to open source projects
- Experience debugging complex distributed or multi-CPU systems.