Jobs and Careers
PR

Research Software Engineer II

Princeton University
United Statesfull_timeVerifiedPosted 17 Feb 2025

About the role

Overview

Do you have a background in computational research and love to write code? Do you want to help enable and advance groundbreaking computational research? If so, Princeton University's Research Computing department is recruiting a Research Software Engineer to join the fast growing Research Software Engineering (RSE) Group.

In the RSE Group, we collectively provide computational research expertise to multiple divisions within the University. As a central team of software experts, we are focused on improving the quality, performance, and sustainability of Princeton’s computational research software. Our group is committed to building collaborative environments in which the best software engineering practices are valued, and to sharing and applying cross-disciplinary computational techniques in new and emerging areas.

 

In this position, you will be an integral member of the Princeton Quantum Initiative (PQI), a vibrant community at Princeton University working on quantum science and engineering across many departments. You will drive forward quantum research by partnering with experimental research teams to build low-latency, real-time control stacks for qubit hardware. A central part of the role will be contributing to open-source efforts, such as the Quantum Instrumentation Control Kit (QICK) collaboration led by Fermi National Accelerator Laboratory. This work will accelerate the development of features tailored to specific experimental needs and help to set the standard for modular, reusable development of “open firmware”.

If you have a strong background in FPGA development, system-on-chip architectures, digital signal processing, and an interest in quantum computing research, you have the right skill set to make an immediate impact on multiple high-profile research projects.

 

This role functions within a dynamic, supportive team environment that permits diverse backgrounds to thrive, including those wanting to make a career change and those with non-traditional career tracks, educational paths, or life experiences. If this environment sounds like a strong match or even an exciting challenge, we encourage you to apply and use your cover letter to explain why you would be a good fit for the role.

 

The term of this appointment is 3 years, with the possibility of renewal based upon satisfactory performance and funding. 

Responsibilities

Application of Domain Expertise

 

  • Fully understands the role within the research domain and working toward advanced proficiency in the underlying science, math, statistics, data analysis, and algorithms of computational research questions at a level sufficient to converse with Princeton’s world-class researchers to support the ongoing work. This will consist of independent research (reading publications etc) and/or studying existing code bases.
  • Working independently or in collaboration with a team, initiate and/or maintain open collaboration with researchers. Regularly meet with, listen to, and ask questions of researchers to ensure that engineered solutions fit the research need. Understand and address software engineering questions that arise in research planning.
  • Apply appropriate domain specific algorithms, techniques and code to advance software engineering in the research field.

 

Research Software Engineering

 

  • Working independently with minimal guidance to understand and translate research priorities into flexible software solutions.
  • Independently or in collaboration with a team, use researcher-provided requirements and desired end state to build complete software solutions. To achieve this, RSEs are expected to figure out the problem through independent or team research, build complete software solutions, and provide full documentation for usage by the research team.
  • Identify solutions for each project, establish a set of applicable best practices uniquely appropriate for that project (e.g version control, continuous integration and continuous delivery, software design, programming model, etc.), and enable long term maintainability and sustainability by documenting the projects in a descriptive and appropriately detailed manner. Independently or in collaboration with a team, provide technical expertise and guidance for improving the performance and quality of new and existing code bases through hands-on work with ongoing research.
  • Responding to evolving research needs, apply research software engineering experience to develop robust software solutions to solve challenging research problems. Port, debug, tune and potentially parallelize existing research code to meet criteria set by the research needs.
  • Provide support for the use of developed software for researchers both within and outside of Princeton University. This includes

Apply for this role

Generate a tailored application kit with a matched cover letter, interview prep, and CV highlights — in under 60 seconds.

Apply Now →Generate Application Kit

Free account required — sign up in 30s

Company

Princeton University

View company profile →