Software Engineer
Role details
Job location
Tech stack
Job description
The primary role of the Software Engineer is to develop, maintain, and enhance complex and diverse software systems. Responsibilities will include processing-intensive analytics, novel algorithm development, manipulation of extremely large data sets, real-time systems, and business management information systems based upon documented requirements to advance mission priorities., * Develop, maintain, and enhance complex and diverse software systems (e.g., processing-intensive analytics, novel algorithm development, manipulation of extremely large data sets, real-time systems, and business management information systems) based upon documented requirements.
- Review and test software components for adherence to the design requirements and documents test results.
- Resolve software problem reports.
- Utilize software development and software design methodologies appropriate to the development environment.
- Provide specific input to the software components of system design to include hardware/software tradeoffs, software reuse, use of Commercial Off-the-shelf (COTS)/Government Off the-shelf (GOTS) in place of new development, and requirements analysis and synthesis from system level to individual software components.
- Debug existing software and correct defects.
- Provide recommendations for improving documentation and software development process standards.
- Design and code new software or modify existing software to add new features.
- Integrate existing software into new or modified systems or operating environments.
- Develop simple data queries for existing or proposed databases or data repositories.
- Write or review software and system documentation.
- Design or implement complex database or data repository interfaces/queries.
- Develop or implement algorithms to meet or exceed system performance and functional standards.
- Assist with developing and executing test procedures for software components.
- Develop software solutions by analyzing system performance standards, confer with users or system engineers; analyze systems flow, data usage and work processes; and investigate problem areas.
- Modify existing software to correct errors, to adapt to new hardware, or to improve its performance.
- Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design.
- Build applications using specified programming language per the development requirements.
Requirements
- Bachelor's degree in Computer Engineering, Computer Science, Electrical Engineering, Math, or Physics is required or equivalent combination of education, training, and experience
- Minimum 5 - 8 years of relevant experience in Windows or Linux application software development.
- Experience analyzing user requirements to derive software design and performance requirements.
- Experience in development for Windows or UNIX applications using scripting languages (e.g., C, C++, C#, Java, and as Python).
- Experience in build and deploy technologies (e.g., Artifactory, Docker, Terraform, Ansible, Packer).
- Experience with Cl/CD tools (e.g., Jenkins and Bamboo), and building automated Cl/CD pipelines.
- An active TS/SCI with Polygraph, * Experience leading technical software teams
- Background working in fast-paced, cleared environments
- Strong communication and documentation skills
Salary Range: $150,000 - $190,000
The pay range for this job level is a general guideline only and not a guarantee of compensation or salary. Determination of official compensation or salary relies on several factors including, but not limited to, level of position, job responsibilities, geographic location, scope of relevant work experience, educational background, certifications, contract-specific affordability, organizational requirements, alignment with local internal equity, as well as alignment with market data., T his 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