In this talk, we'll explore reasoning with async Rust. We'll be introduced to its fundamental building blocks, such as `async`, `await`, `join` and `select`, and learn how to predict the behavior of code written with them.

Reasoning through concurrent systems has always been a challenging task. Poor code can be riddled with race conditions, non-terminating cases and other complex concurrency bugs; and even well-written code can be hard to understand. Async programming is an innovative concurrent programming model that rises to this challenge. In this talk, we'll explore reasoning with async Rust. We'll be introduced to its fundamental building blocks, such as `async`, `await`, `join` and `select`, and learn how to predict the behavior of code written with them. We'll build on these to simplify more complex concurrency puzzlers. Finally, we'll explore different approaches to handling concurrent state and see how they compare.
We will explore some ways to make Async Rust programming more enjoyable and more efficient at the same time.
In this lightning talk, we take a look at ArcShift, a lock-free data structure for shared data that still needs to be mutated.
I applied PGO to many kinds of software, collected a lot of carefully hidden traps on my journey, and found multiple ways how to avoid them. In this talk, I want to share with you my experience.
Should you dig the hype and default to Embassy when starting new microcontroller project? How it works and what does it bring to the table? Let's compare and measure the same IoT app written in sync and async Rust.