The Signals Software Engineer develops, maintains, and enhances signal processing software (e.g. detectors, demodulators, protocol processors). Works individually or as part of a team. Reviews and tests software components for adherence to the design requirements and documents test results. Resolves software problem reports. Utilizes software development and software design methodologies appropriate to the development environment. Provides specific input to the software components of system design to include hardware/software trade-offs, 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.
TS/SCI with Polygraph is required.
- Analyze user requirements to derive software design and performance requirements
- Design and code new software or modify existing software to add new features
- Debug existing software and correct defects
- Describe various signal processing techniques
- Identify various digital modulation techniques
- Write software using C++, Java
- Functional understanding of the Linux operating system
- Integrate existing software into new or modified systems or operating environments
- Provide recommendations for improving documentation and software development process standards
- Develop/implement algorithms to meet system performance and functional standards; Assist with developing and executing test procedures for software components; Write/review software and system documentation; Develop software solutions, confer with users or system engineers; analyze systems flow, data usage and work processes; and investigate problem areas
- Serve as team lead at the level appropriate to the software development process being used on any particular project; 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; Write software using C++, Java
- Functional understanding of the Linux operating system; Use signal processing algorithms to convert a signals; Design signal processing software based on sparse documentation; Identify the source of problems in an a RF processing system
- Lead 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; Design/ implement complex signal processing algorithms requiring adherence to strict timing, system resource, or interface constraints; Perform quality control on products; Write software using C++, Java. Suggest languages as needed to solve problems; Advanced understanding of the Linux operating system; Confer with system engineers and software engineers to derive software requirements and to obtain information on project limitations and capabilities, performance requirements and interfaces; Develop and maintain software framework to enable efficient processing of data; Identify the source of problems in an a Radio Frequency (RF) processing system and associated systems in an enterprise architecture; Implement recommendations for improving documentation and software development process standards
- Bachelor's degree in Computer Science or related discipline from an accredited college or university is required. Four (4) years of additional SSWE or equivalent experience on projects with similar software processes may be substituted for a bachelor’s degree. A t least Seven (7) years of experience as a SSWE or equivalent on a project with a focus on Radio Frequency (RF) to include experience with Fourier transforms, filtering, communications theory, digital modulation, error control coding, signals analysis too ls (e.g. WVT, DVT), and digital sign a l processing (e.g. adaptive beamforming/filtering, demodulation).
Software defined radio architectures (e.g. SCA, REDHAWK, or GNU), commercial wireless standards, geolocation techniques, software configuration management tools (e.g. GJT, Clearquest, Trac, or Subversion), Python, Eclipse IDE, Google Protocol Buffer, model based design (e.g. Matlab, SIMUL1NK), service oriented architecture, and Linux OS.
To perform this job successfully, an individual must be able to perform each essential duty satisfactorily. The requirements listed above are representative of the knowledge, skill, and/or ability required. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
We are an Equal Opportunity Employer.