Are you interested in using your skills to help shape the Cyber, Security, & Intel space? If so, look no further. We are seeking a Software Engineer to join our team of passionate individuals. In this role you will support challenging, mission-critical projects that make a direct impact on the nation’s security and intelligence mission.
The GoblinGlider (GG) Python/SDR SWE is focused on mission critical system development, deployment and evolution. This role involves developing robust applications in a Linux environment, emphasizing the integration of DevSecOps practices. The ideal candidate will have experience with CI/CD pipelines, Docker, Kubernetes, and Git, as well as a strong understanding of RF signals, particularly those related to satellite technologies.
- Responsibilities:
- The Software Engineer 2 develops, maintains, and enhances 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.
- 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.
Primary functions of this position:
- Software Development:
- Design, develop, test, and maintain applications using Python for software-defined radio technologies, focusing on GNU Radio-like and REDHAWK frameworks.
- HELM for Kubernetes Management:
- Utilize Helm to manage and deploy applications within Kubernetes environments, ensuring effective scaling and orchestration of SDR-related services.
- DevSecOps Integration:
- Collaborate with security teams to incorporate security practices throughout the software development lifecycle, including threat modeling, vulnerability assessments, and automated security testing.
- Continuous Integration and Continuous Development (CI/CD):
- Build and maintain CI/CD pipelines to automate testing, integration, and deployment processes, ensuring reliable and efficient software delivery.
- Containerization:
- Leverage Docker for containerizing applications, creating consistent environments for development, testing, and production.
- Version Control:
- Manage source code using Git, employing effective branching strategies, pull requests, and code reviews to uphold high code quality.
- RF Signal Knowledge:
- Apply understanding of RF signal processing, specifically related to satellite signals, to inform the design and implementation of SDR applications.
- Collaboration:
- Work closely with cross-functional teams, including product management, QA and operations to gather requirements, troubleshoot issues, and deliver solutions that meet user needs.
- Documentation:
- Maintain thorough documentation for code, processes, and architecture to facilitate knowledge sharing and ensure best practices.
- Continuous Improvement:
- Stay current with industry trends and emerging technologies in SDRs, RF communications, and DevOps, advocating for best practices in software development and security.
Desired Skills:
- Proficiency in Python for software development within a Linux environment.
- Experience with Helm for managing Kubernetes applications.
- Strong understanding of GNU Radio and REDHAWK frameworks.
- Familiarity with DevSecOps principles and practices.
- Hands-on experience with CI/CD tools (e.g. Jenkins, GitLab CI, CircleCI).
- Proficient in Docker for containerization and orchestration.
- Networking and RF Knowledge:
- Familiarity with RF signal processing, particularly with satellite signals and related technologies.
- Understanding of networking concepts and protocols relevant to SDR applications.
- Strong analytical and problem-solving abilities.
- Excellent communication and collaboration skills.
- Adaptability and a commitment to continuous learning and improvement.
Requirements:
- 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 environment.
- 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.
Clearance Required:
- Active TS/SCI with Polygraph
Minimum Education:
- A Bachelor’s or Master’s degree in Electrical Engineering, Computer Engineering, Applied Mathematics, Computer Science, Physics or a related discipline from an accredited college or university is required. Four (4) years of additional SWE experience may be substituted for a Bachelor’s degree.
Minimum Years of Experience:
- Fourteen (14) years experience as a SWE in programs and contracts of similar scope, type, and complexity is required.
#INDTech
Job Type: Full-time
Pay: $147,392.00 - $253,000.00 per year
Benefits:
- Employee assistance program
- Flexible spending account
- Health savings account
- Professional development assistance
- Referral program
- Retirement plan
- Tuition reimbursement
Schedule:
Application Question(s):
- Do you have 14 Years Experience of software engineering?
- Do you have experience in Python?
- Do you have experience working in Linux?
- Do you have a TS/SCI with Polygraph (**)?
Ability to Commute:
- Fort Meade, MD 20755 (Preferred)
Ability to Relocate:
- Fort Meade, MD 20755: Relocate before starting work (Preferred)
Work Location: In person