Software Engineer
Caltech · Pasadena, CA · 4 days ago
On-siteEngineering$85k–$135k/yrFull-time
Job Summary
We are seeking a Software Engineer to develop, implement, and integrate components of the first Earth system model (ESM) that learns automatically from Earth observations and targeted high-resolution simulations of clouds, turbulence, and other elements of the Earth system. As a Climate Modeling Alliance (CliMA) Software Engineer at Caltech, you will work in a dynamic, multidisciplinary team of curious and creative scientists, engineers, and applied mathematicians, spanning the CliMA partner institutions.
Essential Job Duties
- Analyze problems, formulate mathematical models, and implement software solutions at the interface of computational science, applied mathematics, fluid dynamics, and Earth system science.
- Apply your expertise in computational science to design and develop innovative high-performance software suitable for the next generation of supercomputing hardware with heterogeneous manycore architectures.
- Develop and implement innovative software solutions to climate modeling problems that represent the state-of-the-art in high-performance computing and are performant on GPUs.
- Contribute to the design, performance specification, and development of an integrated open-source software system using modern languages and development techniques to ensure code health, scalability, and robustness.
- Manage and coordinate software projects involving scientists, applied mathematicians, and engineers.
Basic Qualifications
- Completed a BS degree or equivalent degree in a quantitative field such as computer science, applied mathematics, physics, engineering, or Earth science.
- Experience with at least two programming languages (e.g., C, C++, C#, Fortran, Python, Julia, Rust).
- Experience developing large software projects in a distributed fashion, e.g., contributing to an open source project with distributed contributors.
Preferred Qualifications
- Familiarity with the Julia language, including package development and performance optimization.
- Experience working with high-performance computing systems, including multicore processors, GPUs, or other accelerators.
- Demonstrated expertise in numerical methods for partial differential equations and/or computational fluid dynamics, through coursework and/or research experience.
- Experience working in multi-disciplinary teams and interacting cross-functionally with a wide variety of people.