Research Software Engineer I

2 days ago


Princeton, United States Princeton University Full time
Overview

Princeton University seeks candidates for a new position within the fast-growing Research Software Engineering (RSE) Group. The successful candidate will play a crucial role in advancing our research efforts, bringing a strong background in software development, High-Performance Computing, and Machine Learning to the team.

In this position, you will be an integral part of the Maxwell research group in Princeton, collaborating with the Condon Lab at the University of Arizona. You will work on a project that provides fast and accurate watershed forecasting across the US to inform decisions about water management better. This tool will build on the success of HydroGEN, part of the HydroFrame framework, which combines outputs from ParFlow, Machine Learning, and field observations gathered using hf_hydrodata. In this role, you will be part of a team of RSEs, faculty, postdocs, and graduate students at Princeton University and the University of Arizona. Part of your role will involve interfacing ParFlow, our hydrology code written in C/C++ and CUDA, with an ML library (e.g., PyTorch) to generate fast and physically consistent results. You will also participate in developing, training, and fine-tuning the Machine Learning model.

The RSE Group collectively provides computational research expertise to multiple divisions within the University. As a central team of software experts, we focus on improving the quality, performance, and sustainability of Princeton's computational research software. Our group is dedicated to creating collaborative and inclusive environments that value the best software engineering practices and to sharing and applying cross-disciplinary computational techniques in new and emerging areas.

If you have a strong background in scientific computing and Machine Learning, you have the proper skill set to impact a high-profile research project immediately. You will have the opportunity to work on a cutting-edge project and learn from experienced professionals, fostering your personal and professional growth. We encourage you to bring your unique perspective and skills to our team.

The role is initially for two years, with the option to extend based on available funding and job performance.

A remote work arrangement within the United States may be considered for candidates with the appropriate background and experience during this term period. University-paid business travel to Princeton, NJ may be required approximately 2-4 times per year. 

Responsibilities

Application of Domain Expertise

  • Work toward understanding relevant topical areas and corresponding numerical methods in Hydrology necessary for software development projects. This involves team research and independent studies, such as reading publications and studying existing code bases.
  • Through collaborations and independent efforts, work with researchers to understand their needs and challenges to develop software solutions that support their work.
  • Foster open collaboration via regular meetings and effective communication to ensure software development meets the research objectives.

RSE

  • Work independently or as a self-directed team member towards designing, developing, and maintaining software tools and applications for scientific research projects.
  • Write efficient, robust, and maintainable code that is well-documented and tested.
  • Optimize code performance for large-scale, parallel simulations and modeling.
  • Write technical reports and documentation to communicate software development processes and usage.
  • Assist in managing software projects by contributing to developing project scopes and planning delivery timelines. Collaborate with the scientific research team to communicate project plans and provide regular progress updates.
  • Communicate software engineering concepts to project teams with varying levels of software engineering knowledge.

Professional Development

  • Keep up to date with new software technologies and tools that could improve research outcomes.
Qualifications

ESSENTIAL minimum required knowledge, skills, competencies, and abilities

  • At least two years as a Research Software Engineer or equivalent experience (e.g., graduate school, industry experience, open-source software development, etc.)
  • Strong programming skills, particularly in C/C++, CUDA, and Python
  • Expertise in Machine Learning.
  • Experience in High-Performance Computing (HPC). Particularly:
    • Parallel computing (MPI, OpenMP, hybrid CPU/GPU code).
    • GPU programming.
  • Experience with:
    • Code performance tuning using performance analysis tools (e.g., profilers.)
    • Working with large gridded datasets.
    • Cloud-based data. Geospatial data and tools.
  • Demonstrated success in:
    • Consistently using conventional and readable coding style.
    • Creating comprehensive and well-written documentation.
    • Developing and maintaining reproducible build systems.
    • Using modern software development workflows based on Git and Continuous Integration/Continuous Development methods.
  • Demonstrated enthusiasm for acquiring new skills and understanding emerging technologies beyond your current areas of expertise.
  • Ability to communicate efficiently with users who have different degrees of technical proficiency.
  • Experience with HPC cluster environments (e.g., workflow manager, parallel file system).
  • Demonstrated successes working independently and in a collaborative software development environment ("team science," often geographically distributed).
  • Education: A Master's degree in computer science, engineering, physical science, or a related computational field is required.

PREFERRED knowledge, skills, abilities, experience, and other education

  • Experience with numerical methods in scientific programming.
  • Experience working in an academic research environment.

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. KNOW YOUR RIGHTS

