Principal Software Engineer
Job Description
Join a team building mission-critical software for the United States Army’s Integrated Air and Missile Defense (IAMD) Battle Command System (IBCS), supporting Engagement and Track Management Agile Software Teams. You will design, develop, sustain, and test robust, secure, scalable solutions in a SAFe Agile environment, working onsite in Huntsville, AL.
What you’ll work on
As a Principal Software Engineer, you will contribute to Global C2 mission capabilities by delivering logical and mathematical solutions through well-engineered applications and software systems. The role includes development across multiple software baselines and support for software sustainment, testing, and documentation updates.
Responsibilities
- Design, develop, document, test, and debug applications and software systems implementing logical and mathematical solutions for Global C2 missions.
- Operate in a fast-paced environment with diverse assignments and collaborative work across all levels of the organization.
- Participate on SAFe Scrum teams to develop and maintain software products across multiple software baselines.
- Deliver technical solutions for complex problems aligned to program objectives, using approaches that are imaginative, thorough, and practicable.
- Adapt to evolving mission and program needs, including learning new technologies and working outside your comfort zone as required.
- Perform software development and upgrades across multiple programming languages and versions while minimizing changes to the operational behavior of tactical software.
- Support Help Desk-like troubleshooting on software test lines and environments.
- Provide software sustainment support including log file maintenance, RTI/DDS publish/subscribe configuration, software version tracking, data recording and playback, and Interactive Data Language (IDL) management.
- Create and update documentation using Markdown and other collaboration tools.
- Support testing activities including unit and functional testing, code coverage analysis, and static code analysis.
Requirements
- Principal Software Engineer qualification: Bachelor’s degree in a STEM field and at least 5 years of relevant experience, or Master’s degree in a STEM field and 3 years of relevant experience, or PhD in a STEM field and 0 years.
- Strong software development experience with Java (approximately 50% of effort) and C++ (approximately 50% of effort).
- Bash skills including SSH and SCP.
- Perl and Python experience.
- Proficiency in Linux-based development and runtime environments.
- Experience with modern configuration management and source control tools such as Git / GitLab.
- Knowledge of encryption techniques and data-at-rest preservation.
- Current CompTIA Security+.
- Active Secret Clearance.
Helpful experience (preferred)
- Experience with Model-Based Systems Engineering (MBSE), including Cameo or similar tools.
- Hands-on experience with automated testing frameworks, continuous integration, and test automation.
- Experience with Jenkins or similar CI/CD pipelines.
- Experience supporting real-time or distributed systems using RTI/DDS publish/subscribe middleware.
Benefits
- BC/BS Health
- Dental
- Vision
- 401(k) match
- Profit Sharing
- Flexible Time Off
- STD/LTD/Life Insurance
- Referral Bonuses
- Professional development reimbursement
- Vacation
- Sick leave
- Maternity/paternity leave
Technologies you may use
Java, C++, Bash, SSH, SCP, Perl, Python, Linux, Git, GitLab, Markdown, RTI/DDS publish/subscribe middleware, RTI/DDS, Interactive Data Language (IDL), SAFe Scrum, Jenkins