Research Software Engineering

Do you need help

Or perhaps you need something more low-level, like

  • configuring a build system with CMake,
  • updating Fortran 77 code to object-oriented Fortran 2003+,
  • speeding up underperforming Python code with Cython, or
  • setting up a model to run on the CSDMS HPC?

Or are you more looking for training?

CSDMS research software engineers (RSEs), with backgrounds in quantitative earth sciences and expertise in scientific software development, can help.

Research Software Engineering as a Service

CSDMS bridges the gap between science and software, empowering earth scientists to create sustainable code that is well tested, maintainable, modular, and robust, by providing the community with one-on-one consulting with a CSDMS research software engineer. We call this consulting service Research Software Engineering as a Service (RSEaaS). On an ongoing basis, CSDMS will review requests for RSEaaS support, and allocate resources based on need and impact. To be eligible, projects must be open source and must address broader CSDMS goals. RSEaaS is an efficient, cost-effective way to jump-start a project.

For more information, consulting rates, or to submit a request for RSEaaS support, please contact us at

Proposal Collaboration

Scientists planning to develop code to answer outstanding research questions are invited to collaborate with CSDMS. Creating a new model or analysis tool typically demands a significant investment of time. An experienced CSDMS research software engineer can reduce this time investment, saving you money, plus the resulting code will be flexible, interoperable, robust, and reusable. Depending on the needs of your project, we invite you to discuss options for including work with a CSDMS research software engineer, either through a collaborative proposal or a subaward.


We teach a variety of programming and modeling skills workshops, ranging from one- or two-day Software Carpentry workshops to short courses on earth surface process modeling with Landlab and the Python Modeling Toolkit (pymt). Lessons are derived from the CSDMS Ivy course material and presented on the OpenEarthscape JupyterHub, a scalable hosting platform with simple access control for instructors and students. The CSDMS research software engineers (RSEs) have research backgrounds in quantitative earth sciences and expertise in scientific software development, so the courses and workshops we teach can be tailored for a technical focus; for example, we can teach programming best practices, model development, and model coupling with the CSDMS Workbench. Further, we have experience teaching introduction to modeling with hands-on clinics for advanced undergraduates and beginning graduate students.

For more information, as well as examples of previous successful collaborations, please contact us at