Sr. Staff Software Engineer (Embedded)
The Sr. Staff Software Engineer (Embedded) has the opportunity to lead and develop a variety of innovative unmanned and robotic systems for multiple defense and commercial applications. The Embedded Software Engineer writes functional software for deployment on embedded devices and systems like aircraft and payloads and have the opportunity to test out those devices in flight test environments. This requires the engineer to design, develop, code, test and debug system software as well as analyze and enhance efficiency, stability and scalability of the software on particular devices. There is a mix of full life-cycle development as well as a need to use existing software code base to expand the capabilities to match specific program requirements.
Position Responsibilities
- Writes and tests software to support integration of sensors and embedded processors into aircraft (such as autopilots, payloads, software defined radios or other functional components) or other robotic systems
- Designs and implements software for prototypes and products using established AeroVironment and industry developed tools and practices. Ensure good configuration control and management of software
- Leads in writing of system requirements, system test plans, diagnostic tools, and in validation testing of software. Assist with hardware selection and recommend processing, memory and storage needs of systems
- Leads development of rapid prototyping and conceptual level testing and will require estimating time to develop software and scoping the depth of the development with project / program management to fit timeline and budget constraints
- Works closely with other engineering disciplines. Focused on getting the job done
- Leads and supports transition of development software to production environments and to certification. Participates in multi-disciplinary development teams
- Develops proof of concept capability demonstrations. Conducts and supports design reviews
- Contributes to AV's software development process in developing quality code
- Works on significant and unique issues where analysis of situations or data requires evaluation of intangibles
- Other duties as assigned
Basic Qualifications (Required Skills & Experience)
A BS degree in Computer Science / Engineering, Electrical Engineering, Aerospace, Mechanical Engineering or related field is required or equivalent combination of education, training, and experienceMinimum 12-15 years of experience years of relevant experienceExperienced trouble-shooting systems is required and is proficient with Python, C, C++11, C++ STL and / or OpenCLDemonstrated knowledge of Visual Studio, Eclipse or similar IDE as well as defect tracking toolsExperienced working with common protocols such as RS-485, RS-232, CAN, I2C, SPI, USBDemonstrated mathematical and analytical skills are requiredPeriodic travel will likely be required in support of testing equipment at approved flying locationsPeriods of development may require long irregular hours around deadlines, weekends and some holidays and in field test environmentsOther Qualifications & Desired Competencies
Advanced degree is preferredDemonstrates competency in contributing to the design, coding, documenting and testing softwareExperience with Test Driven Development (TDD) along with unit testing softwareUnderstanding of automated build environments along with automated test and deploymentDemonstrated knowledge of object-oriented programming and multi-threaded design such as JIRA and source code control tools such as SVN, Bitbucket or GitLabExperience with STM32 family of processors and working with RTOS systems (such as C / OS, freeRTOS) on those processorsExperience using Video 4 Linux and modifying and compiling Embedded Linux systemsExperience developing drivers for Linux / ARM is required, familiarity with Robot Operating System (ROS) is a plusDemonstrates electronics knowledge and use of lab equipmentDemonstrates strong leadership, interpersonal and communication (written and verbal) skillsUnderstanding of the design of the system that one is working on and understand the role that assigned tasks play in the systemDemonstrates competency in researching and re-engineering to propose alternate solutions to issuesAble to excel in a fast-paced, deadline-driven environment, where small teams share a broad variety of dutiesDisplays strong initiative and drive to accomplish goals and meet company objectivesTakes ownership and responsibility for current and past work productsIs committed to learning from mistakes and driven to improve and enhance performance of oneself, others, and the companyHas effective problem-solving, analytical, interpersonal and communication skillsFocuses on teamwork, collaboration and puts the success of the team above one's own interestsPhysical Demands
Ability to work in an office and R&D environment (Constant)Required to stand and sit for long periods; talk, hear, and use hands and fingers to operate a computer and telephone keyboard (Frequent)The salary range for this role is : $136,807 - $194,040. AeroVironment considers several factors when extending an offer, including but not limited to, the location, the role and associated responsibilities, a candidate's work experience, education / training, and key skills.
ITAR Requirement : This position requires access to information that is subject to compliance with the International Traffic Arms Regulations ("ITAR") and / or the Export Administration Regulations ("EAR"). In order to comply with the requirements of the ITAR and / or the EAR, applicants must qualify as a U.S. person under the ITAR and the EAR, or a person to be approved for an export license by the governing agency whose technology comes under its jurisdiction. Please understand that any job offer that requires approval of an export license will be conditional on AeroVironment's determination that it will be able to obtain an export license in a time frame consistent with AeroVironment's business requirements. A "U.S. person" according to the ITAR definition is a U.S. citizen, U.S. lawful permanent resident (green card holder), or protected individual such as a refugee or asylee. See 22 CFR 120.15. Some positions will require current U.S. Citizenship due to contract requirements.