Background in meteorology, physical sciences, mathematics, computer science, or related field with numerical modeling experience.
Experience with Earth system modeling, preferably MPAS or similar dynamical cores.
Proficient in Fortran (F95+) and Python, including OOP and automation.
Skilled in shell scripting (Bash) and Linux environments.
Knowledge of modern software engineering practices, including modular design and unit testing.
Experience with parallel Earth system models on HPC systems.
Responsibilities
Conduct infrastructure development for integrating MPAS within the UFS Weather Model.
Develop and support NUOPC caps and coupled model configurations.
Create modular frameworks for standalone testing of model components.
Ensure code portability and support testing across HPC platforms.
Profile parallel code to identify performance bottlenecks and scalability issues.
Maintain and debug CI workflows using Git-based management practices.
Evaluate and apply generative AI tools to enhance model development.
Benefits
Comprehensive healthcare at no monthly cost covering medical, dental, and vision.
Personal Time Off (PTO) plus paid holidays.
401(k) retirement plan with company matching.
Employee Stock Ownership Plan (ESOP).
Flexible spending accounts and employee assistance program.
Short- and long-term disability insurance.
Tuition assistance and training reimbursement.
Full Job Description
Overview
As part of our ongoing growth and expansion, we are seeking a dynamic and experienced Scientific Software Developer for MPAS Infrastructure to join our growing team. The ideal Scientific Software Developer for MPAS Infrastructure will be local to the DC Metro area, and be able to work a hybrid schedule, working 2 days per week in office out of the College Park, MD location, and working from home the remaining 3 days of the week.
Responsibilities
Duties of the Scientific Software Developer will include the following:
Conduct infrastructure development and innovation for the seamless integration of MPAS (Model for Prediction Across Scales) as a new dynamical core (dycore) within the UFS Weather Model, along with necessary component updates and integration.
Develop, expand, and support NUOPC caps, coupling infrastructure, coupled field exchanges, component interactions, and mediator configurations to enable robust coupled model configurations using the MPAS dycore.
Develop new capabilities and modular frameworks to allow standalone testing of individual components within the coupled model.
Ensure portability of compiled code, build system configurations, and unit/regression testing workflows across scientific HPC platforms, including supporting the testing and integration of heterogeneous compute capabilities (e.g., GPUs).
Apply specialized tools for profiling parallel code at scale; identify performance bottlenecks (I/O, memory, load balancing); and investigate scalability algorithms suitable for refactoring, compression, or replacement with third-party implementations.
Build, maintain, debug, and refactor automated Continuous Integration (CI) workflows, and utilize modern Git-based code management and agile development practices (issues, pull requests, project boards).
Identify, evaluate, and apply generative artificial intelligence (GenAI) tools, namely large language models (LLMs), to advance model development, focusing on the efficient generation of high-quality code and technical documentation.
Follow emerging trends in scientific HPC hardware, compilers, and software architectures to ensure the UFS model anticipates technological changes and utilizes state-of-the-art developments.
Serve as subject matter expert and technical point of contact for external model components (CICE, CDEPS), tracking external repository developments affecting the UFS Weather Model.
Engage and manage relationships with key UFS Weather Model stakeholders and application teams, serving as a point of contact and reviewing and integrating multi-team contributions.
Maintain a high standard of code documentation, rapidly troubleshoot build failures and runtime errors, demonstrate advanced debugging tools, and provide technical mentoring to colleagues.
Qualifications
The Scientific Software Developer selected should have the following:
Candidates must be a U.S. Citizen or Green Card Holder to qualify (please indicate in your cover letter).
Background in meteorology/NWP, physical sciences, mathematics, computer science, software engineering, scientific computing, or a closely related field with demonstrated numerical modeling or closely related scientific computing experience.
Experience with or strong foundational understanding of Earth system or other dynamical modeling, with preference for the Model for Prediction Across Scales (MPAS) or other dynamical cores (dycores).
Demonstrated proficiency in Fortran (including F95+ and Object-Oriented concepts) and Python (including OOP and automation).
Proficiency in shell scripting (Bash) and developing scientific software within Linux or similar environments.
Demonstrated working knowledge of modern software engineering practices, including modular design, unit testing, and standalone component testing frameworks.
Experience developing, configuring, and executing parallel Earth system or similar models on HPC systems.
Working knowledge of parallel job schedulers (SLURM, PBS) on HPC systems.
Experience with CMake-based build systems and CTest; development experience strongly preferred.
Proficiency in Git-based (GitHub/GitLab) version control and code management, including branching/forking strategies, pull/merge requests, and issue/project tracking.
Experience leveraging Artificial Intelligence (AI) tools to advance code and documentation development, or willingness to learn.
Good verbal and written communication skills in English.
Ability to work effectively and professionally as part of a diverse, customer-focused team, collaborating with physical scientists, software engineers, and inter-agency partner teams.
Demonstrated ability to independently identify, prioritize, and implement bug fixes and new features.
Ability to provide technical mentorship to colleagues and maintain user-facing developer documentation.
The ideal Scientific Software Developer will have the following:
Practical experience with coupled Earth system model frameworks (e.g., ESMF), NUOPC, mediators, and component interactions is strongly preferred, as well as experience developing and running individual components (atmosphere, ocean, wave, ice).
GPU and other heterogeneous computing experience or familiarity is a plus.
Experience in C++ is beneficial.
Experience working in Agile/Scrum development environments is preferred.
Demonstrated experience developing, debugging, and maintaining continuous integration (CI) and other automated workflows is a plus.
Familiarity with package managers (e.g., Spack) and containerization technologies (Apptainer/Singularity, Docker/Podman) is beneficial.
Lynker offers a team-oriented work environment, and the opportunity to work in a culture of exceptionally skilled professionals who embrace sound science and creative solutions. Lynker's benefits include the following:
Comprehensive healthcare for the employee at no monthly cost
Healthcare benefit covers medical, prescription drug, dental, and vision
Personal Time Off (PTO) Policy plus paid holidays
Highly competitive compensation plan regularly calibrated against industry and location benchmarks
401(k) retirement plan with company-matching
Employee Stock Ownership Plan (ESOP) - we're all company owners!
Flexible spending accounts
Employee assistance program (EAP)
Short- and long-term disability insurance
Life and accident insurance
Tuition assistance/Training/Workforce improvement reimbursement per year
Spot bonuses for exceptional performance
Annual Employee Recognition Awards with bonuses
Employee Referral Program
Free centralized, self-directed Learning Management System to learn at your own pace
Personalized career growth plans for every employee