ICEBERG: Senior Research Programmer
Two positions are being recruited for this project. Click here to see the Junior Research Programmer position.
Satellite imagery is rapidly transforming the way we see the planet, including our ability to study the most remote parts of the Arctic and Antarctic. Satellite imagery can help us map networks of rivers, study changes in the flow and thickness of glaciers, identify rock and soil types, and even find animals like penguins and seals. Because the availability of imagery in polar areas has increased rapidly over the last decade, we are now faced with a challenge: How do we scale-up the scientific discoveries that have been enabled by satellite imagery to larger spatial scales? Moving from small pilot-studies to pan-Arctic or pan-Antarctic analyses of geological and biological processes requires new infrastructure to link scientists, satellite imagery, and high performance computers. This new imagery-computing superhighway will make it easier for scientists to study processes at much larger spatial scales than has been previously possible.
Our project, called ICEBERG — Imagery Cyberinfrastructure and Extensible Building-Blocks to Enhance Research in the Geosciences, aims to build the cyberinfrastructure required to make the most of satellite imagery for geosciences. For details on the ICEBERG project please see: http://iceberg-project.github.io.
The applicant will function as the senior research programmer for the ICEBERG project, and will be responsible for designing, prototyping and delivering production grade cyberinfrastructure for polar imagery processing workflows in high-performance and distributed computing. This includes developing libraries and building blocks for workflows. The applicant will also be responsible for the successful integration with Polar science applications, and will require, collaboration with a junior research programmer, domain scientists and graduate students. Experience with high-performance distributed computing and software engineering is necessary. Knowledge of Image analysis, GIS and Remote Sensing concepts is helpful, but not mandatory.
Primary responsibilities include but are not limited to:
- Design of complex software systems and staged delivery
- Requirements engineering including Use Case Analysis
- Software engineering lifecycle management
- Deliver software systems for high-performance and distributed computing (including cloud) infrastructure
- Testing, integration and performance engineering on workflows on high-performance infrastructure
- Collaboration with domain scientists to ensure integration and production capabilities. Must be independent and motivated to excel. Will be expected to deliver code, write papers and deliver talks. The applicant will be expected to travel to professional meetings and collaborators.
The applicant will be familiar with modern software engineering methodology, high-performance computing, python and scientific computing. Will have either a MS in Computer Science/Engineering with 3+ years post-degree experience, or a PhD in Computer Science/Engineering or closely related discipline.
The applicant will be based in the RADICAL Laboratory (http://radical.rutgers.edu) at Rutgers University, and will have access to facilities and resources of the Computational Science Initiative at Brookhaven National Laboratory as well as the IACS at Stony Brook University.
- Analyze existing capabilities, requirements engineering and architecting ICEBERG framework (25% time).
- Responsible for testing and deployment of the ICEBERG framework on HPC and cloud infrastructures (25%)
- Integration of ICEBERG with SD (20%).
- de novo software development (25%)
- All members of the CI-team will contribute to training, workshop and hackathon activities (5%)