University Corporation for Atmospheric Research Software Engineer/Programmer II in Boulder, Colorado

Software Engineer/Programmer II

Tracking Code


Job Description

Job Title: Software Engineer/Programmer II

Location: Boulder, Colorado

Type:Full-time, Exempt

Position Term: This is a 1-year term position, with possibility of extension.


No relocation package is offered for this position.

Work Authorization:

U.S. Citizenship, Permanent Residency, or other protected status under 8 U.S.C. 1324b(a)(3) is required for this position.

UCAR/NCAR will not sponsor a work visa (e.g., J-1, H1-B, etc.) for this position.

Where You Will Work:

Located in Boulder, Colorado, the National Center for Atmospheric Research (NCAR) is one of the world’s premier scientific institutions, with an internationally recognized staff and research program dedicated to advancing knowledge, providing community-based resources, and building human capacity in the atmospheric and related sciences. NCAR is sponsored by the National Science Foundation (NSF) and managed by the University Corporation for Atmospheric Research (UCAR).

What You Will Do:

This position is based in the Joint Numerical Testbed (JNT) Program of the Research Applications Laboratory (RAL) at the National Center for Atmospheric Research (NCAR). The role of the JNT is to provide a resource focused on the testing and verification of potential changes to state-of-the-art data assimilation and Numerical Weather Prediction (NWP) systems applied in real-world applications. The JNT is responsible for developing the Model Evaluation Tools (MET), which is a suite of verification tools written primarily in C++ and used to statistically evaluate the output of NWP models.

The incumbent is responsible for maintaining, enhancing, and supporting the MET software for internal NCAR and external users in a rapid prototyping environment. The MET software exists in the context of a larger METplus system which includes Python scripts for automating its application and the Java-based METviewer database and display system for visualizing its output. The incumbent collaborates with scientists, statisticians, and software engineers from the JNT, RAL, NCAR, or the broader NWP community to implement new verification algorithms, apply them to testing and evaluation projects, incorporate them into METplus use cases, and assist in the interpretation of results.


  • MET Development:Implements and tests new features in C++ for the MET software suite. Coordinates software modifications and regression testing with other team members.

  • METplus Development:Assists in the implementation and testing of new MET features in the METplus Python scripts. Assists in incorporating new MET output into the METviewer database and display system.

  • Testing and Evaluation:Assists in the application of the METplus system to JNT testing and evaluation projects across multiple platforms and environments. Automates systems and evaluations using a combination of Python, shell scripts, and the Rocoto workflow management package.

  • Support:Assists in providing technical support to the MET user community via the MET-Help email system and by assisting in the presentation of tutorials on its use.

  • Documentation:Writes and maintains JNT and community software engineering documentation, including users’ guides, web pages, and tutorials. Presents and publishes results of work at relevant conferences and workshops.

What You Need:

Education and Years of Experience:

  • B.S. degree in computer science, engineering, or applied mathematics and 4 – 8 years of progressive, relevant experience in the area of scientific or statistical applications development;

  • Or, an equivalent combination of education and experience.

Knowledge, Skills, and Abilities:

  • Demonstrated skill programming in C/C++, Python, and shell scripts in a Linux or Unix environment.

  • Knowledge of code management practices and software (e.g. Subversion and Git).

  • Good oral and written communication skills.

  • Strong skills working collaboratively on a team.

Desired Knowledge, Skills, and Abilities:

  • Knowledge of operational NWP systems and scientific/meteorological data formats (NetCDF, GRIB).

  • Knowledge of basic statistics and exposure to the R statistical programming language.

  • Knowledge of the Python/C API.

  • Knowledge of Java and JavaScript, used by METviewer.

  • Knowledge of a variety of compilers (GNU, PGI, Intel).

  • Knowledge of programming in FORTRAN.

  • Knowledge of TeX or LaTeX-based documentation tools.

  • Demonstrated aptitude for public speaking to scientific and technical audiences.

What’s in it for You:

  • Compensation

  • PTO

  • Paid Holidays

  • Tuition Reimbursement

  • Benefits (Medical, Dental, Vision)

  • Retirement Plan

  • And more!

EEO/AAP Statement:

The University Corporation for Atmospheric Research (UCAR) is an equal opportunity/equal access/affirmative action employer that strives to develop and maintain a diverse workforce. UCAR is committed to providing equal opportunity for all employees and applicants for employment and does not discriminate on the basis of race, age, creed, color, religion, national origin or ancestry, sex, gender, disability, veteran status, genetic information, sexual orientation, gender identity or expression, or pregnancy.

Whatever your intersection of identities, you are welcome at the University Corporation for Atmospheric Research (UCAR). We are committed to inclusivity and promoting an equitable environment that values and respects the uniqueness of all members of our organization.

Job Location

Boulder, Colorado, United States

Position Type


Appointment Type

Term Full-Time (T1)