Scientific Programmer/Analyst

Science System and Applications, Inc. - Greenbelt, MD (30+ days ago)4.2

Reference #: 18-2335
Open Date: 6/7/2018
Location: Greenbelt, MD
US Citizenship Required: No

Job Description: Science Systems and Applications, Inc. is seeking a highly motivated scientific programmer to support development of the next generation of algorithm software implementing NASA’s inversion algorithm determining the vertical distribution of ozone in the Earth's atmosphere from nadir satellite measurements of UV radiation. This individual will primarily support the Ozone Mapping and Profiler Suite (OMPS) Science Team at NASA Goddard Space Flight Center in Greenbelt, MD. Development will be done in close collaboration with the OMPS Science Team and other NASA scientists. The resulting code will be used with the OMPS nadir ozone profile sensors presently flying on the Suomi NPP and NOAA-20 spacecraft to create an accurate ozone profile dataset that extends the 40 year record of these measurements.

The successful applicant will construct code which is clearly written, maintainable, well-tested, and robust. We anticipate that the programmer will take advantage of features in languages such as Python and Julia to facilitate code development and enhance algorithm performance. We also expect the need to interface new code with existing code written in FORTRAN, so familiarity with this heritage language will be useful. The candidate will be expected to ensure the quality of software and numerical results with unit testing and code refactoring best practices. Candidate selection will favorably weigh knowledge of numerical methods and experience developing software using a structured programming paradigm, and be required to document software, prepare visual results, and report on results at regular meetings.

Required Qualifications:
B.S. in computer science, physical sciences or engineering, plus a minimum of 2 years experience (or equivalent combinations of education and experience)
Experience programming in Python or Julia to develop and maintain science code in a research environment
Demonstrated ability to evaluate legacy Fortran code and experience writing modern Fortran
Knowledge of the relative merits of compiled vs. interpreted programming languages and how to interface them
Ability to write code in a style scientists will understand and can maintain
Knowledge of basic numerical methods, interpolation, and linear algebra
Familiar with scientific libraries (e.g. LAPACK, NumPy, SciPy) and data formats including HDF and netCDF
Experience in software practices of modularization, error handling, refactoring and configuration management
Considerable experience working in a Unix/Linux scientific computing environment
Ability to rapidly prototype new software to test ideas presented by scientists
Demonstrated outstanding oral and written communication skills, including ability to communicate results through presentations and written reports
Self-motivated and able to work openly in a collaborative, team-focused environment
Pragmatic, flexible and adaptable work style; Accepting of guidance and new challenges routinely and willingly
Eligibility to work in the US and to meet NASA's requirements for IT and physical access

Desired Qualifications:
Previous experience working one-on-one with science team members
Demonstrated skill in data analysis shown in presentations, reports, or publications
Experience with radiative transfer codes and working with large data sets
Exposure or interest in inverse methods and theory
Experience with parallel programming (OpenMP,GPU), numerical machine learning, or cloud computing
Ability to visualize data to communicate results in a clear manner using as Python, Julia, Matlab, or IDL
Familiarity or strong interest in atmospheric remote sensing techniques