Senior Software Engineer, Task Group (R3014)
Shield AI
What you'll do:
- Research, design, and implement state-of-the-art planning algorithms, taking ideas from conception to field deployment
- Optimize the planning stack on the CPU and GPU
- Develop core systems that must be portable and scalable across different UAS platforms and compute architectures
- Work with our Hivemind Design Software team to design and build infrastructure for the PAC team that both supports local development and scales into the cloud
- Work with soft or hard real-time operating systems
- Work with robotics middleware such as ROS and PX4
- Work on algorithms, including graph search, sampling-based planning, etc.
- Work with and deploy our AI stack to edge devices
- Work in collaboration with our DevOps teams to architect and maintain our cloud infrastructure, working with containerization technologies such as Docker and Kubernetes; assist with cross-platform builds and test orchestration, working with build tools (e.g. CMake, Bazel, etc.) and compiler tool chains (e.g. gcc, llvm, etc.)
Projects you might work on:
- Design and implement Mission Planning interfaces or Multi-agent coordination for Tasks given to heterogeneous teams.
- Port PAC libraries, where applicable, to CUDA kernels
- Port PAC libraries to EdgeOS, a Shield AI Middleware framework, that enables portability of PAC libraries to multiple platforms and compute architectures
- Design and implement an analysis and simulation framework that: enables testing of various components in isolation or in a fully integrated manner; supports parameter sweeps; supports hardware-in-the-loop
Required qualifications:
- Typically requires a minimum of 5 years of related experience with a Bachelor’s degree; or 4 years and a Master’s degree; or 2 years with a PhD; or equivalent work experience.
- Proficient with C++ 11, 14, or 17 in a production environment (e.g. support for both internal and external customers)
- Experience in a collaborative development environment, focused on continuous integration/delivery & test-driven development
- Strong knowledge of modern software engineering best practices
- Demonstrated record of working hard, strong communication skills, being a trustworthy teammate, and being kind to others
- Familiarity with writing thread-safe multi-threaded programs
- Familiarity with common debugging and profiling tools (e.g. gdb, valgrind, etc.)
- Familiarity with git, bash, Python