A template proposal for adopting Rust at work

A template for you, an employee at “ForkJoin” to you adapt. An AI writing assistant wrote most of it. If you have suggestions for improvement (it’s not quite as polished as I would like), please contact me on LinkedIn, Mastodon or Twitter.

Subject: Enabling Rust as a choice for our software developers

Dear [Stakeholders/Management],

I am writing to propose that we investigate the possibility of adopting the Rust programming language here at ForkJoin.

Background

Rust is a modern, high-performance programming language that emphasizes safety, concurrency, and speed. Since its initial stable release in 2015, Rust has gained significant popularity and has been consistently ranked among the top programming languages in recent years. Notable tech leaders like Microsoft, Google, Meta, CloudFlare, Dropbox, Discord and Amazon have adopted Rust for various projects. Their experience shows that it can be a worthwhile choice for integrating into a tech stack.

I believe that adopting Rust incrementally, while investing in a Rust education program will greatly benefit our company in the long run.

Objectives

  • Improve our company’s competitive advantage by adopting Rust in suitable projects. This will improve the experience for our customers and reduce operational costs.
  • Equip our software engineers with knowledge and skills in the Rust programming language, enabling them to develop high-quality, reliable, and efficient software.
  • Foster a culture of continuous learning and innovation within the engineering team.
  • Enhance our company’s reputation as a forward-thinking organization and attract top talent in the industry.

Adoption Pathway

I propose that we establish a stakeholder group to help ensure that any adoption or perhaps even transition is smooth, well-planned, and aligned with our goals.

The group’s tasks could include:

Developing evaluation criteria: The stakeholder group must establish clear and measurable criteria for evaluating the success of Rust adoption. These criteria should encompass various aspects, such as team members’ skill acquisition, project performance, code quality, maintainability, and overall impact on the organization’s goals. By defining these criteria upfront, we ensure a structured and objective approach to evaluating the adoption process.

Pilot the use of Rust: To gain practical insights and minimize risks, the stakeholder group should oversee the implementation of pilot projects using Rust. These pilot projects can involve integrating Rust into smaller, non-critical components of existing projects, such as cron jobs or CLIs, or developing new projects, perhaps serverless microservices, entirely in Rust.

Assess its effectiveness: As the pilot projects progress, the stakeholder group must continuously assess Rust’s effectiveness in meeting the predefined evaluation criteria. This includes monitoring progress, gathering feedback, and analyzing project outcomes. By doing so, the stakeholder group can identify areas for improvement, make data-driven decisions, and determine whether Rust is providing the desired benefits.

Endorse broader usage of the language: If the pilot projects demonstrate that Rust is successful, the group can recommend broader usage. This endorsement may involve scaling up training programs, allocating resources to support Rust adoption in larger projects, and promoting Rust as a preferred language for suitable use cases.

Proposed Education Program Structure

The Rust market is still immature. To mitigate the risks in this area, we should consider a parallel effort invest in an professional development program focused on Rust for software engineers here at ForkJoin.

Here are some of the components of a program to support our staff leaning Rust:

  1. Self-paced learning: Offer to purchase copies of well regarded books and other material for those employees who request them.
  2. Project-based Learning: Assign small-scale Rust projects to engineers for practical application of their newly-acquired skills.
  3. Online Courses: Enroll our engineers in reputable Rust courses, of which there are many choices.
  4. In-house Workshops: Organize regular workshops led by internal or external Rust experts to provide hands-on experience and address specific questions.
  5. Mentoring Program: Over time, pair experienced Rust developers with less experienced team members to facilitate knowledge sharing and accelerate learning.

Conclusion

Investing in Rust at ForkJoin will not only elevate our software engineering team’s skillset but also enhance our company’s competitiveness. By adopting Rust, we will be better equipped to tackle complex, performance-critical projects with increased confidence and efficiency. We’ll reduce operational costs while increasing the performance of our applications.

Thank you for considering this proposal. I am confident that this initiative will prove to be a valuable investment in the company’s ability to ship products, our team’s professional growth and the overall success of ForkJoin.

Sincerely,

[Your Name]
ForkJoin