Signals Software Engineer II
Reflexive Concepts · Annapolis Junction, MD · 3 wk ago
EngineeringFull-time
About the role
Reflexive Concepts is seeking a skilled Signals Software Engineer to analyze, design, develop, and maintain signal processing software in a Linux environment. The role involves both individual contributions and team leadership, with a focus on RF systems and complex signal processing algorithms.
Responsibilities
- 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 and identify digital modulation techniques
- Integrate existing software into new or modified operating environments
- Provide recommendations for improving documentation and software development process standards
- Develop and implement algorithms to meet system performance and functional standards
- Assist with developing and executing test procedures for software components
- Write and 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, adapt it to new hardware, or improve its performance
- Design, develop, and modify software systems using scientific analysis and mathematical models to predict and measure outcomes and consequences of design
- Use signal processing algorithms to convert signals and design signal processing software based on sparse documentation
- Lead one or more software development teams and ensure work is completed in accordance with software development process constraints
- Design and implement complex signal processing algorithms requiring adherence to strict timing, system resource, or interface constraints
- Perform quality control on products
- Write software using C++ and Java; suggest additional languages as needed to solve problems
- Apply an advanced understanding of the Linux operating system
- Confer with system and software engineers to derive software requirements and obtain information on project limitations, capabilities, performance requirements, and interfaces
- Develop and maintain a software framework to enable efficient processing of data
- Identify the source of problems in a Radio Frequency (RF) processing system and associated systems in an enterprise architecture
- Develop, maintain, and enhance signal processing software (e.g., detectors, demodulators, protocol processors)
- Review and test software components for adherence to design requirements and document test results
- Resolve software problem reports
- Utilize software development and design methodologies appropriate to the development environment
- Provide specific input to software components of system design, including 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
Requirements
- Bachelor's degree in Computer Science or related discipline from an accredited college or university is required
- At least seven (7) years of experience as a Software Engineer or equivalent on a project with a focus on Radio Frequency (RF), including experience with:
- Fourier transforms
- Filtering
- Communications theory
- Digital modulation
- Error control coding
- Signals analysis tools (e.g., WVT, DVT)
- Digital signal processing (e.g., adaptive beamforming/filtering, demodulation)
- Four (4) years of additional Software Engineer or equivalent experience on projects with similar software processes may be substituted for a bachelor's degree
Skills
- C++ and Java
- Linux operating system
- Signal processing algorithms and techniques
- Software defined radio architecture (e.g., SCA, REDHAWK, or GNU)
- Commercial wireless standards and geolocation techniques
- Software configuration management tools (e.g., Git, ClearQuest, Trac, or Subversion)
- Python
- Eclipse IDE
- Google Protocol Buffer
- Model-based design (e.g., MATLAB, Simulink)
- Service-oriented architecture