Princeton University
Location
Princeton, NJ | United States
Job description
In this position, you will be an integral member of a research team focused on building complete software for cutting-edge research. As a Senior RSE, you will also mentor and provide technical leadership to other research contributors, as well as raise the software engineering capability of the team. You may also have the opportunity to co-author scientific publications. If you have a strong background in academic research as well as software engineering, you have the right skill set to make an immediate impact on this high-profile research project. You will be poised to grow and expand your programming skills and expertise into a dynamic new set of research problems. This position will require you to work closely with faculty, student/postdoctoral researchers, and technical staff in academic departments to enable and accelerate new research efforts.
Application of Domain Expertise:
Has a strong command of the research domain with proficient understanding of the underlying science, math, statistics, data analysis, and algorithms of computational research questions at a level sufficient to converse on projects with Princeton’s world-class researchers to consistently contribute to the ongoing work. This may consist of keeping abreast of advances in the domain, independent research (reading publications etc) and/or studying existing code bases. Working independently, initiate 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
RSE
Working independently guided by high level objectives, to quickly translate research priorities into flexible software solutions that consistently contribute to an ongoing research project. Independently use researcher-provided requirements and desired end state to build software solutions. To achieve this, RSEs are expected to figure out the problem through independent research, develop an appropriate solution, and provide full documentation for usage by the research team. Identify solutions for each project, establish a set of applicable best practices for individual or team use that is 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 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 broad research software engineering experience to develop novel, creative, and robust software solutions to solve challenging research problems quickly and efficiently. Port, debug, tune and potentially parallelize existing research code to meet criteria set by the research needs. Develop novel, creative and robust software tools that allow researchers to interact in flexible ways with extremely large data sets quickly and efficiently. Independently develops scope and project management plans, meets and sets milestone delivery timeline, and proactively communicates with the research team. Communicate complex software engineering concepts with project teams consisting of domain experts with a varying degree of software engineering knowledge. Raise the computational capability of graduate students and postdoctoral researchers through training and workshops, consultation, knowledge transfer, expertise, and best practices
Technical Leadership
Show technical leadership through mentoring, instructing and educating less experienced Research Software Engineers in advanced computational techniques learned from developing novel research software engineering project solutions. In collaboration with RSE group leadership and other senior RSEs, contribute to the organization of professional development and team growth activities.
Professional Development:
Maintaining technical skill set and expertise to include software development tools and techniques, software engineering best practices, programming languages, high-performance computing hardware, and computational research solutions. Focused on advancing depth of knowledge in key areas dictated by the research.
Essential Qualifications:
Preferred Qualifications:
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
36.25 NoJob tags
Salary