About the Company
STR develops software and technology solutions that address complex national security challenges. Its multidisciplinary teams include software engineers, physicists, mathematicians, and data scientists who transform research concepts into mature, deployed systems.
The Knowledge Exploitation & Decisions Systems Group works at the intersection of artificial intelligence and human decision-making. Its projects include Command and Control systems, human-machine interfaces, simulation platforms for testing autonomous systems, graph-based reasoning, evolutionary algorithms, workflow optimization, and language model applications.
About the Role
STR is seeking a Software Engineer to develop scalable software for national security applications. The engineer will work on distributed computing, mission planning, artificial intelligence, autonomous systems, and decision-support technologies.
The role involves taking ownership of software features, moving research and development concepts into production environments, and collaborating with engineers, scientists, and end users.
The position is hybrid and based at STR’s office in Woburn, Massachusetts, or Arlington, Virginia. Periodic travel of up to 20% is required.
Responsibilities
- Design and implement flexible microservices and high-performance APIs.
- Develop software within a DevSecOps environment.
- Build resilient distributed computing solutions for tactical-edge environments.
- Take technical ownership of features within a mission planning solution.
- Support the transition of software features from research and development into active use.
- Collaborate with scientists, engineers, and end users.
- Translate mission requirements into scalable, production-grade software.
- Work across projects based on individual interests and STR’s evolving research and development portfolio.
- Turn high-level requirements into working technical implementations with limited supervision.
- Build foundational software components with rigorous testing.
Requirements
- Bachelor’s or master’s degree in Computer Science or a related technical field.
- At least 3 to 5 years of professional experience for candidates with a bachelor’s degree.
- At least 1 to 2 years of professional experience for candidates with a master’s degree.
- Experience building maintainable and well-documented software and APIs.
- Proven Scala proficiency or strong experience with another typed functional programming language.
- Strong understanding of functional programming and type-driven algebraic design.
- Knowledge of immutability, pure functions, type classes, and functional core and imperative shell architecture.
- Ability to develop correct, maintainable, and well-documented software.
- Understanding of or interest in eventual consistency, replication, and distributed system correctness.
- Ability to reason about message loss, reordering, duplication, and network partitions.
- Experience with or interest in property-based testing and simulation.
- Ability to work independently and manage ambiguous requirements.
- Ability to learn unfamiliar programming languages and libraries.
- U.S. citizenship.
- Active DoD SECRET security clearance.
Preferred Qualifications
- Experience with conflict-free replicated data types, including state-based, operation-based, or delta-state CRDTs.
- Understanding of join-semilattice models.
- Familiarity with peer-to-peer or epidemic protocols.
- Knowledge of gossip, anti-entropy, SWIM-style failure detection, HyParView, Plumtree, or Kademlia-style distributed hash tables.
- Experience with low-bandwidth set reconciliation and probabilistic data structures.
- Familiarity with PinSketch, minisketch, invertible Bloom lookup tables, or Merkle digests.
- Understanding of finite-field mathematics.
- Experience with delay-tolerant or disruption-tolerant networking.
- Experience with deterministic simulation testing and property-based testing.
Technology Stack
- Scala 3 LTS
- JDK 21 or later
- Cats Core
- Linux
- Docker
- Kubernetes
- GitLab
- OpenTelemetry
- SLF4J
- Logback
- Python
