Staff Software Engineer, Build & Release (R3007)
Shield AI
WHAT YOU'LL DO:
- Build System and Dependency Management
- Architect, optimize, and maintain C++ build systems using tools like CMake and Makefiles, focusing on reproducibility and scalability across development and production environments.
- Manage and integrate dependencies effectively with Conan, ensuring a consistent and secure package management strategy that aligns with SDK requirements.
- Work with package management tools like Debian to handle cross-platform dependencies, making the SDK accessible to a wide range of developers and systems.
- Optimization and Profiling
- Identify and address build performance bottlenecks through profiling tools and techniques, implementing optimizations like caching and precompiled headers to reduce build times and improve efficiency.
- Apply best practices in compiler and linker configurations for GCC and Clang, ensuring compatibility across various platforms and improving build reliability.
- Linux Expertise
- Leverage expertise in Linux-based development to troubleshoot and enhance SDK builds, deploying across distributions like Ubuntu and RHEL.
- Develop scripts in Bash or ZSH for automation and build process improvements.
- Version Control and Branching Strategies
- Collaborate closely with autonomy engineers to support codebase management, continuously improving workflows to reduce development friction.
REQUIRED QUALIFICATIONS:
- Typically requires a minimum of 7 years of related experience with a Bachelor’s degree; or 6 years and a Master’s degree; or 4 years with a PhD; or equivalent work experience.
- 5+ years in build and release engineering, ideally within C++-based environments.
- Proficiency with CMake and Linux development.
- Experience with some C++ package management tool (like Conan).
- Experience working with CI/CD tools, automated pipelines, and virtualized environments.
PREFERRED QUALIFICATIONS:
- Deep Conan expertise.
- Adaptable problem solver - able to learn new skills quickly and can hop into many different projects quickly.
- Working in large mono-repo or poly-repo projects with 100+ developers.