Luca Palmieri
@lpalmieri.com
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.
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 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.
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.
November 4, 2025 at 9:28 AM
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.
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.
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.
October 21, 2025 at 11:17 AM
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.
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.
Days since I needed Span::join on stable: 0
October 16, 2025 at 10:32 AM
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...
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...
Luca Palmieri: "Rewrite, Optimize, Repeat: Our Journey Porting a Triemap from C to Rust" | RustConf
Slides: https://docs.google.com/presentation/d/1HQAISo6jnNdxO_0YPfEAbtF7OVD0yWDDaNtWwcpay6E/edit?usp=sharingRediSearch GitHub repository: https://github.com/...
www.youtube.com
October 4, 2025 at 10:11 AM
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...
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.
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.
September 29, 2025 at 10:00 AM
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.
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
Check out the schedule 👉 eurorust.eu/schedule/?ut...
#Rustlang
September 24, 2025 at 8:04 AM
Only two weeks to go!
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.
In particular, it ships the new TrieMap implementation I wrote with Henk Oordt, as part of @mainmatter.com's ongoing collaboration with Redis.
August 11, 2025 at 1:50 PM
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.
In particular, it ships the new TrieMap implementation I wrote with Henk Oordt, as part of @mainmatter.com's ongoing collaboration with Redis.
That beautiful feeling of being ~done on a 35k lines* PR 🍉
*Don't do this at work.
**Many lines are test snapshot updates.
*Don't do this at work.
**Many lines are test snapshot updates.
July 3, 2025 at 12:25 PM
That beautiful feeling of being ~done on a 35k lines* PR 🍉
*Don't do this at work.
**Many lines are test snapshot updates.
*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
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
June 26, 2025 at 9:48 AM
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
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
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 🙃
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 🙃
June 25, 2025 at 9:24 AM
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 🙃
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 🙃
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!
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!
June 11, 2025 at 11:59 AM
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!
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/
- 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/
May 31, 2025 at 12:06 PM
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/
- 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!
Seek me out if you're at the conference and you want to talk about native extensions!
May 29, 2025 at 7:26 AM
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!
Seek me out if you're at the conference and you want to talk about native extensions!
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.
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.
May 26, 2025 at 12:33 PM
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.
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.
Pavex is now officially registered as a trademark!
Another to-do item can be crossed off the public beta checklist ✅
Another to-do item can be crossed off the public beta checklist ✅
May 22, 2025 at 11:54 AM
Pavex is now officially registered as a trademark!
Another to-do item can be crossed off the public beta checklist ✅
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.
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.
April 16, 2025 at 12:13 PM
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.
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.
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.
April 16, 2025 at 11:01 AM
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.
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.
Reposted by Luca Palmieri
italians are about to invent a form of corruption so lucrative it will destroy the global economy
The Vatican was excluded from the tariff list and Italy is at the 20% EU rate. I hope some scheming cardinal sees the opportunity here.
April 4, 2025 at 5:37 AM
italians 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.
March 8, 2025 at 10:13 AM
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 release includes a guide and two storage implementations (in-memory and Postgres-based). More storage options will follow.
March 3, 2025 at 11:00 AM
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 release includes a guide and two storage implementations (in-memory and Postgres-based). More storage options will follow.
At Mainmatter we're looking for Rust contractors to augment our internal consulting team.
Two different profiles:
- Rust, with a background in production C/C++
- Rust on the backend
The rate is 500-800 euros/day. Remote, but you *must* be in a European timezone.
More details ↓
Two different profiles:
- Rust, with a background in production C/C++
- Rust on the backend
The rate is 500-800 euros/day. Remote, but you *must* be in a European timezone.
More details ↓
February 27, 2025 at 1:00 PM
At Mainmatter we're looking for Rust contractors to augment our internal consulting team.
Two different profiles:
- Rust, with a background in production C/C++
- Rust on the backend
The rate is 500-800 euros/day. Remote, but you *must* be in a European timezone.
More details ↓
Two different profiles:
- Rust, with a background in production C/C++
- Rust on the backend
The rate is 500-800 euros/day. Remote, but you *must* be in a European timezone.
More details ↓
Sessions for Pavex are *almost* done now.
Just a couple more finishing touches.
Just a couple more finishing touches.
February 22, 2025 at 3:38 PM
Sessions for Pavex are *almost* done now.
Just a couple more finishing touches.
Just a couple more finishing touches.
Within every #rust engineer there are two wolves: one loves `serde`, the other hates returning deserialization errors one at a time to their users.
We wrote `eserde` to bring you peace.
(To bring _me_ peace too, at last!)
We wrote `eserde` to bring you peace.
(To bring _me_ peace too, at last!)
February 18, 2025 at 4:57 PM
Within every #rust engineer there are two wolves: one loves `serde`, the other hates returning deserialization errors one at a time to their users.
We wrote `eserde` to bring you peace.
(To bring _me_ peace too, at last!)
We wrote `eserde` to bring you peace.
(To bring _me_ peace too, at last!)
Amazing to see "100 Exercises to Learn Rust" mentioned by name on this year's Rust survey as one of the most common ways to learn the language.
It's been an incredible year for that course!
It's been an incredible year for that course!
February 13, 2025 at 12:55 PM
Amazing to see "100 Exercises to Learn Rust" mentioned by name on this year's Rust survey as one of the most common ways to learn the language.
It's been an incredible year for that course!
It's been an incredible year for that course!
Having some ✨fun✨ with tracking the path for fields who failed to deserialize.
Friday tip: if you ignore a test, write down _why_.
Friday tip: if you ignore a test, write down _why_.
February 7, 2025 at 4:25 PM
Having some ✨fun✨ with tracking the path for fields who failed to deserialize.
Friday tip: if you ignore a test, write down _why_.
Friday tip: if you ignore a test, write down _why_.