Software Engineer II / III Position - JCSDA (Boulder, CO)

Foothills Lab 4
Location: Boulder, CO.

Type: Full time, exempt.

Position Term: Regular, no term.

Application Deadline: This position will be posted until Sunday, July 18th.

Relocation: Relocation assistance is available for this position.

Work Authorization: UCAR/NCAR will sponsor a work visa to fill this position.

Salary:
Level II Hiring Range $72,935 - $91,170
Full Salary Range $72,935 - $91,170 - $118,520
Level III
Hiring Range $97,404 - $121,754
Full Salary Range $97,404 - $121,754 - $158,282

Benefits: UCAR affirms its continuing commitment to developing, providing, and administering its employee benefit programs with due consideration for equal employment opportunity and diversity guidelines. UCAR’s rich package of employee benefits includes medical, dental, vision, education assistance, retirement, and life insurance. UCAR offers a variety of programs designed to assist with work-life balance including flexible work alternatives, paid time off and 14 weeks of paid parental leave.
Where You Will Work:

The JCSDA is a multi-agency research center, hosted by the University Corporation for Atmospheric Research (UCAR) and UCAR Community Programs (UCP), committed to improving and accelerating the quantitative use of research and operational satellite data in weather, ocean, climate and environmental analysis and prediction systems. The interagency partnership assimilates many types of data from conventional and satellite sources by creating integrated modeling systems. The JCSDA transitions this research to operational and university communities through a robust data infrastructure and open-source software.

What You Will Do:

This position is under the Joint Center for Satellite Data Assimilation (JCSDA) and provides partial support for the Joint Effort for Data assimilation Integration (JEDI). The JEDI project is an inter-agency effort aimed at developing a unified community Data Assimilation (DA) system providing initial conditions for research and operational models in Earth system prediction. This position contributes to generic code developments and provides support for integrating and supporting FV3-based models into JEDI.

Earth system prediction is among the most challenging and beneficial of scientific software applications, pushing the limits of high-performance computing (HPC) systems and delivering great societal impact and value. Operational weather forecasting systems, including data assimilation, run on HPC systems under strict time constraints and have to be extremely reliable. They achieve this through the use of efficient mathematical algorithms with highly optimized and well tested software, running across thousands of processors. However, requirements for better forecasts always create new challenges for adding more advanced science and more observations into the system, while maintaining reliability and efficiency. JEDI will be required to meet and exceed current capabilities, both scientifically and computationally, and to make best possible use of emerging computer technologies, from accelerators to cloud computing.

The Software Engineer will be in charge of evaluating the computational performance of the JEDI system and optimizing the code to meet required operational constraints, preparing it for use in a wide range of applications including NOAA’s operational system. This work will be done in collaboration with other developers within the JCSDA and its partner agencies. Optimization might involve improving the strategies used to distribute data across processors, assessing a mixed double and single precision approach, adding threading to the code base, overlapping computation and communication, optimizing the use of parallel input/output to disc or non-volatile storage (e.g. NVMe) and general optimization to reduce duplicate data and data copying.

This position will be located at UCAR FL4 in Boulder, CO.

Responsibilities:

For the Software Engineer II level, the duties outlined below would be performed with significant supervision, while the Software Engineer III level would be expected to perform these duties with less supervision and more autonomy.

Optimize JEDI application codes with respect to parallelization, local computational efficiency, memory usage and scalability on HPC and cloud computing platforms in collaboration with other software engineers and scientists at JCSDA and partner agencies.
Evaluate computational performance of JEDI applications and identify performance bottlenecks with regard to computational efficiency, memory usage, and scalability within the context of operational and research constraints to guide optimization work.
Work with other JEDI developers, users, and partner agencies to define application benchmarks, formulate performance deliverables, and develop collaborative strategies to achieve those deliverables.
Writes and presents documentation material in workshops, tutorials and training events to JCSDA partners and the broader user community
DECISION MAKING & PROBLEM SOLVING - i.e., types of problems that are solved independently

In consultation with supervisor, makes decisions about computer code and software development related to efficiency, portability and genericity. Typically, these will include:

Assessing code performance and identifying bottlenecks
Taking a logical and methodical approach to tracking down problems in software
Formulating optimization strategies and communicating progress to team members and stakeholders
What You Need:

Education and Years of Experience:

REQUIRED:

Bachelor’s degree in computer science, mathematics, engineering, or a field of physical science; and 4-8 years of experience in a related technical area for level II, 8 years or more for level III.

KNOWLEDGE/SKILLS/ABILITIES

Software Engineer II:

Required:

Excellent programming skills in C++ and Fortran
Experience running and profiling applications on high performance computing (HPC) platforms
Experience programming and optimizing large parallel applications (MPI, OpenMP)
Knowledge of code profiling and debugging tools such as ARM DDT and MAP, Totalview, VTune, Valgrind, gdb, etc.
Knowledge of modern software engineering practices (source code management, continuous integration, issue tracking, agile software development)
Good English language communication skills, ability to communicate with software engineers and scientists
Ability to work well within a diverse and multidisciplinary team
Desire to actively promote good software development practices
Organizational skills to track, monitor, and assess code performance improvements over time
Desired knowledge, skills, and abilities:

Experience optimizing code for accelerators (e.g. GPUs)
Scientific background in modeling or data assimilation
Knowledge of operational weather forecasting
Experience with bash scripting, python, and CMake
Experience with cloud computing and software containers
Software Engineer III:
In addition to the requirements for a Software Engineer II

Extensive expertise running and profiling applications on high performance computing (HPC) platforms
Extensive expertise optimizing large parallel applications (MPI, OpenMP)
Extensive experience implementing modern software development practices (object-oriented and generic design, source code management, continuous integration, issue tracking, agile software development, portability)
Extensive expertise in one or more of the “Desired knowledge, skills, and abilities” listed above
Applicant Notes:

The position may require work-related travel to conferences, code sprints, and JCSDA partner organizations (pending Covid-19 related restrictions).
This position is subject to work location requirements for obtaining access to facilities and research systems. These requirements may include a combination of national security checks, credit checks, fingerprinting, or other security clearance or work authorization requirements.
A cover letter is required with the submission of the application.
Non-risk based position: A pre-employment screening is conducted in conjunction with an offer for employment. This screening may involve verifying or reviewing any of the following relevant information: restricted parties screening, employment verification, performance records of internal candidates, education verification, reference checks, verification of professional licenses, certifications, and Motor Vehicle Records. UCAR complies with the Fair Credit Reporting Act (FCRA).