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.
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
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!
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!
June 26, 2025 at 6:46 AM
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!
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!
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!
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.
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.
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_.
Quick reminder that in two weeks I'll be at RustNation UK, teaching folks how to get Rust and Python to play nice with each other!
I'll be around during the talk day as well, so hit me up if you want to chat about all things Rust.
I'll be around during the talk day as well, so hit me up if you want to chat about all things Rust.
February 5, 2025 at 4:00 PM
Quick reminder that in two weeks I'll be at RustNation UK, teaching folks how to get Rust and Python to play nice with each other!
I'll be around during the talk day as well, so hit me up if you want to chat about all things Rust.
I'll be around during the talk day as well, so hit me up if you want to chat about all things Rust.
I published the first version of `tracing_log_error`, a new utility for logging errors in Rust projects.
It provides `log_error!`, a macro that captures everything you may care about when it comes to error, with consistent naming as a bonus.
It provides `log_error!`, a macro that captures everything you may care about when it comes to error, with consistent naming as a bonus.
January 21, 2025 at 11:00 AM
I published the first version of `tracing_log_error`, a new utility for logging errors in Rust projects.
It provides `log_error!`, a macro that captures everything you may care about when it comes to error, with consistent naming as a bonus.
It provides `log_error!`, a macro that captures everything you may care about when it comes to error, with consistent naming as a bonus.
"Railroad visualization" links to: lukaslueg.github.io/macro_railr...
It didn't help me as much as `-Z trace-macros`, but the output is so visually pleasing.
It didn't help me as much as `-Z trace-macros`, but the output is so visually pleasing.
January 17, 2025 at 3:04 PM
"Railroad visualization" links to: lukaslueg.github.io/macro_railr...
It didn't help me as much as `-Z trace-macros`, but the output is so visually pleasing.
It didn't help me as much as `-Z trace-macros`, but the output is so visually pleasing.
I found myself writing a gnarly declarative macro today, so I had to learn _again_ how to debug them.
This time I took the time to write down the tools I used, easing the work of my future self (or other contributors).
This time I took the time to write down the tools I used, easing the work of my future self (or other contributors).
January 17, 2025 at 3:04 PM
I found myself writing a gnarly declarative macro today, so I had to learn _again_ how to debug them.
This time I took the time to write down the tools I used, easing the work of my future self (or other contributors).
This time I took the time to write down the tools I used, easing the work of my future self (or other contributors).
"Die young, or live long enough to become the villain"
The minimal architectural style I used in "Zero to Production in Rust" is being used an example of a "Very Bad Application" in one of the articles featured in This Week in Rust.
I'm more amused than offended to be honest.
The minimal architectural style I used in "Zero to Production in Rust" is being used an example of a "Very Bad Application" in one of the articles featured in This Week in Rust.
I'm more amused than offended to be honest.
January 9, 2025 at 4:21 PM
"Die young, or live long enough to become the villain"
The minimal architectural style I used in "Zero to Production in Rust" is being used an example of a "Very Bad Application" in one of the articles featured in This Week in Rust.
I'm more amused than offended to be honest.
The minimal architectural style I used in "Zero to Production in Rust" is being used an example of a "Very Bad Application" in one of the articles featured in This Week in Rust.
I'm more amused than offended to be honest.
Sprinkling some ASCII art throughout the new concurrency chapter of our Rust-Python course ✨
January 9, 2025 at 11:00 AM
Sprinkling some ASCII art throughout the new concurrency chapter of our Rust-Python course ✨
Productivity tip: define a layout with the panes you _always_ use when working on a project.
`zellij --layout run-layout.kdl` and you're then ready to work!
Faster than creating a new tab, creating each pane, getting command from historys, etc. Easier for contributors, too!
`zellij --layout run-layout.kdl` and you're then ready to work!
Faster than creating a new tab, creating each pane, getting command from historys, etc. Easier for contributors, too!
December 12, 2024 at 8:50 AM
Productivity tip: define a layout with the panes you _always_ use when working on a project.
`zellij --layout run-layout.kdl` and you're then ready to work!
Faster than creating a new tab, creating each pane, getting command from historys, etc. Easier for contributors, too!
`zellij --layout run-layout.kdl` and you're then ready to work!
Faster than creating a new tab, creating each pane, getting command from historys, etc. Easier for contributors, too!
Me at $work: "Small PRs folks, we need fast turnaround with as few defects as possible"
Me on my solo projects:
Me on my solo projects:
November 25, 2024 at 11:00 AM
Me at $work: "Small PRs folks, we need fast turnaround with as few defects as possible"
Me on my solo projects:
Me on my solo projects: