Research Software Engineer

Job Summary

The Climate Modeling Alliance (CliMA) is seeking a Research Software Engineer to develop, implement, and integrate components of the first Earth system model (ESM) that automatically learns from global observations and targeted high-resolution simulations of clouds, turbulence, and other elements of the Earth system. As a CliMA Research Software Engineer at Caltech, you will work in a dynamic, multi-disciplinary team of curious and creative scientists, engineers, and applied mathematicians, spanning the CliMA partner institutions.

Job Duties

  • Work on an ambitious, high-profile scientific project with an opportunity to impact the climate sciences worldwide.
  • 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 and your domain-specific expertise 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 in collaboration with experts in GPU programming, language design, compiler development, parallel high-performance computing, and numerical techniques.
  • 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.
  • Work in a friendly and diverse working environment, collaborating closely with researchers in climate science, machine learning, and applied mathematics.

Basic Qualifications

  • Completed a BS degree or equivalent experience in computer science, applied mathematics, mechanical or civil engineering, or Earth science.
  • Demonstrated expertise in numerical methods for partial differential equations, through coursework and/or research experience.
  • Experience developing large software projects in a distributed fashion, e.g., contributing to an open source project with distributed contributors.
  • Experience with at least two programming languages (e.g., C/C++, Fortran, C#, Objective C, Python, Julia, Matlab/Octave).

Preferred Qualifications

  • A graduate degree in computer science, applied mathematics, mechanical or civil engineering, or Earth science.
  • Experience working with high-performance computing systems, including multicore processors and GPUs or other accelerators.
  • Experience in physics, computational fluid dynamics, and/or machine learning.
  • Experience working in multi-disciplinary teams and interacting cross-functionally with a wide variety of people.

Required Documents

  • Resume
  • A brief (less than one page) statement of interests