Standard Weekly Hours 36.25 Eligible for Overtime No Benefits Eligible Yes Probationary Period 180 days Essential Services Personnel (see policy for detail) No Physical Capacity Exam Required No Valid Driver’s License Required No Experience Level Associate #Ll-DP1

  • Princeton, New Jersey, United States Emonics LLC Full time

    Company OverviewEmonics LLC is a leading provider of innovative solutions. We are dedicated to delivering high-quality projects that exceed our clients' expectations.Job DescriptionWe are seeking an experienced Software Engineering Lead to join our team. As a key member of our development team, you will be responsible for providing technical guidance and...


  • Princeton, United States Indium Software Full time

    Job Description • Title: Senior Automation Engineer • Education Qualification: Bachelor's degree in computer science, Information Technology, or a related field • Work Experience: 5-7 Years Work Location: Princeton Work Mode: Work from Office • Responsibilities: Component Test Automation Engineers, with the following skill set o 5+ years of...


  • Princeton, United States Trimble Full time

    Your Title: Senior Software Engineer Job Location: Princeton, NJ Our Department: Maps Are you a Software Engineer/Developer who wants to be at the heart of analyzing, designing, and programming cutting-edge software enhancements and new products in a collaborative environment? What You Will Do Your expertise will contribute to diverse applications, from Web...


  • Princeton, United States L3Harris Technologies Full time

    Job Title: Scientist, Software EngineerJob ID: 19265Job Location: Greenville, TXJob Schedule: 9/80; Every other Friday off Job Description: L3Harris is currently seeking a Scientist, Software Engineer to join our team. This position will be based at our Greenville, TX facility and offers a 9/80 schedule. Essential Functions: Actively drive execution of...


  • Princeton, New Jersey, United States Cloudeation Technologies Full time

    **About Cloudeation Technologies**We are a leading technology company implementing projects for clients across the United States.**Job Overview**As a senior software engineer, you will play a key role in developing and implementing new applications and software codes. This position requires collaboration with our team of software developers to design and...


  • Princeton, New Jersey, United States Trimble Full time

    Job OverviewThe Senior Software Engineer will be part of a collaborative environment where they will analyze, design, and program cutting-edge software enhancements and new products. The ideal candidate will contribute to diverse applications, from Web services to Web applications to Cloud infrastructure.Key ResponsibilitiesAnalyze and design software...


  • Princeton, New Jersey, United States SRI International Full time

    About the Role:This is an exciting opportunity to lead a team of engineers in the development of innovative software solutions for real-time government communication and control systems, consumer electronics, and military electronics. As a senior software engineering manager, you will be responsible for designing, developing, and maintaining embedded system...


  • Princeton, New Jersey, United States Digital Datum Full time

    About the Company: Digital Datum, Inc. is a leading technology company based in Princeton, NJ.">Job Overview: As a Sr. Software Engg at Digital Datum, we are seeking an experienced software engineer to develop and maintain CI/CD processes for SaaS applications using Jenkins and GitHub.">Key Responsibilities:Develop and maintain CI/CD processes for SaaS...


  • Princeton, New Jersey, United States Cloudeation Technologies Full time

    Job SummaryWe are seeking a skilled Technical Software Systems Engineer to join our team. As a key member of our software development lifecycle, you will be responsible for designing, developing, and testing software applications that meet industry standards.You will work closely with project managers and technical leadership to ensure application...


  • Princeton, New Jersey, United States UL Solutions Full time

    About the RoleThis is an exciting opportunity to work as a Senior Software Engineer at UL Solutions. As a member of our team, you will have the chance to design, develop, and deploy cutting-edge software solutions that make a real-world impact.Responsibilities:Develop and maintain complex software systems that meet business needsCollaborate with...

  • Software Engineer

    3 days ago


    Princeton, New Jersey, United States SRI International Full time

    About the JobSRI International is seeking an expert in embedded software development to join our team. As a senior software engineer, you will be responsible for designing and implementing software for embedded devices and systems.This role requires a strong background in programming languages such as C/C++ and Python, with experience in Linux build, Yocto...


  • Princeton, United States Trimble Full time

    Your Title: Senior Software Engineer Job Location: Princeton, NJ Our Department: Maps Are you a Software Engineer/Developer who wants to be at the heart of analyzing, designing, and programming cutting-edge software enhancements and new products in a collaborative environment? What You Will Do Your expertise will contribute to diverse applications, from...


  • Princeton, United States Trimble Maps Full time

    Are you a Software Engineer/Developer who wants to be at the heart of analyzing, designing, and programming cutting-edge software enhancements and new products in a collaborative environment with strong .net experience? What You Will DoYour expertise will contribute to diverse applications, from Web services to Web applications to Cloud infrastructure. Using...


  • Princeton, United States Trimble Maps Full time

    Are you a Software Engineer/Developer who wants to be at the heart of analyzing, designing, and programming cutting-edge software enhancements and new products in a collaborative environment with strong .net experience? What You Will DoYour expertise will contribute to diverse applications, from Web services to Web applications to Cloud infrastructure. Using...

  • SOFTWARE ENGINEERS

    7 days ago


    Princeton, United States SRI Infotech Full time

    Involve in Software Development Life Cycle including requirements gathering, system analysis, design, development, testing, and deployment. Design and implement Restful APIs to enhance module functionalities and facilitate server communication. Develop modules for various components, manage code repositories. Perform code reviews to improve code quality....


  • Princeton, United States Triunity Software Full time

    We're seeking a Senior Data Engineer to enhance our Data Science Team, focusing on implementing and managing data workflows that support machine learning models and large-scale analytics. This role involves designing ETL processes, ensuring data quality, and deploying ML models to production. The ideal candidate will have a strong computer science...


  • Princeton, New Jersey, United States Triunity Software Full time

    Career OpportunitiesAt Triunity, we offer challenging and friendly work environments where you can work on new edge technologies and tools, collaborate with industry experts, and solve complex client problems and deliver solutions. Our projects last from six months to several years, providing you with opportunities to grow and develop your skills.Benefits...


  • Princeton, United States Omni Inclusive Full time

    Job Description As a Software Asset Management Analyst, you will be responsible for daily and strategic management of the software portfolio in order to optimize the value, cost and minimize the risk for Software and SaaS investments. You will track, maintain, and coordinate license and maintenance agreement renewals with software owners. You will develop...


  • Princeton, New Jersey, United States SRI International Full time

    About UsSRI International is an independent nonprofit research institute headquartered in Menlo Park, Calif., with a rich history of supporting government and industry. We create and deliver world-changing solutions for a safer, healthier, and more sustainable future.We are seeking a talented individual who is passionate about developing innovative solutions...


  • Princeton, New Jersey, United States SRI International Full time

    About SRI InternationalSRI International is an independent nonprofit research institute with a rich history of supporting government and industry. Our team focuses on developing new algorithms for various applications, including supply chain networks, social graphs, and optimization of generative AI models.Overview of the PositionWe are seeking an intern to...