Research Software Engineer II

Princeton University Princeton , NJ 08544

Posted 4 days ago

Overview

Do you have a background in humanities research and love to write code? Do you want to enable and advance cutting-edge 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.

We are looking for a new team member to join the multidisciplinary Logion Project: Machine Learning for Greek Philology. The Logion project aims to develop machine learning methods to identify and correct cases of 'textual corruption', i.e. cases in which ancient and medieval scribes introduced errors that altered the original meaning and form of ancient literature.

In this position, you will be an integral member of the Logion team to develop and improve multiple facets of the project and research workflow, including the Python web application, Machine Learning (ML) and Natural language Processing (NLP) algorithms, and data processing pipelines.

If you have a strong background in software engineering, research, and at least basic knowledge of ancient Greek text you have the right skill set to make an immediate impact. You will be poised to grow and expand your programming, machine learning, and natural language processing expertise into a dynamic new set of research problems. This position will require you to work closely with colleagues in Research Computing, and the Classics Department including faculty, students, postdoctoral researchers.

This role functions within a dynamic, supportive team environment that permits people from 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.

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.

This opportunity is a 5 year, benefits-eligible, term appointment that could have the potential to transition to an ongoing position dependent upon funding approval.

Responsibilities

Application of Domain Expertise

  • Has a strong command of the Python programming language and of machine learning as applied to ancient Greek texts, with 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.

  • Co-teach a course on machine learning for the restoration of ancient texts

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.

  • Develop software tools that allow researchers to interact in flexible ways with large data sets. Direct the development of front-end design.

  • 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 (or non-existent) degree of software engineering knowledge.

Professional Development

  • Actively expanding technical skill set and expertise to include software development tools and techniques, software engineering best practices, programming languages, and computational research solutions.

  • Actively expanding knowledge of ancient Greek text restoration.

Qualifications

  • 4+ years' experience as a Research Software Engineer or equivalent experience (e.g., graduate school, industry experience, open-source software development, etc.).

  • Strong programming skills, particularly in Python.

  • Experience developing web applications, especially with Django.

  • Experience working with historic archives and languages other than English.

  • Some knowledge of ancient Greek and ability to use it effectively for software development.

  • Experience constructing, maintaining, and using large databases

  • 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.

  • A Bachelor's degree in the humanities, computer science, or other relevant field is required. A Master's/Ph.D. in a relevant field with a strong computational focus or equivalent experience in a research setting preferred.

Preferred

  • Domain-specific research experience

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

Mid-Senior Level

#LI-JJ1


icon no score

See how you match
to the job

Find your dream job anywhere
with the LiveCareer app.
Mobile App Icon
Download the
LiveCareer app and find
your dream job anywhere
App Store Icon Google Play Icon
lc_ad

Boost your job search productivity with our
free Chrome Extension!

lc_apply_tool GET EXTENSION

Similar Jobs

Want to see jobs matched to your resume? Upload One Now! Remove

Research Software Engineer II

Princeton University