CIRES/NOAA GSL Software Engineer

University of Colorado Boulder
Colorado, United States
Salary Not Specified
Sep 21, 2020
Employment Type
Full Time

Job Summary

NOAA’s Global Systems Laboratory (GSL) is crafting, developing, and testing new weather prediction models to improve prediction of severe weather including hurricanes, tornadoes, thunderstorms, flooding, and other weather. Such severe weather can have an enormous impact on transportation, commerce, energy, and other sectors of the U.S. economy. Improved weather and climate prediction are increasingly important as extremes become more normal. Increasingly accurate forecasts depend on very large high-performance supercomputers to run sophisticated weather prediction models that are being developed.

The High Performance Computing (HPC) Branch is exploring techniques to build the most sophisticated prediction models that run optimally on exascale supercomputers that are expected to have hundreds of thousands to millions of processors in the next decade. As part of the work, researchers are exploring new software techniques and scientific programming languages that offer improved performance, portability, and composability to reduce the time required to develop, test, debug and sustain large, sophisticated software systems. Weather prediction models are commonly written in Fortran, an old but powerful, imperative style programming language crafted for scientific programming. New languages such as Julia, Legion, Chapel, and Kokkos offer potential benefits over Fortran that need to be evaluated in terms of performance, portability, ease of use, and ability to engage early-career scientists and software engineers.

The HPCS is looking for an entry-level software developer who can explore and evaluate modern computer languages! Initial tasking will be to transform a Fortran or C++ code into Julia and compare performance, portability, ease-of-use, and other metrics. The incumbent will work under the mentorship of a senior software engineer who will establish day-to-day tasks and set longer-term goals and priorities. Duties include developing scripts and test procedures, using software repositories, parallelizing codes for high-performance, porting, running codes, and comparing results.

The position will be an opportunity to participate in scientific research and work with staff tasked with advancing the state-of-the-art computing, meteorology, and climate research at NOAA.
The University of Colorado Boulder is committed to building a culturally diverse community of faculty, staff, and students dedicated to contributing to an inclusive campus environment. We are an Equal Opportunity employer, including veterans and individuals with disabilities.

Who We Are

At CIRES, the Cooperative Institute for Research in Environmental Sciences, more than 800 environmental scientists work to understand the dynamic Earth system, including people’s relationship with the planet. CIRES is a partnership of NOAA and CU Boulder, and our areas of expertise include weather and climate, changes at the Earth’s poles, air quality and atmospheric chemistry, water resources, and solid Earth sciences. Our vision is to be instrumental in ensuring a sustainable future environment by advancing the scientific and societal understanding of the Earth system.

Global Systems Laboratory Website:

What Your Key Responsibilities Will Be

  • Learn Fortran and Julia programming languages
  • Transform small to increasingly sophisticated codes and evaluate
  • Explore and evaluate new programming styles including task parallelism, and object-oriented methods that may offer benefits over traditional approaches
  • Work with scientists, software engineers, and performance specialists to evaluate capabilities
  • Learn and apply parallelization techniques in order to run on multiple processors

What You Should Know

This position will be rostered in CIRES at CU Boulder but will be physically situated in the David Skaggs Research Center, 325 Broadway, Boulder, CO 80305. If you are the selected finalist you will be required to pass a federal laboratory background clearance for site access.

What We Can Offer

We can offer a competitive salary and a comprehensive benefits package.


The University of Colorado offers excellent benefits , including medical, dental, retirement, paid time off, tuition benefit and ECO Pass. The University of Colorado Boulder is one of the largest employers in Boulder County and offers an inspiring higher education environment. Learn more about the University of Colorado Boulder .

Be Statements
Be Authentic. Be Collaborative. Be Boulder.

What We Require

  • Bachelor's degree
  • Experience with at least one modern programming language
  • Experience with the following:
    • The Linux or Unix operating systems and using C-shell, K-shell, or similar
    • Software development including the ability to make and maintain software repositories, checkout and commit code, test changes, document code, and verify results

What You Will Need

  • Understanding and experience developing code, testing, and evaluating results.
  • Understanding of the software development process.

What We Would Like You To Have

  • Parallel programming skills.
  • Experience with OpenMP, OpenACC, and MPI.

Special Instructions

To apply, please submit the following materials:
  1. Resume or CV
  2. Cover letter addressed to the Search Committee briefly describing your qualifications, professional goals, and specific interest in this position.
  3. List of contact information for 3 references who will be willing to write a confidential Letter of Recommendation for you.

If you are selected as the finalist, your degree will be verified by the CU Boulder Campus Human Resources department using an approved online vendor. If your degree was obtained outside of the United States, please submit a translated version as an optional attachment if applicable.

Applications will be reviewed as they are received. Position will remain posted until filled.

Note: Application materials will not be accepted via email. For consideration, applications must be submitted through CU Boulder Jobs .

Posting Contact Information

Posting Contact Name: Christopher Harrop

Posting Contact Email:

Similar jobs

Similar jobs