Back to News for Developers

Meet the Rustaceans: Pedro Rittner

May 13, 2021ByNavyata Bawa

This article was written in collaboration with Pedro Rittner, a Production Engineer at Facebook.

For today’s interview, we have Pedro Rittner who is a Production Engineer on the Device Integration, Assessment, and Grokking team at Facebook. The Device Integration, Assessment and Grokking team develops core hardware tooling and automation frameworks to report, control, monitor, analyze and fix hardware. Pedro has been using Rust as the main language for development. He primarily works on building the frameworks that Facebook uses to validate the health of hosts across the server fleet. Let’s hear from him about how his experience with Rust has been and learn more about his work.

In what capacity have you been using Rust?

Our team uses Rust as the language of choice for the majority of our backend services. These services perform the hardware health assessments of hundreds of thousands of machines every day. A good portion of our tooling (mostly CLIs) are also written in Rust.

Why did you/your team at Facebook choose to use Rust over other languages?

We chose Rust for our backend services because we prioritize reliability and efficiency in production. We found that our legacy Python infrastructure wasn't able to scale to meet our needs as Facebook's fleet grows, and we also had been bitten many times by Python runtime gotchas that can be completely avoided by using Rust.

What are some of the projects that you’ve worked on at Facebook that use Rust?

I've implemented several projects using Rust, in my current team and in others:

  • A distributed data stream tailer that collects and processes hardware health data from the entire hardware fleet
  • A blackhole email daemon to test our E2E email sending flows that can sustain millions of SMTP transactions per minute
  • A distributed queue worker service that performs millions of hardware health assessments on the entire hardware fleet every day

How do you feel about Rust's growth trajectory at Facebook?

Facebook has published several of our Rust projects on Github, and our engineers regularly contribute to rustc upstream.

How do you think Rust is growing as a language in 2021?

I believe that Rust is growing steadily in adoption across the industry this year. With the stabilization of several key components of the Rust ecosystem (e.g. the bytes and tokio crates hitting 1.0), Rust is well-positioned to capitalize on the growing need for more reliable services.

Some people who have used Rust have come to really like it, why do you think that is and what is your favorite feature about Rust?

My favorite feature about Rust is being able to delegate a lot of the "paranoid thinking" I developed from a decade of writing C++ code. Normally with C++ I have to be on my guard with memory usage and be very careful not to introduce UB into my codebase. Rust helps me avoid this cognitive overload by having the compiler enforce this for me.

Where can people learn more about Rust and how can they start contributing to it?

I would definitely recommend using the Rust by example book as a starting point. If you're already familiar with programming in C++ or Python, learning by example can help you map the abstractions in an efficient way without losing time.

We would like to thank Pedro, for taking the time to do this interview. It was very interesting to learn how Rust is being used as a primary language to build backend services and how we are learning from all the things we build here and contributing back to the Rust community. We hope you found this interview useful and it gave you some insight into how and where Rust is being used at Facebook. Look out for more interview blogs where we meet with many more engineers and hear their thoughts on this topic.

About the Meet the Rustaceans series

Rust has consistently been ranked as the “most loved” language for the last 5 years and we at Facebook believe that Rust is an outstanding language that shines in critical issues such as memory safety, performance and reliability and is being used widely over a large range of projects here. We joined the Rust Foundation to help contribute towards the improvement and growth of Rust, which not only strengthens our commitment towards the Rust language but also towards a sustainable development of open source technologies and developer communities across the world.

This blog is a part of our Meet the Rustaceans series, where we invite the engineers and developers who use Rust on a regular basis to share their experiences and tell us about the amazing products that they are building using Rust here at Facebook. Look out for more interview blogs where we meet with many more engineers and hear their thoughts on this topic.

To learn more about Facebook Open Source, visit our open source site, subscribe to our YouTube channel, or follow us on Twitter and Facebook.

Interested in working with Production Engineering at Facebook? Check out our job postings on our Production Engineering career page here.