PLEASE NOTE : This is a replacement, full-time, one-year term position with possibility of extension. Applications will be accepted until the position is filled.
NCAR - Computational and Information Systems Laboratory (CISL)
Relocation benefits not provided
UCAR/NCAR will not sponsor a work visa (e.g., H1B, etc.) to fill this position.
BASIC JOB FUNCTION : The role of this position is to work with senior project staff to enhance the capabilities of the VAPOR package.
ADDITIONAL INFORMATION : The VAPOR project (www.vapor.ucar.edu) is a National Science Foundation (NSF) funded effort to develop Open Source, advanced data visualization software in support of the broad NSF scientific community.
DUTIES INCLUDE :
Works with VAPOR project development team to enhance capabilities of package. Works with senior software engineering staff to develop new package features or improve existing ones. Develops example code and scripts to demonstrate package capabilities. May work on performance optimization of rendering components of visualization pipeline as well as more general software bottlenecks. Develops data translators for importing and exporting VAPOR data sets. May develop user interface components. May develop VAPOR’s parallel, distributed memory I/O API. May develop or enhance existing 3D rendering capabilities using OpenGL.
Helps with software release preparation by testing and validating software. May develop software frameworks to facilitate automated testing of package.
Writes user documentation for various components of the VAPOR package.
May develop web programs in support of the VAPOR project home page.
May help develop training materials for customer base.
May provide customer support and training on package.
REQUIREMENTS INCLUDE :
Education and Experience:
- Bachelor’s degree in computer science; with
- four years of work experience; or
- an equivalent combination of education and experience.
Knowledge, Skills and Abilities:
- Expertise with programming in C++.
- Proficiency applying basic software engineering processes to development of computing applications.
- Proficiency with object-oriented software development.
- Proficiency with at least one portable scripting language such as Perl or Python.
- Ability to work with a team and convey technical concepts to management and senior developers.
DESIRED (but not required) :
- Proficiency with software development under the UNIX operating system.
- Experience developing graphical user interfaces.
- Experience developing distributed memory applications using MPI.
- Experience with data parallelism programming.
- Experience programming with the portable GUI toolkit, Qt.
- Experience programming with the 3D graphics library, OpenGL.
- Experience with building Mac, Linux, and/or Windows package installers.
- Experience with Git, SVN or CVS source control.
- Experience with Fortran.
- Experience with web authoring using Drupal.
- Familiarity with Linux, Windows, and Mac OS X.
- Familiarity with Apple’s development environment, XCode.
- Familiarity with scientific visualization.
- Familiarity with GPGPU programming.