Job Qualifications
Certifications
None
Experience
Twenty (20) years experience as a SWE in programs and contracts of similar scope, type, and complexity is required. Bachelor's degree in Computer Science or related discipline from an accredited college or university is required. Four (4) years of additional SWE experience on projects with similar software processes may be substituted for a bachelor's degree.
In addition, the individual shall have six (6) years of experience coding in C, C++, or assembly and four (4) years of experience in software reverse engineering.
An active security clearance is required.
Job Description Summary
The Software Engineer develops, maintains, and enhances complex and diverse software systems (e.g., processing-intensive Digital Signal Processing (DSP), intuitive user interfaces and mission-workflows, modular services and re-usable interfaces) based upon mission needs and user stories.
Tests and troubleshoots software components for adherence to the mission requirements, documents test results, and works with stakeholders to develop solutions to and problem reports. Develops and delivers incrementally, with traceability to requirements and adapting change.
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.
Capabilities (proficiency in one or more)
- Analyze user requirements to derive software design and performance requirements
- Debug/Port existing software and correct defects/update versions
- Write and/or review software and system documentation. Continuously improve documentation and tool release process efficiency
- Author, design and code new software or modify existing software to add new features and support execution
- Design or implement complex algorithms requiring adherence to strict timing, system resources, or interface constraints
- Recommend new technologies and processes for complex software projects
- Develop software solutions considering analyzing system performance analysis, users and system engineers’ collaboration; data flow & business processes, and fault resolution
- Develop or implement algorithms to meet or exceed system performance and functional standards in resource constrained environments
- Confer with System Engineers and Reverse Engineers to derive software requirements and to obtain information on project limitations and capabilities, performance requirements and interfaces
- Interface with complex/proprietary database/data repositories
- Identify software vulnerabilities, develop exploits to take advantage of identified vulnerabilities, and develop production quality software based on developed exploits
- Lead technical design and integration of software components
Skills and Tools (proficiency in one or more)
- Software Development (proficient in one or more of the following):
- Linux Application development in C/C++
- User interfaces (Flutter/Dart, QT, etc.), UI Architectures, familiar with AI Integration in Development
- Matlab and signal toolboxes
- Linux kernel development adaptation
- Modem/radio driver development
- Technology/Engineering (proficient in one or more of the following):
- 802.11 protocol familiarity
- System Integration of internally developed server and UI components, COTS/GOTS applications
- Packet Processing (Software Defined Radio demod/decode)
- AI assisted/leveraged Development
- Verification of system design, troubleshooting/debugging, thorough test methodology
- Familiarity with Wi-Fi/Wireless/RF and networking basics
Specific duties (to include but not limited to)
- Process specific 802.11 signals captured from various methods, environments, and antennas
- Develop user interfaces to command and control 802.11 collection and emission systems and present data and analysis in intuitively and efficiently
- Reverse Engineer newly released operating system kernels and update custom drivers for integration of Wi-fi radios/modems
- Implement development in a tailored agile methodology, utilizing GitLab for build/merges
- Assist with developing and executing test procedures for software components
- Clearly communicate in a team environment with fellow engineers, stakeholders, and customers
- Estimate, decompose, and implement iterative tasks, automated tests, and routine builds, in a team environment