Our Reston office is seeking talented programmers with strong computer science, math, and/or physics backgrounds for complex and challenging projects. As a Software Engineer, you will be responsible for writing software that incorporates probabilistic models of physical systems. Project teams range from 2 to 20 people and include a mix of Research Scientists and Software Engineers. Each team member is involved in the entire problem-solving process, from initial concept through data visualization and analysis, algorithm design, exploratory prototyping, software implementation, demonstration, and deployment. Roles within a team are flexible, giving employees space to contribute in their areas of strength, and to develop new skills. The ideal candidate has experience writing well-designed, maintainable, and extensible code.
Required Qualifications
- Bachelor’s or Master’s degree in Computer Science, Mathematics, Physics, Applied Math, or related field
- Java programming experience preferred
- Additional languages a plus: TypeScript, Go, Clojure, Scala, Kotlin, Python, Matlab, R, Julia, C, C++, Zig, Rust, Haskell, Erlang, etc.
- Experience writing algorithmic code, including complexity analysis, performance optimization, and multithreading
- Math background including Probability/Statistics, Linear Algebra, Multivariate Calculus
- Experience designing and implementing user interfaces
- OpenGL and/or WebGL experience a plus
- Ability to communicate design concepts and performance metrics clearly
- US CITIZENSHIP REQUIRED (successful candidates will undergo a background check for Secret Clearance)
Position Location: Reston, VA