Job Summary:
We have an immediate opportunity for a Senior Environmental Applications Developer to join our small but growing group of core software developers. The successful candidate will work with multidisciplinary teams including software developers, subject matter experts and non-technical staff to support, operate, maintain, and enhance existing in-house software as well as contribute to the development of new software products to support CWR projects and initiatives.
This position can be fully remote (must be in the US) or be based in RTP, North Carolina or Fort Collins, CO.
Responsibilities
This position is right for you if you:
· Exhibit passion for technology, enjoy working on several projects at the same time, and are energized by building, understanding, maintaining, and troubleshooting complex systems.
· Want to continually learn and apply new technologies and techniques.
· Have extensive experience using Python for a wide range of tasks including building ETL pipelines, web service development, data wrangling, data visualization, and writing and packaging scientific software.
· Have experience designing and building scalable web applications with a microservice architecture including web services, databases, and frontend components.
· Are proactive and communicate effectively with internal and external stakeholders with varying degrees of technical knowledge.
· Have a strong understanding of software management lifecycle using version control, continuous integration/continuous deployment, and project tracking tools (git, GitHub, Actions) and automated testing.
· Experience with geospatial and temporal environmental data processing (e.g., streamflow, precipitation, temperature, etc.)
The successful candidate will also be able to demonstrate real-world experience in many of the following, including the specific technologies currently used by CWR as specified in the parentheses:
· Experience working with Unix/Linux operating systems and comfortable with command line tools.
· Building ETL pipelines to ingest and process scientific data from external sources (Python, Prefect).
· Relational database design and administration to support the management of scientific data including timeseries data, gridded environmental data, and numeric model configuration data (PostgreSQL, PostGIS, SQLite)
· Design and development of REST and/or GraphQL web-services to support modeling, data collection and data visualization objectives (Python, Django, Go, Hasura).
· Development of single-page web applications to support the collection, dissemination, and visualization of scientific data to end users (JavaScript, React, Plotly, Leaflet, Material-UI).
· Experience using cloud platforms such as Amazon Web Services or Microsoft Azure, including setting up Infrastructure-as-Code (Terraform, CloudFormation, etc.)
· Containerization, deployment, and administration of application components (web services, models-as-a-service) to support cloud-deployment and scalable computing (Docker, Kubernetes, AWS, Azure).
· Experience working with project owners and subject matter experts to translate their needs in plain language to specific tasks/features that can be developed.
Pluses would be (but are not required):
· A scientific or engineering background in water resources principles including hydrology, hydraulics, water resources management, floodplain mapping, water quality, and the related data.
· Development of internal and external client documentation and providing training for system end-users (Sphinx).
· Experience with cluster monitoring software (Prometheus, Grafana, Kubecost) in a production environment.
· Experience with data lake/warehouse design and cloud-native file storage formats such as Apache Parquet)
Qualifications
· Bachelor of Science in Computer Science or Engineering or in an environmental or engineering discipline with emphasis on software development and a minimum of 8+ years of professional experience in information technology or software development (or a master’s degree in a related field and 6+ years of professional experience)
· A lesser degree can be compensated with more work experience.
· To qualify, applicants must be legally authorized to work in the United States and should not require now, or in the future, sponsorship for employment visa status.
Please apply if you have expertise related to the above requirements (experience related to all is not necessary) – we will provide specific training to motivated colleagues with the appropriate background and aptitude.
The CWR team includes a wide range of backgrounds, interests, and capabilities, but a common thread is our interest to continue learning and push the boundaries of what can be done to support our field. As a non-profit research institute, RTI also offers opportunities for internally funded research and development to help bring great ideas together for on-the-ground applications to help make a difference in the world.
Qualification
Level of Education: Bachelor Degree
Work Hours: 8
Experience in Months: 96