University Corporation For Atmospheric Resear Logo University Corporation For Atmospheric Resear
University Corporation For Atmospheric Resear Logo

Software Engineer 1/2- Scientific Python Developer

💰 $100,000 - $150,000 🌍 United States of America 📅 07/05/2023

Apply

Job Description

##### Job Description :

At UCAR, you will work alongside a dedicated team of professionals conducting
critical research and community outreach to solve complex Earth system science
problems including climate change, air pollution, extreme weather, floods,
drought, wildfires, and space weather, all with the goal of improving human
life and reducing economic loss. Each of us, from scientists to the
professionals who support their work, serves the public and a collaborative
community of scientists in our mission to understand the complex processes
that make up the Earth system, from the ocean floor to the Sun’s core.

NCAR’s Computational and Information Systems Laboratory (CISL) is a leader in
supercomputing and data services necessary for the advancement of atmospheric
and geospace science. CISL’s mission is to remain a leader at the forefront of
ensuring that research universities, NCAR, and the larger atmospheric,
oceanographic, and related research communities have access to the
computational resources they need for their research. To fulfill the need for
a stronger workforce at the intersection of High Performance Computing (HPC)
and geoscience problems, CISL engages in education and outreach activities to
inspire and attract a diverse future workforce.

##### **Application Notes:**

* Application Deadline: This position will be posted until filled with priority given to applications submitted by June 16th.

* Required application materials (preferably in PDF Format):

* Resume

* Cover Letter - Please address how your skills and experience meet the needs of this position (for more information, please refer to the Key Responsibilities and Knowledge, Skills, and Abilities sections of this job posting).

* Work Authorization: US Residency is a Requirement. You must reside in the U.S. for this position. UCAR/NCAR MAY sponsor a work visa to fill this position for eligible candidates.

* Relocation Assistance: Relocation assistance MAY be available for this position.

* Pre-employment screenings are conducted for selected candidates; background checks are also conducted for risk-based positions.

Learn more.

##### **HOW YOU WILL MAKE AN IMPACT AT UCAR** Key: Responsibilities;

Continually advances knowledge of relevant practices and tools for modern
software engineering best practices and scientific software development and
applies these to:

##### **Software engineering:**

##### **Level I:**

* Assists GeoCAT software engineering staff with implementation, testing, and documentation of scalable Xarray/NumPy based functions that support analysis of earth sciences data.

* Engages with the scientific community and other GeoCAT staff throughout this process.

* May contribute to upstream Open Development projects such as Dask, Xarray, and Matplotlib.

* Collaborates with the team to guide an efficient and effective software development process.

##### **Level II (in addition to Level I duties):**

* Performs requirements analysis, designs, implements, tests, and provides user documentation without support for highly scalable Xarray/NumPy based functions that support analysis of earth sciences data.

* Can identify, prioritize, and execute tasks within the GeoCAT projects’ lifecycle.

* Can direct/lead engagements with scientific community and other GeoCAT staff throughout this process.

* Can lead junior software engineering staff with implementation, testing, and documentation.

* Periodically reviews software development practices with a critical mind to suggest new processes, workflows and tools.

* Ensures GeoCAT software stack is up-to-date with industry best practices and latest technologies.

##### **Performance optimization:**

##### **Level II only:**

* Profiles key functions and modifies codes to improve performance on available computing platforms including HPC and cloud.

* Ensures scalability (e.g. Dask best practices and other parallelization options)

##### **Support:**

##### **Level I &II:**

* Interacts with the user community to resolve problems, augment system functionality, and improve the user experience. Contributes to user-focused workshops and tutorials.

##### **REQUIRED:**

##### **Level I:**

* Bachelor’s degree in computer-related field; or equivalent combination of education and relevant experience (e.g. Associate’s degree and four years’ experience).

##### **Level II (in addition to Level I):**

* Progressive relevant experience, which is typically gained by four to eight years of experience; or equivalent combination of education and experience

##### **DESIRED BUT NOT REQUIRED:**

##### **Level I:**

* One to three years of working experience in a team environment

##### **Level II:**

* One to three years of OOP design experience

* Experience in the area of high-performance computing or scientific software engineering

* Proficiency with development tools

##### **Knowledge, Skills, and Abilities**

##### **Level I:**

* Skilled in object-oriented programming in Python

* Understanding of Python packages Xarray, NumPy, Dask, Matplotlib, and Cartopy

* Skilled in code management systems and practices (preferably Git/GitHub)

* Knowledge of continuous integration and delivery technologies such as Github Actions, code coverage, document generation, Conda package management system, and Python Package Index (PyPI)

* Proficiency applying basic software engineering processes to development of computing applications and demonstrated ability to rapidly master new programming/scripting languages and styles

* Knowledge of developing software in a team environment (preferably including diverse backgrounds) with software engineering tools and processes

* Good oral and written communication skills in English, and ability to present GeoCAT work internally and externally

##### **Level II (in addition to Level I):**

* Knowledge of atmospheric or earth system science

* Skilled in object-oriented design and prototyping

* Skilled in analyzing existing code and the ability to debug software components

* Knowledge of parallel programming techniques including shared and distributed memory programming

* Demonstrated experience with formal software development processes (for instance Agile)

* Understanding of data visualization in Python

* Ability to work independently in addition to collaborative work as a team member

* Ability to supervise and mentor visitors, undergraduate and graduate students such as SIParCS interns and/or entry level software engineers

##### **DESIRED BUT NOT REQUIRED:**

##### **Level I:**

* Skilled in programming in C or C++

* Skilled in data visualization in Python

* Knowledge of parallel programming techniques

* Knowledge of atmospheric or earth system science

* Ability to supervise and mentor visitors, as well as undergraduate and graduate students such as SIParCS interns