Worker Type
Regular
Job Description
NOTE : to qualify for this role, you must be a U.S. Citizen
Summary
The Lead Software Engineer will be a strong individual contributor and technical leader in the Learning and Active Perception (LEAP) group in AV’s MacCready Works division and oversee the development of a variety of innovative computer vision and related analytics for defense and commercial applications. As an experienced Software Engineer, they will also mentor more junior engineers. LEAP focuses on the development of innovative image/video processing and computer vision technologies for both user applications (to accelerate and automate tasks, reduce analyst cognitive load) and robotic systems (to provide perception capabilities, enable autonomy and complex behavior, etc.). This role is specifically centered around implementation of video processing and perception pipelines for low-SWaP processors (e.g., Nvidia Xavier/Orin) and integration into unmanned aerial systems (UAS) and maritime surface vessels (USV), including test and evaluation via benchtop testing and operationally relevant field experimentation.
Position Responsibilities
Implements and optimizes computer vision and perception algorithms using C++, including build system configuration with CMake and targeting low-SWaP embedded processors
Supports testing and demonstration of components and integrated systems
Develops documentation, technical reports, and provides report inputs for presentation to customers and other stakeholders
Creates software design documentation according to software process requirements and guidance from Senior Engineers
Implements coding according to coding standards. Writes a unique test, and validates software according to the process. Contributes to process improvement efforts.
Delivers work on time according to agreed completion dates and project schedule & budget Supports and derives algorithm design from detailed software requirements
Works closely with other software developers to design and reuse developed software to support different programs
Operates in a continuous learning environment under moderate supervision. Provides guidance and mentoring to less experienced engineers.
Works on problems of moderate scope where analysis of situations or data requires a review of a variety of factors
Exercises judgment within defined procedures and practices to determine appropriate action. Builds productive internal/external working relationships
Other duties as assigned
Basic Qualifications (Required Skills & Experience)
Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, Math, or Physics is required or equivalent combination of education, training, and experience
8-12 years of relevant experience in software engineering or related field
Strong software engineering skills with proficiency in C/C++ (primary), including a sound understanding of common data structures, algorithms, object-oriented programming, and development workflows
Experience with CMake and modern C++ build systems
Experience with Python for tooling, scripting, and prototyping (secondary)
Experience with Ubuntu and/or CentOS Linux operating systems
Experience with writing unit tests and debugging code
Experience with DDS, gRPC, and Rust is preferred
Demonstrated mathematical and analytical skills are required
Demonstrated familiarity with source code configuration management tools, such as Git, as well as familiarity with IDEs and debuggers
Experience driving technical changes and collaborating with external developers and customers
Other Qualifications & Desired Competencies
Lead the design, implementation, documentation, and testing software using the Scrum Framework or other software engineering processes
Demonstrates effective listening, questioning, clarifying and summarizing skills to effectively communicate in one-on-one and small group settings
Demonstrates understanding of system design that one is working on and understands the…