Research Software Engineer

Requisition # 2021-13218
Date Posted 1 month ago(8/13/2021 11:31 AM)
High Meadows Environmental Ins
Information Technology
Job Type


The Maxwell Lab and the Integrated GroundWater Modeling Center (IGWMC) is assembling a team of research software engineers, Hydrologists and Machine learning experts to build a next generation hydrologic forecasting platform called HydroGEN (  HydroGEN is a web-based machine learning (ML) platform to generate custom hydrologic scenarios on demand. Without any prior modeling experience, users will be able to directly manipulate state-of-the-art tools to explore the risks of future events that matter to them.  Our platform builds off the first and only physics-based high-resolution groundwater surface water model in the US. This gives us a unique ability to train ML models that can capture the potential for extreme events in changing systems.  Water is the driving force behind extreme events like floods, droughts and wildfires costing the US billions of dollars every year.  Our goal is to build tools that put the best science directly in the hands of decision makers and planners.  Helping them better prepare for and manage future extreme events.  


We are seeking talented Research Software Engineers (RSEs) to join our team and help develop the HydroGEN platform. This position will be appointed through the High Meadows Environmental Institute at Princeton University and will collaborate with team members from participating institutions (Cyverse, University of Arizona, Princeton University and ViQi) to support and extend a high profile, open source multi-cloud orchestration software. We seek highly-motivated individuals with an appetite to learn about new technologies, ability to perform in team environments, flexible attitude, attention to detail, and excellent communication skills.


This is a 2 year term position with possibility of renewal based on continued funding and performance. 



  • Contribute to the development, support, and maintenance of an open-source software for the research community.
  • Gather and identify software requirements from the project team, developers, and other stakeholders.
  • Contribute to the development of professional processes, procedures, and standards for delivering quality products in a timely fashion.
  • Evaluate and research software technologies as necessary



  • Implement software according to the project requirements, specifications, and timelines.
  • Benchmark and analyze the performance of the web applications and its associated components
  • Regularly meet with, listen to, and ask questions of researchers to ensure that engineered solutions fit the research need.
  • Work independently, quickly translate research priorities into flexible software solutions that will
    meet potentially vague and nebulous requirements due to the inherent unpredictability of academic research.
  • Develop software tools that allow researchers to interact in flexible ways with extremely large data sets.



  • Ensure long term maintainability and sustainability of solutions, documenting projects in a descriptive and appropriately detailed manner that can be understood by both researchers and future Research Software Engineers.
  • Maintain knowledge of current and future software development tools and techniques, programming languages, and high-performance computing hardware.
  • Provide support to users and create end-user documentation as needed.
  • Continually keep abreast of a rapidly changing landscape of software engineering best practices, software development techniques, and computational research solutions.

Additional software engineering-related duties may be assigned


Minimum Qualifications:

  • Bachelor’s degree in Computer Science or related field.
  • Experience in JavaScript, Python, Go, or other comparable programming language for web and/or microservices development
  • Solid understanding or experience in using and development RESTful APIs, modeling contemporary best practices e.g. OpenAPI and Swagger
  • Experience with contemporary software development tools and processes, such as git, CI/CD, and containerized deployments
  • Solid understanding about web-based networking communication, protocols, and security issues
  • Must have experience with creating software using databases, such as MySQL, PostgreSQL, MongoDB, Redis, or Neo4j
  • Demonstrable ability to meet deadlines and work with limited supervision
  • Have a mindset to collaborative with management, user experience designers, and other software engineers
  • Must have excellent written and verbal communication skills
  • Must have an excellent customer service attitude


Preferred Qualifications:

  • Experience with one or more of the following:
    • developing using microservices, containerized services, or distributed systems, including using with Docker and Kubernetes
    • event-driven services and architecture
    • developing user interfaces using React, Next.js, Express, or other JavaScript frameworks is beneficial
    • automating deployments using CI/CD, container orchestration, or ansible
  • Experience debugging, monitoring, benchmarking, and optimizing the performance of web applications
  • Software development in a Linux environment, including management of underlying Linux network services is beneficial
  • Advanced degree in computer science or equivalent



Princeton University is an Equal Opportunity/Affirmative Action Employer and all qualified applicants will receive consideration for employment without regard to age, race, color, religion, sex, sexual orientation, gender identity or expression, national origin, disability status, protected veteran status, or any other characteristic protected by law. EEO IS THE LAW

Standard Weekly Hours


Eligible for Overtime


Benefits Eligible


Probationary Period

180 days

Essential Services Personnel (see policy for detail)


Estimated Appointment End Date


Comments Related to End Date

grant funded, subject to renewal depending on funding.

Physical Capacity Exam Required


Valid Driver’s License Required


Experience Level

Mid-Senior Level



Sorry the Share function is not working properly at this moment. Please refresh the page and try again later.
Share on your newsfeed

Connect With Us!

Join our Talent Network to receive updates about working at Princeton.

Princeton University job offers are contingent upon the candidate’s successful completion of a background check, reference checks, and pre-employment screening, as applicable. Princeton University requires all employees to be vaccinated against COVID-19 and submit proof of vaccination status. Employees who cannot receive the vaccine because of a disability/medical contraindication or sincerely-held religious belief may request an accommodation (e.g., an exemption) to this requirement.

If you have questions or comments regarding the iCIMS Privacy Policy or iCIMS FAQs, please contact

Go to our careers site.