Information Technology

Scientific Applications Programmer (Remote)

Preferable Location(s): College Park, United States of America
Work Type: Full Time



RedLine is looking for a candidate to support the Environmental Modeling Center (EMC) of the National Centers for Environmental Prediction (NCEP) in carrying out research, development, and operational transition of ingest, processing, quality control, and handling of environmental observations. 

The Environmental Modeling Center (EMC) is part of the National Weather Service (NWS) and is responsible for developing complex Earth system models together with its research partners. These numerical weather prediction (NWP) models are deployed on the NWS operational supercomputers to provide weather and seasonal forecast guidance at different timescales from hours to days to months. The NWP models range from global atmospheric models, limited-area (regional) high-resolution convective-scale atmospheric models, hurricane models, global ocean circulation models, cryospheric models, wave models, and land surface models. EMC is involved in all phases of scientific and engineering model development including data ingest, data assimilation, model integration, post processing, product generation, and validation and verification. 

Mandatory requirements: Candidates must be a U.S. Citizen or U.S. Permanent Resident (Green Card Holder) to qualify and have lived in the U.S. for 3-5 years prior to application.  Must have the ability to obtain a Public Trust security clearance. This position can be remote or hybrid with work location at the NOAA Center for Weather and Climate Prediction (NCWCP) in College Park, MD.

This full-time (W-2) position offers a full benefits package including paid time off, 401k match, and health care benefits.

EMC's numerical weather prediction (NWP) applications use complex end-to-end workflows to drive them from data assimilation to product generation, with an aim to provide forecast guidance. This position is responsible for developing, maintaining, modernizing, and expanding the workflows that drive several mission-critical weather prediction systems at EMC. The Scientific Applications Programmer will work with a team of other software developers and physical scientists to develop cross-application tools that can be used to drive modeling systems from end to end. This position will support any and all aspects of the development of these fully coupled Earth system modeling systems, including implementing scientific improvements, testing, documentation, and assisting with operational code deliveries. 

Responsibilities
  • Contribute to the development of critical workflow infrastructure for major modeling systems, such as the Real Time Ocean Forecast System (RTOFS), the Global Forecast System and its ensemble counterpart, high-resolution applications like the Rapid Refresh Forecast System, and AI applications like the AI Global Forecast System.
  • Comprehend and adhere to operational computing standards in support of operational code deliveries.
  • Port workflows to new high-performance computing and/or cloud platforms.
  • Develop user interfaces that allow scientists to easily set up experiments that run parts of and/or the full workflow, including to enable experiments using only specified coupled components (atmosphere only, atmosphere - wave, etc.).
  • Conduct profiling of performance-critical model code and identify and implement performance improvements.
  • Maintain documentation standards that support community model development.
  • Incorporate modern software management practices like unit testing, continuous integration, documentation, and other agile development techniques, including as they pertain to the maintenance and modernization of legacy code.
  • Maintain and modernize the CMake-based build systems that EMC uses for their Earth system models.
  • Adhere to modern code management principles (Git repositories, including forking and branching; GitHub/GitLab features including continuous integration services).

Qualifications
  • Candidates must be a U.S. Citizen or Green Card Holder to qualify
  • Background in meteorology/NWP, physical sciences, mathematics, or closely related field with demonstrated numerical modeling and related scientific computing experience.
  • Experience with data assimilation (JEDI, SOCA) is strongly preferred. Experience with ocean and sea ice models, coupled frameworks, and scientific data formats (HDF5, NetCDF, GRIB/2) are beneficial.
  • Proficiency in shell scripting, automation (including templated approaches), version control systems (Git), and developing software in a Linux or similar environment.
  • Expertise and demonstrated proficiency in Python and Fortran (including F95+), including advanced concepts such as Object-Oriented Programming.
  • Demonstrated working knowledge of modern software engineering practices (requirements gathering, design, prototyping, version control, integration, testing, and documentation)
  • Demonstrated experience in developing, working with, and running Earth system models or technically similar workflows on high-performance computing platforms including distributed-memory (MPI) and preferably also shared-memory (OpenMP, pthreads) parallelization. Experience with using parallel job schedulers (SLURM, PBS) is strongly preferred, as is experience with using workflow managers (Rocoto, ecFlow, Cylc). GPU experience is a plus.
  • Familiarity with cross-platform package management, build, and test systems, especially CMake/CTest and pip. Experience with using and developing environment modules (Tcl modules, Lmod) is strongly preferred. Experience with package managers (EasyBuild, Spack) and containers (Docker, Apptainer/Singularity, Charliecloud) is a plus.
  • Good verbal and written communication skills in English.
  • Ability to work effectively and professionally as part of a diverse, customer-focused team and collaborate with software engineers and scientists across different teams and agencies. The ideal candidate is a self-starter accustomed to independently identifying and prioritizing development needs.
  • Experience working in Agile/Scrum environments is preferred.

Submit Your Application

You have successfully applied
  • You have errors in applying