Principal Software Engineer
Role details
Job location
Tech stack
Job description
As a Principal Software Engineer, you will work as part of a tightly knit team to design, develop, implement, integrate, test, and demonstrate advanced algorithms and software systems for autonomous platforms. You will provide technical leadership and mentoring on programs working throughout the software and system development lifecycle, from early prototypes to integrated systems. Your work will develop a diverse set of software tools and applications for mission planning systems, automated control processes, unmanned platforms, DevSecOps, and CI/CD pipelines. This position is based in Woburn, MA, or Arlington, VA, and will take advantage of STR's flexible, hybrid environment - when the work does not require use of STR's facilities, you are welcome to work remotely.
Requirements
-
U.S. Citizen with ability to get a security clearance
-
BS in Computer Science or related technical field with 10+ years' experience
-
8+ years experience with C++ or Java
-
Proven understanding of data structures, algorithms, concurrency, and code optimization
-
Proven ability to lead and manage moderate size engineering teams (5-10 engineers) through complete Agile development lifecycle including task definition, delegation, and maintenance
-
Proven ability to lead and manage moderate size engineering teams (5-10 engineers) through complete Agile development lifecycle including task definition, delegation, and maintenance
-
Demonstrated success driving industry best practices in areas such as code review, unit testing, test coverage, static analysis, etc., to ensure mature, high quality software products
-
Experience in leading system/software architecture design
-
Comfortable working both with internal leadership and external customers in the development and execution of software product plans
-
Experience utilizing the following:
- Object-Oriented Programming principles
- Agile software lifecycle methodologies and tools, such as JIRA and Sonarqube
- Test-driven development methodologies
- A demonstrated ability to adopt new languages, libraries, and technologies
- Proven ability to develop, implement, integrate, and test autonomy algorithms and software
Even Better:
-
MS or PhD in Computer Science or related technical field
-
Experience with the following:
-
Collection Orchestration
-
Satellite Constellation Management
-
Coordinating Electronic Warfare resources
-
Reinforcement learning
-
Agentic AI
-
TCPED Management for Tactical ISR
-
Experience programming for embedded and physical devices
- Multi-agent coordination of UxVs
- MAVLINK or other C2 protocols
- Unreal Engine modeling
- ROS
- TAK
- DevSecOps and CI/CD tool chains
- Integration of complex software systems
- Constraint satisfaction algorithms
- Knowledge representation/ontologies
- Python
- Active Security Clearance