Skip to main content

Research Software Engineer II

Employer
Princeton University
Location
Nassau Hall

View more

Job Details

Overview

What if you could have an impact on the future of embedded operating systems? If that idea appeals to you, Princeton University's Research Computing department is recruiting a Research Software Engineer to join the fast-growing 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 and inclusive 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 become an integral part of Amit Levy's group in the Computer Science department. Your main responsibilities will involve building a hardware-based infrastructure, developing tests, debugging, refactoring, and developing code for the TockOS project. TockOS is an embedded operating system designed for low-power microcontrollers. It prioritizes security, extensibility, and reliability. Developers can build sensor networks, security-critical devices, and wearables while conserving battery life.  

If you have a background in operating systems, drivers, system software, DevOps, and an interest in the Rust programming language, you have the right skill set to immediately impact 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. 

This is a fixed-term position that is guaranteed until March 2026. Based on funding availability and performance, there is a possibility of an extension beyond that date. 

Responsibilities

Application of Domain Expertise:

  • Conduct independent studies, including reading publications and studying existing code bases, to gain a basic understanding of embedded systems. Use this knowledge to effectively communicate and collaborate with researchers on software development projects. 
  • Collaborate with researchers to understand their needs and develop software solutions to support their work. 
  • Maintain effective communication with researchers to ensure software development aligns with the research objectives. This will involve occasionally leading team meetings.

 

RSE:

  • Working independently, or as a self-directed team member, create a hardware-based test infrastructure specifically designed for embedded systems and write new test cases. 
  • Integrate continuous integration (CI) processes for Rust code within the GitHub workflow, enhance CI features based on input from developers and the community, and coordinate testing efforts for OS releases. 
  • Troubleshoot and debug code issues incorporating Miri analysis and fuzzing techniques. 
  • Write efficient, robust, and maintainable code that is well-documented and tested. 
  • Participate in supporting the application's user community by tracking and organizing Github pull requests and issues as well as maintaining software documentation. 
  • Write technical reports and documentation to communicate research findings and software development processes. 
  • Manage software projects by developing project scopes and planning delivery timelines. Communicate project plans and progress updates with the scientific research team to ensure that software development aligns with research objectives. 
  • Communicate software engineering concepts to project teams with varying levels of software engineering knowledge. 

 

Professional Development:

  • Keep up-to-date with new software technologies and tools that could improve research outcomes. 
Qualifications

Essential Qualifications:

  • A minimum of 4 years as a Research Software Engineer or equivalent experience (e.g., graduate school, industry experience, open-source software development, etc.) 
  • Strong programming skills, particularly in low-level languages like C or, preferably, Rust; the language used in TockOS. 
  • Experience with test-driven development workflows with Git. 
  • Experience with code performance tuning using performance analysis tools (e.g. profilers). 
  • Demonstrated success in: 
  • Consistently using conventional and readable coding style. 
  • Creating comprehensive and well-written documentation. 
  • Developing and maintaining reproducible build systems. 
  • Background in operating systems sufficient to be able to understand the algorithms used in TokOS and communicate effectively with researchers. 
  • Ability to learn new concepts and technologies beyond the area of core knowledge. 
  • Ability to communicate effectively with a diverse user base with varied technical proficiencies. 
  • Experience working in an academic research environment. 
  • Experience with Linux. 
  • Demonstrated successes working in a collaborative software development environment ("team science", often geographically distributed) and independently. 
  • Education: A Bachelor's degree in computer science, engineering, sciences, or a related computational field is required. 

 

Preferred Qualifications:

  • Experience with DevOps and Cloud systems administration. 
  • Background in operating systems development and embedded systems. 
  • A Master's/Ph.D. in computer science, applied science, or another related field with a strong operating system focus or equivalent experience in a research setting is preferred. 

 

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 Hours36.25Eligible for OvertimeNoBenefits EligibleYesProbationary Period180 daysEssential Services Personnel (see policy for detail)NoEstimated Appointment End Date6/3/2026Physical Capacity Exam RequiredNoValid Driver’s License RequiredNo Experience LevelMid-Senior Level#Ll-DP1

Organization

Princeton entrance

Princeton University is a vibrant community of scholarship and learning that stands in the nation's service and the service of humanity. As a world-renowned research university, Princeton seeks to achieve the highest levels of distinction in the discovery and transmission of knowledge and understanding. At the same time, Princeton is distinctive among research universities in its commitment to undergraduate teaching.

Princeton University facultyOpportunity and Impact

At Princeton, every member of our community plays an important role in our mission of teaching and research. That mission provides every faculty and staff member with the opportunity to make an impact bigger than oneself. Learn about working at Princeton and meet some of our wonderful employees.

 

Services and Resources

When you make a commitment to our teaching and research mission, you will have access to the University’s world-renowned resources to help you succeed at work and in life. Discover the exceptional benefits and unique opportunities we offer as part of our commitment to you.

Work-Life Integration

Life is complicated. At Princeton, we recognize that and are sensitive and responsive to the challenges our employees face. The University offers a broad array of benefits and services that help our staff in a variety of ways.

Explore Our Job OpeningsPrinceton students and prof

Whether you’re already part of our community or just getting to know us for the first time, we invite you to imagine the meaningful difference you can make while working at Princeton. For faculty member and academic professional opportunities, visit the Dean of the Faculty website. For staff member job openings and to join our Talent Network, visit our Careers website.

Connect With Us
LinkedIn
Instagram
Facebook
Snapchat
YouTube

Get job alerts

Create a job alert and receive personalized job recommendations straight to your inbox.

Create alert

Similar jobs