
C++/Rust Interop Initiative Software Engineer Lead
Rust Foundation
- Closing: 5:00pm, 22nd Mar 2024 PDT
Job Description
The Rust Foundation is an independent, non-profit organization that serves as a steward of the Rust programming language and a supporter of its users, maintainers, and enterprise advocates. Since our work began in 2021, we have collaborated with Rust ecosystem leaders and corporate member organizations invested in Rust's success. Through this work, the Rust Foundation has developed many programs to support the Rust language and its community.
The Rust Foundation has received a generous donation from Google to support an initiative exclusively focused on improving the interoperability experience between C++ and Rust. Our newest position will be made possible through this donation. Due to a myriad of factors, whether technical or business-related, rewriting C++ code in Rust in any reasonable timeframe may not be practical. In order to make progress in trying to establish a secure and high performance software future, the primary goal of the Interop Initiative is to enable a more seamless experience while having current C++ code interoperate with new Rust code. That Rust code may be brand new, associated with additional functionality, added to a product, or rewritten as organizations slowly migrate current C++ to Rust.
The Software Engineer Lead will be responsible for helping manage the Interop Initiative's technical direction and implementation. They will collaborate with the Foundation's Director of Technology, members of the Rust Project, and other external stakeholders to form a working group, ultimately solidifying a strategy and focus of the initiative. The Software Engineer Lead will then be responsible for implementing that strategy and writing any necessary code along the way.
Objectives
Define and execute the strategy for the Rust Foundation’s C++/Rust Interop Initiative.
Work with the Rust Project and other stakeholders to identify and prioritize key technical issues to be addressed as part of the new initiative.
Collaborate and coordinate interop efforts across multiple stakeholders, to reduce duplication and increase the impact of the initiative’s work.
Responsibilities
Define Initiative Strategy
Work with the Director of Technology, Rust Project stakeholders and other external stakeholders to help create a working group or consortium for the Rust Interop Initiative. This working group will be the core entity responsible for defining and executing the interop strategy.
Work directly with the Director of Technology, Foundation technical staff, and Rust Project and industry stakeholders to define an initial strategy for the Interop Initiative. This strategy will be the result of a collaboration and refinement, within the Working Group, on an initial draft written by the Foundation. The strategy will be the north star of focus for the work of the initiative.
Manage Working Group Collaboration
Schedule and lead regular meetings and syncs with the Interop Working Group. The Working Group may consist of many stakeholders around the world.
Incorporate Working Group feedback into the interop strategy as appropriate.
Regularly consider the composition of the Working Group, and bring in additional stakeholders as needed to include diverse perspectives.
Implement Interop Initiative Strategy
Write code associated with the defined and agreed upon Interop Initiative strategy. This can be working to improve existing interop solutions or new code that may, for example, be added to crates.io.
Work with additional engineers, Rust Project members or other stakeholders to implement various aspects of the strategy as needed.
Provide regular updates to the Working Group on progress and issues that arise.
Help prepare regular status reports to Google on the progress of the interop initiative.
Skills/Experience
Experience in both C++ and Rust with demonstrated experience coding in both languages.
Experience managing, leading or having deep involvement in a large, complex project, working with other developers and delivering to stakeholders, with the ability to empathize with different points of view, the ability to facilitate compromise, and adapt to fast changing or challenging situations.
Experience managing or leading other software engineers is preferred.
Deep understanding of collaborative programming infrastructure including source control, build systems, continuous integration systems and more. For example, git and GitHub for source control and collaboration..
Active experience of working/contributing within an open source project community is a requirement. Preferential consideration will be given to an active member of the Rust community.
Experience with integrating new code written in another language into large codebases is preferred.
An understanding in programming language semantics and/or writing programming language specifications is preferred.
Experience providing technical contributions to a programming language, such as the compiler or other language features, is preferred.
Removing bias from the hiring process
Applications closed Sat 23rd Mar 2024
Removing bias from the hiring process
- Your application will be anonymously reviewed by our hiring team to ensure fairness
- You’ll need a CV/résumé, but it’ll only be considered if you score well on the anonymous review
Applications closed Sat 23rd Mar 2024