Research Software Engineer

Posted by Travis Tate on 03/15/2017 14:55 UTC


The Research Software Engineer will be an integral member of multiple research teams focused on cutting-edge computational neuroscience research. The Research Software Engineer will work with researchers associated with Princeton Neuroscience Institute (PNI) to provide domain-centric computational expertise in algorithm development and selection, code development, and optimization to create efficient and scalable research code.

The ideal candidate will have a strong background in scientific programming, academic research, and an interest in computational Neuroscience.

The Research Software Engineer will be one of a team of high performance computing software engineers, which will collectively provide computational research expertise to multiple divisions within the University.

The position requires one to work closely with colleagues in the Office of Information Technology (OIT) as well as with faculty researchers, student/postdoctoral researchers, and technical staff in the Princeton Neuroscience Institute to enable and accelerate high performance computing efforts within PNI.


Parallelize, debug, port, and tune existing research computing codes.
Lead and co-lead the design and construction of increasingly complex research software systems.
Provide technical expertise and guidance for improving the performance and quality of existing neuroscience code bases.
Understand and address software engineering questions that arise in research planning.
Maintain knowledge of current and future software development tools and techniques, programming languages, and high-performance computing hardware.

Essential Qualifications
Strong programming skills, particularly in the languages used in high-performance computing applications: C/C++, FORTRAN, and Python.
Parallel programming experience on computational clusters and supercomputer platforms.
Demonstrated successes working in a collaborative environment as well as independently.
Ability to learn new systems beyond area of core knowledge.
Ability to communicate effectively with a diverse user base having varied levels of technical proficiencies.
Preferred Qualifications
Machine learning, signal processing, or image analysis programming experience.
Academic research experience.
Background in neuroscience or a related field.
Bachelor’s degree, or equivalent experience in a related field. A Ph.D. in a related field is preferred.