Location: Boulder, CO.
Type: Full time, exempt.
Application Deadline: This position will be posted until December 9th.
Term: Two-year term position, with a possibility of extension.
Relocation: Partial relocation assistance is available for this position.
Work Authorization: UCAR/NCAR will not sponsor a work visa to fill this position.
Hiring Range: $75,123 - $93,905
Full Salary Range: $75,123 - $122,076
Where You Will Work:
The Unidata program exists to serve a community of researchers and educators dedicated to advancing the frontiers of Earth System science. While we share a set of long-term goals with our community, we are keenly aware that we play a significant but supporting role in their ongoing scientific and educational endeavors. As a practical matter, we look for things we can do now to help build the future our community seeks to achieve, realizing that the goals will evolve and our approach must be flexible. We also aim to sustain and enhance a community that capitalizes on new technology and approaches to advance our understanding of the Earth System, providing community leadership and support. With these things in mind, Unidata’s mission is to transform the geosciences community, research, and education by providing innovative data services and tools
What You Will Do:
The Software Engineer II will be working within our Unidata program. Unidata is a diverse community of education and research institutions with the common goal of sharing geoscience data and the tools to access and visualize that data. For more than 30 years, the Unidata Program Center (UPC) has been providing data, software tools, and support to enhance Earth-system education and research. As a software engineer, you will play a vital role in serving the community in those areas, and across all practical levels — support, documentation, development, and training. Unidata's small team environment provides for high levels of autonomy and responsibility with great opportunity to excel individually and contribute to the community's success.
For this position, we seek a developer to join our open source efforts related to the suite of Thematic Real-time Environmental Distributed Data Services (THREDDS) projects. Specifically,
- netCDF-Java: The netCDF-Java library implements a Common Data Model (CDM) in a layered architecture that provides a pure Java framework for reading and enhancing a multitude of scientific and operational data formats, and provides aggregation capabilities to create virtual datasets.
- THREDDS Data Server: A Spring-based web service built on-top of netCDF-Java that provides catalog, metadata, and data access services for scientific and operational data through a RESTful API. In addition to a demonstration TDS that Unidata hosts for our community, the TDS is in use at over 150 publically accessible sites by organizations spanning academic, government, non-profit, and private sectors around the globe.
- Siphon: A Python client library that streamlines and simplifies accessing data held on a THREDDS Data Server from Python, including capabilities for catalog parsing and clients for interacting with various services.
Funded primarily by the National Science Foundation (NSF), Unidata is one of the University Corporation for Atmospheric Research (UCAR)'s Community Programs (UCP).
Software Design and Development:
- Collaborate with other internal and external developers to test, maintain, and develop the projects of THREDDS (netCDF-Java, TDS, Siphon).
- Refactor legacy code to improve test coverage and maintainability across the suite of Java based THREDDS projects.
- Contribute to user documentation efforts.
- Work with end-users and other Unidata developers to gather and document community needs.
- Help develop a cloud native architecture for the TDS.
- Provide user support to technical and non-technical community members, both as users of and contributors to the THREDDS software projects.
- Diagnose, fix, and test solutions to issues encountered by our users, including situations where system access is limited.
- Contribute to training efforts, and investigate new, innovative methods for providing asynchronous training opportunities.
- Provide input on progress reports and presentations for the Unidata advisory committees.
- Foster interactions with our user community and other Unidata staff in an effort to anticipate and estimate current and future data and software needs.
- Participate and present at scientific meetings to keep up-to-speed on community needs and to communicate directly with our stakeholders.
What You Will Need:
Education and Years of Experience
Bachelor’s degree in atmospheric or related sciences, mathematics or computer science with progressive, relevant
experience which is typically gained by four to eight years of experience with scientific applications and scientific
data services or equivalent combination of education and experience.
- Demonstrated skill with software development.
- Demonstrated use of git and GitHub (or other hosted Git repository service).
- Ability to work in a small team environment in various roles with high levels of autonomy.
- Ability to organize and communicate technical material to other developers and end-users.
- Strong desire to continue learning new skills, tools, and concepts.
DESIRED BUT NOT REQUIRED
- Experience with Java or a similar object-oriented programming language
- Experience using and/or customizing maven or gradle build configurations.
- Experience with consuming or producing geoscience data formats (e.g. netCDF, HDF, GRIB, BUFR, GeoTIFF).
- Experience with one or more cloud computing technology stacks (e.g. AWS, OpenStack, Google Cloud Platform, Microsoft Azure).
- Experience with developing or using remote data access protocols (e.g. DAP, WMS, WCS)
- Experience developing web services, such as RESTful and RPC-based APIs
- Experience providing support to a scientific community
- A cover letter is required.
- An Inclusion Statement will be required for all applicants moving forward to the interview stage. This statement should address past efforts, as well as future vision and plans to advocate for and advance diversity, equity, and inclusion in the organization and/or field of work.
- A pre-employment screening is conducted in conjunction with an offer for employment. This screening may involve verifying or reviewing any of the following relevant information: restricted parties screening, employment verification, performance records of internal candidates, education verification, reference checks, verification of professional licenses, certifications, and Motor Vehicle Records. UCAR complies with the Fair Credit Reporting Act (FCRA).
- Please note that while the position description details both minimum requirements as well as desired skills and experience, we want to remind applicants that you do not need to have all the desired skills and experience to be considered for this role. If you have the passion for the work along with experience in a related field, you are encouraged to apply. We can provide on-the-job training for the rest.
- For more information about our commitment to diversity, equity, and inclusion, here is the link to the Office of Diversity, Equity & Inclusion Strategic Plan and to the ODEI landing page.