This job has Expired

princeton_univ.jpg

Research Software Engineer II (Computational Biology/Genomics)

Princeton University

Job Description


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 multiple research teams focused on cutting-edge computational biology. You will join teams of researchers associated with a new Center for Computational Biology and the Lewis-Sigler Institute (LSI) for Integrative Genomics, where you will contribute to the development of efficient and scalable research code by providing computational expertise in software development, algorithm selection, and optimization. Research Software Engineers II work closely with a team of researchers and Research Software Engineers to leverage their communication and problem-solving skills to build complete software solutions crucial to the advancement of research. 

 

If you have a strong background in scientific programming, high performance computing, academic research, and an interest in computational biology and genomics, you have the right skill set to make an immediate impact on multiple high-profile research projects. You will be poised to grow and expand your programming and data analytics expertise into a dynamic new set of research problems. This position will require you to work closely with colleagues in the Office of Information Technology (OIT) as well as with faculty, student/postdoctoral researchers, and technical staff in LSI to enable and accelerate their research computing efforts. 

 

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. 



  • Lead and/or co-lead the design and development of complex research software for computational biology and genomics. 
  • Fully understands the role within the research domain and working towards 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.
  • 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. 
  • Develop software tools that allow researchers to interact in flexible ways with extremely large data sets. 
  • Independently or in collaboration with a team, develops scope and project management plans, meets milestone delivery timeline, and communicates with the research team. Communicate software engineering concepts with project teams consisting of domain experts with a varying degree of software engineering knowledge. 
  • Actively expanding 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. 
     


Essential Qualifications

  • 4+ years’ experience as a Research Software Engineer or equivalent experience (e.g., graduate school, industry experience, open-source software development, etc.). 
  • Exhibits programming skills, particularly in Python and C/C++ (and experience with the R programming language is a plus).
  • Demonstrated success:  
    • Consistently using conventional and readable coding style.  
    • Creating comprehensive and well-written documentation.  
    • Using version control systems.  
  • Demonstrated successes contributing to a collaborative research team.  
  • Ability to work independently.  
  • Ability to learn new programming languages and technologies beyond area of core knowledge.  
  • Ability to communicate effectively with a diverse user base having varied levels of technical proficiencies.  
  • Experience working in an academic research environment. 
  • EducationA Bachelor's degree in computer science, engineering, sciences, or related computational field required. A Master’s/Ph.D. in a relevant field with a strong computational focus or equivalent experience in a research setting preferred. 

Preferred Qualifications

  • Experience tuning and optimizing research software and algorithms.  
  • Experience developing research software outside of core domain knowledge.  
  • Academic research experience. 
  • Background in computational biology, genomics, or a related domain is helpful, but not required. 
  • Experience using HPC systems and job schedulers (e.g., Slurm). 
  • Experience with standard bioinformatics tools (e.g., SAMtoolsbedtools, BWA, FastQC, Picard tools). 
  • Experience writing and using workflow management systems (e.g., Snakemake, Cromwell). 
  • Experience with cloud computing systems (e.g., Terra). 
  • Familiarity with GATK and best practice workflows. 
  • Knowledge of modern python tooling (pytestnoxmypy, Flake8). 
  • Experience with s and virtual environments for development and deployment. 

 

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

No

Yes

180 days

No

No

No

Mid-Senior Level

#LI-JJ1

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 accounts@icims.com .
Go to our careers site.

*Please mention you saw this ad on AcademicJobs.*

Apply Now

Be Seen By Recruiters at the
Best Institutions

Create Your FREE Profile Now!