Software Engineer

AeroVironmentAnnapolis Junction, MD
Onsite

About The Position

The primary role of the Software engineer is to develop, maintain, and enhance complex and diverse software systems in support of a high-priority Federal Intelligence Program. 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.

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 of 14 years experience in software engineering
  • 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

Responsibilities

  • 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.
  • Work individually or as part of a team.
  • 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.
  • Analyze user requirements to derive software design and performance requirements.
  • 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.
  • Serve as team lead at the level appropriate to the software development process being used on any particular project.
  • 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.
  • Design or implement complex algorithms requiring adherence to strict timing, system resource, or interface constraints; Perform quality control on team products.
  • Implement recommendations for improving documentation and software development process standards.
  • Oversee one or more software development teams and ensure the work is completed in accordance with the constraints of the software development process being used on any particular project.
  • Confer with system engineers and hardware engineers to derive software requirements and to obtain information on project limitations and capabilities, performance requirements and interfaces.
  • Coordinate software system installation and monitor equipment functioning to ensure operational specifications are met.
  • Build applications using specified programming language per the development requirements.

Benefits

  • medical
  • dental
  • vision
  • 401K with company matching
  • a 9/80 work schedule
  • a paid holiday shutdown
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service