Luca Palmieri
Author of zero2prod.com, a book on backend development in Rust, and https://rust-exercises.com.
Building pavex.dev, a new Rust web framework.
Principal Engineer at Mainmatter. Opinions are my own. He/him.
@algo_luca on Twitter.
- Mainmatter is looking for a Rust backend engineer, either as a full time employee or a freelancer. You'll be working on cloud-native projects, helping clients either adopting Rust or scaling it successfully. If you're interested, send an email to the address in the screenshot!
- You can find the full job post here: gist.github.com/marcoow/2948...
- Mainmatter is looking for an experienced Rust developer to join one of our projects as a freelancer. We're migrating a database from C to Rust. The project is complex and performance-sensitive. That's what makes it fun! If you're interested, send an email to the address in the screenshot.
- Less than 10 days left before Rustlab! It's a conference that's close to my heart—one of the first I spoke at, back in 2019! Years have been passed, but the vibe and the community have only improved. Tickets are still available—use `SP20FR` for a last-minute 20% discount.
- I'll be a busy bee! I'll kick off on November 2nd with a Rust-Python interoperability workshop. On November 4th I'll be @fasterthanlime's sparing partner in his unfair Rust quiz and I'll close down the conference schedule with a talk on dependency injection. Looking forward 🚀
- Days since I needed Span::join on stable: 0
- RustConf just uploaded on YouTube the recording of my C-to-Rust migration talk! Check it out if you want to learn more about the Rust work we've been doing on Redis Query Engine over the past few months. youtu.be/H0AUP2OgppE...
- Concrete goal: define a driver-agnostic way to configure a Postgres connection. Then you research the details, obsess over an aspect (i.e. SSL configuration) and end up working for several ways on a generic way to configure a TLS client policy. Cool, but slow.
- Only two weeks to go!
- We’re excited to announce that @lpalmieri.com is speaking at #EuroRust25! It's a "Rewrite It In Rust" talk: Luca will discuss strategy (and challenges) of migrating Redis Query Engine (65k C LoC) over to Rust. We can’t wait! 🦀 ✨ Check out the schedule 👉 eurorust.eu/schedule/?ut... #Rustlang
- New Redis release, but with a twist. It includes our first Rust patches to Redis Query Engine! In particular, it ships the new TrieMap implementation I wrote with Henk Oordt, as part of @mainmatter.com's ongoing collaboration with Redis.
- Looking forward to both @rustconf.com and @oxidizeconf.bsky.social, where I'll get a chance to dive into the details of the thought process and technical strategy that made this possible.
- That beautiful feeling of being ~done on a 35k lines* PR 🍉 *Don't do this at work. **Many lines are test snapshot updates.
- We have another opening at Mainmatter, this time for a *technical writer*. You'd be working directly with me on new Rust training material, blog posts and other kinds of technical long-form content. If you're interested, send your resume job AT mainmatter DOT com
- Little typo: jobs AT mainmatter DOT com
- Rust 1.89.0 will stabilize let-chains (yay 🎉). In the same release, clippy will flag `if` statements that can be collapsed further using a let-chain. Outcome: your CI will fail when 1.89.0 is released, and you can't fix it ahead of time because the feature clippy wants you to use isn't stable yet 🙃
- If you want to mitigate the problem, slap `#![allow(clippy::collapsible_if)]` on your crate.
- An even better solution from @briansmith.bsky.social: you can set an MSRV *just for clippy* via clippy.toml. This will configure a variety of lints to behave as if you were using that version to run clippy, including the collapsible_if one. Back to fearless toolchain updates!
- It's official now: I'll be a speaker at RustConf 2025 🎉 My talk falls into the "Interop & Migration" theme, covering the work we've been doing with Redis, supporting the migration of some of their C code to Rust. You'll get all the details when the full schedule is announced!
- Two things can be true at the same time: - You can achieve ~everything with enough practice - Dan Luu is spot on when he says that "95%-ile isn't that good" If you've never read the article, this is your chance: danluu.com/p95-skill/
- The Rust-Python workshop at @pyconit is about to start! Seek me out if you're at the conference and you want to talk about native extensions!
- If you're not at PyCon, you can find the workshop material online: rust-exercises.com/rust-python... It's exercise-based, like most of our trainings here at Mainmatter.
- Two weeks left to submit your talk proposals for EuroRust 2025 ⏳ The CfP closes on June 2nd! We're looking for a wide range of contributions: beginner-friendly talks, reports on Rust industrial usage, deep-dives on language features or crates, tutorials, etc.
- You can submit your proposals at www.papercall.io/eurorust-2025
- Pavex is now officially registered as a trademark! Another to-do item can be crossed off the public beta checklist ✅
- The Rust team at Mainmatter has grown, but we need to grow it further! We're looking for freelancers to help us migrate a database from C to Rust. It's an incremental rewrite: a module at a time, interfacing with the existing C code. European hours, full remote, 4 days a week.
- In case you were wondering: work on Pavex continues! I'm reworking the public API to minimize friction. We're shifting towards attribute macros for component egistration. This removes the need to spell out raw paths, a major pain point of the first beta version.
- The goal is for the API to be ~stable on release. The feedback I received (and keep receiving) during the beta is making that more and more of a possibility as we converge on a defensible design.
- Reposted by Luca Palmieriitalians are about to invent a form of corruption so lucrative it will destroy the global economy
- Useful heuristics: if a new feature allows you to delete entire sections out of your documentation, it's a good change.
- It took a few iterations, but the API for sessions in Pavex is _done_. The release includes a guide and two storage implementations (in-memory and Postgres-based). More storage options will follow.
- The guide is here if you're curious! pavex.dev/docs/guide/s...