Shadow Labs has an immediate opening for an Algorithm Engineer to assist with development, R&D, and rapid prototyping programs for autonomous vehicles.
Requirements
- Strong working knowledge and demonstrated application of building and working with containers.
- Strong working knowledge and demonstrated application of DevOps and working within a CI/CD environment
- Strong working knowledge and demonstrated participation in an agile development environment for at least 2 years.
- Working knowledge and application of modern cloud native design principles: Pets and cattle, strangle pattern, service mesh, pub sub, microservices, distributed and federated control models.
- Working knowledge and application of IoT systems and communication patterns.
- Working knowledge of basic networking: routing, switching, network overlays.
- Working Knowledge of cloud environments: AWS, GCP, Azure, etc.
Responsibilities
- Develop and implement a wide range of algorithmic solutions to optimize performance of distributed, multi-agent autonomous systems,
- Understand, validate, implement, and evaluate mathematically sophisticated optimization algorithms,
- Design and implement API first software to interface with various robotics platforms i.e. ROS, Ardupilot, etc.
- Work with a highly matured CICD pipeline that includes multiple simulation environments and geographically disperse hardware in the loop.
- Implement cloud native, decentralized applications for use in IoT applications over disadvantaged networks.
- Follow and maintain fluent knowledge of commercial technology trends and champion new ideas, products, and process improvements
Other
- Agile experience preferred.
- Due to the nature of work performed within our facilities, U.S. citizenship is required.
- Must be comfortable with a fast paced, agile environment, and be willing to change focus rapidly as objectives change.
- Must be comfortable working in teams, paired programming, with high degrees of autonomy and the associated accountability.
- All positions are designed to be remote, or as remote as possible, understanding that things like work classification or collaboration needs of teams/customers will require infrequent, but necessary, travel, trips into an office, temporary shifts in working hours and prioritizing the time to do so.