Meet the Rustaceans: Pedro Rittner
This article was written in collaboration with Pedro Rittner, a production engineer at Facebook.
For today’s interview, we have Pedro Rittner, a production engineer on the device integration, evaluation and grokking team on Facebook. The device integration, assessment and grokking team develops core hardware tooling and automation frameworks to report, control, monitor, analyze and repair hardware. Pedro used Rust as the main language for development. He mainly works on creating the frameworks that Facebook uses to check the health of hosts across its server fleet. Let us hear from him how he experienced Rust and learn more about his work.
In what capacity did you use Rust?
Our team uses Rust as the language of choice for most of our backend services. These services perform hardware health assessments on hundreds of thousands of machines every day. A large part of our tools (mainly CLIs) are also written in Rust.
Why did you / your team use Rust over other languages on Facebook?
We chose Rust for our backend services because we prioritize reliability and efficiency in production. We found that our old Python infrastructure was not scalable to meet our needs as the Facebook fleet grew, and we were also often bitten by Python runtime pitfalls that can be completely avoided by using Rust .
What projects you’ve worked on at Facebook that use Rust?
I have implemented several projects with Rust on my current team and others:
- A distributed data stream tailer that collects and processes hardware integrity data from across the entire hardware fleet
- A blackhole email daemon to test our E2E email send flows, which can support millions of SMTP transactions per minute
- A distributed queue worker service that performs millions of hardware health assessments daily for the entire hardware fleet
How do you rate Rust’s growth path on Facebook?
Facebook has published several of our Rust projects on Github, and our engineers regularly contribute to rustc upstream.
How do you think Rust will grow as a language in 2021?
I believe that Rust will steadily gain acceptance in the industry this year. With several key components of the Rust ecosystem stabilizing (e.g. Bytes and Tokyo boxes of 1.0), Rust is well positioned to capitalize on the growing need for more reliable services.
Some people who have used Rust really liked it. Why do you think that is the case and what is your favorite feature of Rust?
My favorite feature of Rust is to delegate much of the “paranoid thinking” I’ve developed from a decade of writing C ++ code. Usually with C ++ I have to be careful about memory usage and be very careful not to introduce UB into my code base. Rust helps me avoid this cognitive overload by forcing the compiler to do this on me.
Where can people find out more about Rust and how can they contribute?
I would definitely recommend using the Rust by sample book as a starting point. If you are already familiar with programming in C ++ or Python, you can use examples to efficiently map the abstractions without wasting time.
We’d like to thank Pedro for taking the time to do this interview. It was very interesting to see how Rust is used as the primary language for building backend services and how we learn from all the things we create here and contribute to the Rust community. We hope you found this interview useful and that it gave you some insight into how and where Rust is used on Facebook. Look out for other interview blogs where we meet with many more engineers and hear their thoughts on the subject.
About the Meet the Rustaceans range
Rust has been rated as the “most popular” language consistently for the past 5 years. At Facebook, we believe that Rust is a standout language that shines on critical issues like storage security, performance, and reliability and is widely used in a large area of projects here. We joined the Rust Foundation to help improve and grow Rust. This not only strengthens our commitment to the Rust language, but also to the sustainable development of open source technologies and developer communities around the world.
This blog is part of our Meet the Rustaceans series where we invite the engineers and developers who use Rust regularly to share their experiences and tell us about the amazing products they make with Rust here on Facebook. Look out for other interview blogs where we meet with many more engineers and hear their thoughts on the subject.
To learn more about Facebook Open Source, visit our Open Source website, subscribe to our YouTube channel, or follow us on Twitter and Facebook.
Interested in working with Production Engineering on Facebook? Take a look at our job vacancies on our careers page for production technology.