Software Engineer - Numerical and Scientific Computing
Anduril is a defense technology company, bringing Silicon Valley talent and funding to the defense sector. Our technology helps our customers solve their toughest challenges by enabling them to make better, more informed decisions in life-and-death situations. We’ve assembled a diverse team of experts in artificial intelligence, computer vision, sensor fusion, optics, and data analysis that are creating software and hardware solutions to radically evolve the capabilities of the United States and our allies. If you are passionate about solving problems that have real impact, come join Anduril and build the future of defense.
We're searching for mathematically-inclined generalist software engineers to solve scientific computing problems. You'll be applying both first principles and machine learning techniques to a wide variety of numerical problems in detection, tracking, controls, and sensor fusion. Solutions will be targeted at platforms from large highly-parallel machines to ultra-low-power edge-computing environments. Familiarity with lightweight formal methods for software development like strongly-typed functional programming and property-based testing are desirable differentiating factors.
You will develop and implement techniques for processing sensor data to yield invaluable intelligence to customers. Our team works with a wide variety of sensor technologies spanning radar, multispectral imaging, and inertial measurement. We implement detection, tracking, localization, and task planning strategies for autonomous agents.
Qualifications:
- BS/MS/PhD in a STEM field.
- Working knowledge of linear algebra, differential equations, and statistical techniques.
- Experience programming, debugging, and profiling C/C++ systems in a Linux environment.
- Ability to leverage academic work for a practical and commercial setting, i.e. implementing techniques described in research literature for rapid productization.
- Experience in a strongly typed functional programming language (Haskell, Ocaml/ML-family, Coq, Agda, Idris).
- Experience with property-based testing techniques (QuickCheck, SmallCheck, related libraries).
- Experience with GPGPU programming or other heterogeneous computing environment.
Differentiating Factors:
- Experience with real-time localization and/or mapping problems.
- Experience developing parallel programs for execution on massively-parallel hardware (GPU, FPGA, etc.).
- Knowledge of: Finite element analysis, Inverse problems, Parameter estimation for stochastic differential equations, Bayesian inference.
- Knowledge of LLVM or other machine code generation techniques.
- A focus on delivering safe and reliable software systems.
- Ability to collaborate closely with electrical and mechanical engineers on hardware requirements gathering, design, and testing.
U.S. Person status is required as this position needs to access export controlled data.