Job Qualifications
Certifications
None
Experience
Seven (7) 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.
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 stories/use cases to derive software design and performance requirements
- Debug/Port existing software and correct defects/update versions
- Write and/or review software and system documentation, test procedures, etc.
- Provide recommendations for improving documentation and software development process standards
- Design and code new software or modify existing software to add new features
- Modify existing software to correct errors, to adapt to new hardware, or to improve its performance
- Integrate existing software into new or modified systems or operating environments
- Design, develop, and modify software systems using scientific analysis and mathematical models to predict and measure outcome and consequences of design
- Author and support execution of software test procedures
- Design and implement complex database/repository queries/interfaces
- Develop software solutions considering system performance analysis, users and system engineer’ collaboration; data flow & business processes, and fault resolution
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
- Kernal specific modem/radio driver development
- 802.11 protocol familiarity
- Gitlab
- RHEL, Rocky
Specific duties (including but not limited to)
- Process specific 802.11 signals captured from various methods, environments, and antennas
- Develop user interfaces and workflows to command and control 802.11 collection and emission systems, and present data and analysis in intuitively and efficiently to users
- 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, automate tests, and routine builds, in a team environment