Abstract
In order to improve the performance of existing applications and services, we can identify the most performance-critical pieces and reimplement them in Rust as opposed to completely rewriting the applications from scratch.
It’s tempting when we hear about a new technology or language to want to rewrite everything using that technology. Start over with a clean slate and fix all the problems of the old system. The new shiny system will surely be better than the last one! The constraints of reality often encroach on this fantasy as rewrite projects. They turn into seemingly never-ending projects due to bugs reemerging - bugs the old system contorted itself into to fix. In pursuit of improving performance, we can rewrite only those pieces of an application that are truly important to performance and use cross-language bindings in order to link existing code bases with code written in Rust.
In this talk, we will take an existing codebase and rewrite part of it in Rust. We will focus on:
- Determining the feasibility of this type of refactor
- Write a Rust reimplementation of existing behavior
- Cross-language regression testing
- Performance benchmarking of the new code
Speaker

Lily Mara
Staff Engineer @Discord, Author of "Refactoring to Rust", Previously Engineering Manager @OneSignal
Lily Mara is a Staff Engineer at Discord on the Notifications Platform team. She builds distributed systems to deliver tens of billions of notifications every day to Discord's users.
Previously she was an Engineering Manager and Software Engineer at OneSignal in San Mateo, CA.
Lily is the author of Refactoring to Rust, a book about improving the performance of existing software systems through the gradual addition of Rust code.