Women in Scala X Rust: Functional Programming in Rust & Streams with Aquascape
Details
Please note that you must identify as a woman in order to attend this event.
Agenda
6:00pm - 🥤 Doors open. Come along and grab a drink!
6:40pm - 🗣️ Zainab Ali: Sketching streams with aquascape
7:20pm - 🍕 Intermission: Join us for some free food and drinks! Vegan, vegetarian and gluten-free options are provided.
7:50pm - 🗣️ Caroline Morton: Accidental Functional Programming in Rust (From an Epidemiologist's Perspective)
8:30pm - 🥤 Socialising: Grab a drink and let's discuss the talks.
🗣️ Zainab Ali: Sketching streams with aquascape
Functional streams are a vital tool in any ecosystem. They can simplify the code for webservers, event loops, and data-intensive applications. But they are notoriously difficult to understand. In this talk, we'll explore a mental model of stream execution in fs2, a functional stream processing library in Scala. We'll use our model to draw simple diagrams for complex streaming scenarios, and see how these diagrams can be generated automatically using the aquascape library. Finally, we'll bring our model to the masses. We'll use Scala.js to create interactive, browser-based diagrams that can be integrated into fs2's online documentation. By the end, we'll have a solid understanding of functional streams. With aquascape, you'll see that streams are not only easy to read, but easy to reason with too.
🌟Zainab Ali 🌟
Zainab Ali is a functional programming trainer, open source contributor and organizer of the London Scala User Group. For the past seven years, she’s helped developers master the art of functional programming in Scala. The author of Functional Stream Processing in Scala, she’s particularly interested in the art of reasoning through concurrent systems and incremental processes.
🗣️ Caroline Morton: Accidental Functional Programming in Rust (From an Epidemiologist's Perspective)
I don't have a background in functional programming - and I never set out to write it. But somewhere between writing trait-based epidemiological pipelines, composing data transformations, and leaning hard on Result, enums, and pattern matching, I started hearing from others: “That's pretty functional.”
In this talk, I'll explore what it means to write “functional-ish” Rust as someone solving real-world scientific problems. I'll walk through the patterns I reach for - like chaining iterators, avoiding shared state, and embracing expressive types - and reflect on which functional programming ideas emerge naturally in Rust, even if you're not trying.
I'll also share how designing for epidemiologists - most of whom are used to chaining functions in Python (like Pandas) or R - has pushed me toward creating ergonomic Rust APIs with Python and R bindings. These tools aim to feel familiar to scientists while leveraging Rust's power and safety under the hood.
This is a talk for functional programmers curious about Rust, and for Rustaceans wondering if they've been functional all along. No formal theory required - just real code, real use cases, and a pragmatic perspective from someone building public health tools in Rust.
🌟Caroline Morton 🌟
Dr. Caroline Morton is a medical doctor, epidemiologist, software engineer, and PhD candidate specialising in synthetic data, epidemiology, and Rust. With 60 peer-reviewed papers and two books on software, she combines deep technical expertise with a commitment to improving scientific workflows.
Caroline co-founded the first Women in Rust group, fostering diversity and encouraging more women to explore opportunities in systems programming. She leads an open-source project improving codelist management in epidemiology using Rust, creating efficient, reliable tools for health data research.
Her PhD focuses on synthetic data methods for epidemiology, particularly using Rust to generate large, realistic datasets. A strong advocate for open science and reproducibility, she contributes extensively to improving software practices through publications, workshops, and open-source projects.
————————————————————
🗣️ Would you like to present, but are not sure how to start? Give a talk with us and you'll receive mentorship from a trained toastmaster! Get in touch through this form and we'll get you started
🏡 Interested in hosting or supporting us? Please get in touch through this form and we can discuss how you can get involved.
📜 All London Scala User Group events operate under the Scala Community Code of Conduct:
https://www.scala-lang.org/conduct/
We encourage each of you to report the breach of the conduct, either anonymously through this form or by contacting one of our team members. We guarantee privacy and confidentiality, as well as that we will take your report seriously and react quickly.