Scientific Software Developer
Job Description
Stellar Science is hiring a Scientific Software Developer in Dayton, OH (onsite) to collaborate with both software and domain experts. The role focuses on designing and implementing software for complex real-world problems across areas such as computer vision, modeling, HPC, space domain awareness, and machine learning, with an emphasis on modern C++ development.
Responsibilities
- Partner with software and domain experts to design and implement software that addresses complex real-world challenges.
- Build and support software across cutting-edge technical domains, including computer vision, atmospheric and physics-based modeling, high-performance computing (HPC), space domain awareness, and machine learning.
Requirements
- B.S. or advanced degree (M.S./Ph.D.) in computer science, math, science, or an engineering field.
- Strong experience with object-oriented development and C++ programming.
- Enthusiasm for, or interest in adopting, modern C++23 practices (highly valued).
- A track record of learning new paradigms and a desire to produce clean, high-quality code.
- U.S. citizenship and willingness to undergo a background investigation.
- Ability to perform some work at government and/or customer sites in Dayton, OH.
Technologies
The work may involve C++, C++23, Python, Java, TypeScript, C++ Boost, Eigen, OpenMP, MPI, GPUs/CUDA, Linux, Windows, OpenGL, Vulkan, WebGL, Qt, and Material UI, along with domain and data/ML tools such as AFSIM, PyTorch, TensorFlow, NumPy, and pandas.
Skills We Use (Experience in Any Is a Plus)
- Programming with Python, Java, TypeScript, C++ Boost, or Eigen.
- Supercomputing development using OpenMP, threads, MPI, and GPUs/CUDA.
- Cross-platform development across Linux and Windows.
- 3D graphics using OpenGL, Vulkan, or WebGL.
- User interface development with Qt and Material UI.
- Physics or aerospace modeling, orbital mechanics, directed energy, or simulation frameworks such as AFSIM.
- Machine learning and data analysis using PyTorch, TensorFlow, NumPy, and pandas.
Interview Process
- A representative sample of your code will be requested early in the evaluation process.
- The sample can come from work, a class, or a personal project built for learning.