Sign in

Luca Palmieri

@lpalmieri.com
3.1K followers 178 following 164 posts

Author of zero2prod.com, a book on backend development in Rust, and 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.

PostsRepliesMedia
Luca Palmieri @lpalmieri.com · 26/09/2026
Now it's time to go back to building products! I'll be starting something of my own in the world of agentic engineering, with a focus on security and governance. (if that sounds interesting, stay tuned: we'll be building up the team over the coming weeks 🏗️)
2220
Luca Palmieri @lpalmieri.com · 26/09/2026
Next Wednesday will be my last day at Mainmatter. I joined as the first Rust hire, with a simple goal: build a world-class consulting team for Rust. 3 years later, Mainmatter is a household name in the space—it wasn't always easy, but I learned a lot during the ride.
2260
Luca Palmieri @lpalmieri.com · 30/06/2026
GitHub's UI is slow and quite terrible when it comes to reviewing large changesets.
000
Luca Palmieri @lpalmieri.com · 30/06/2026
I'll check it out!
010
Luca Palmieri @lpalmieri.com · 30/06/2026
For purely local reviews of my own code I'm using hunk and that works just fine. But I need something that lets me comment locally/in the browser and then syncs with remote. I'd prefer not to build it myself.
200
Luca Palmieri @lpalmieri.com · 30/06/2026
Pierre's diff are superb, but I can't leave comments via Diffhub, and having to then track down the same line range in the GitHub PR diff view is not exactly efficient :/
100
Luca Palmieri @lpalmieri.com · 30/06/2026
On PR reviews: not something that the whole team must adopt; simply a more effective UI for me, which integrates back into GitHub's "native" PR review flow.
120
Luca Palmieri @lpalmieri.com · 30/06/2026
Looking for your wisdom folks. I am increasingly interested in: - Better *single-user* tools for PR reviews. - Products to spin up multiple cloud-hosted agents for coding purposes. No need for long-running VMs, ephemeral is good enough. What should I be checking out?
350
Luca Palmieri @lpalmieri.com · 16/06/2026
This is going to be an interesting chat!
0121
Luca Palmieri @lpalmieri.com · 11/06/2026
You're not the first one to remark on that! But in my heart it's C Header Gen(erator) ❤️
010
Luca Palmieri @lpalmieri.com · 11/06/2026
I've been spending quite some time working on a mixed C/Rust project over the past year. cbindgen is the established solution in this space, but we ran into enough friction during an incremental C→Rust migration that I started exploring a different approach.
020
Luca Palmieri @lpalmieri.com · 11/06/2026
cheadergen, a new tool for generating C headers from #rust crates, is now ready to try! I've been working on it for a while, and it has seen enough real-world use that I'm comfortable recommending it to others. Documentation, examples, and source at cheadergen.com
cheadergen.com
Introduction - cheadergen
Generate C/C++ headers from Rust libraries that expose a `pub extern "C"` API.
281
Luca Palmieri @lpalmieri.com · 30/05/2026
Pretty close, yep! If only I could use it—never got a chance, on any of the projects I worked on 🥲
100
Luca Palmieri @lpalmieri.com · 29/05/2026
That weird urge to go build a new CI platform. Pure control plane for task orchestration, plug-your-own-compute with a marketplace of vendors, easy to bridge to GHA for initial adoption.
4140
Luca Palmieri @lpalmieri.com · 23/05/2026
I still use jj workspaces to drive multiple agents in parallel, so the need for worktree-like primitives doesn't go away entirely!
120
Luca Palmieri @lpalmieri.com · 23/05/2026
But it also sucks to perform commit surgery on a branch with 80+ revisions, which you intentionally created to be able to split this into granular PRs which can be sanely reviewed. With a bit of AI support, you can improve the life of the reviewer with minimal overhead.
020
Luca Palmieri @lpalmieri.com · 23/05/2026
Latest occurrence: I'm currently working on a trait redesign which requires touching _every single impl_ in the project (>30). As you work through the impl, you realize some tweaks are needed to the design and start accumulating clean-up commits. It'd suck to review that.
130
Luca Palmieri @lpalmieri.com · 23/05/2026
Underrated agentic workflow: take a messy commit history and slowly rewrite it into atomic revisions that can be reviewed and merged independently. Works beautifully with jujutsu (jj), using a duplicated branch to ensure no destructive changes are made to the original PoC.
2210
Luca Palmieri @lpalmieri.com · 17/05/2026
I had not realized the situation had degraded to such a degree. Hugs ♥️
030
Luca Palmieri @lpalmieri.com · 03/05/2026
They are rough around the edges, but if you take them for a spin let me know how you find them!
000
Luca Palmieri @lpalmieri.com · 03/05/2026
This is actually not a proc macro! The main usage happens in CLI-style tooling—e.g. Pavex's transpiler. The main goal of extracting the core out is to reuse the technology across different projects.
010
Luca Palmieri @lpalmieri.com · 03/05/2026
Little update on my reflection adventures: I have extracted the core components of Pavex's compile-time reflection engine as a set of standalone crates! It serves as a preliminary step ahead of another release in the coming weeks 🛠️
2241
Luca Palmieri @lpalmieri.com · 18/04/2026
Not in London anymore! But I swing by once or twice a year
040
Luca Palmieri @lpalmieri.com · 16/02/2026
I like to defy expectations from time to time.
010
Luca Palmieri @lpalmieri.com · 16/02/2026
You won't get pushback from me on the topic—you need to know the fundamentals to drive these tools effectively. It's up to the organisation to set expectations and norms around LLM usage.
110
Luca Palmieri @lpalmieri.com · 16/02/2026
I was inspired to write this down by @oxide.computer's podcast episode on software rigour in the LLM age. There's a ton of interesting work in this area, but it gets drowned by the larger discourse. So here I am, trying to do my part in pushing it above the noise threshold!
140
Luca Palmieri @lpalmieri.com · 16/02/2026
The mainstream conversation around AI agents is stuck on "AI slop." There's more to it: we can use cheap agent code to do quality-raising work that didn't make economic sense before. What's viable now that writing code isn't the primary bottleneck? lpalmieri.com/posts/agenti...
lpalmieri.com
Can agentic coding raise the quality bar?
Five examples of using agentic coding to improve software quality, instead of delivery throughput.
3293
Luca Palmieri @lpalmieri.com · 11/02/2026
Depending on the coast, it _may_ be possible to make it work for freelancers. Some clients do require occasional onsite travel, which is why Europe-based is preferred for employees.
120
Luca Palmieri @lpalmieri.com · 11/02/2026
New year, new vacancies: Mainmatter is looking (again!) for an experienced Rust developer to join our Rust migration projects. C, C++, Delphi. Different starting points, same target: Rust! If you're interested, send an email to the address in the screenshot.
3198
Luca Palmieri @lpalmieri.com · 09/12/2025
You can find the full job post here: gist.github.com/marcoow/2948...
gist.github.com
Rust Engineering Consultant – Backends.md
GitHub Gist: instantly share code, notes, and snippets.
050
Luca Palmieri @lpalmieri.com · 09/12/2025
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!
1121
Luca Palmieri @lpalmieri.com · 04/11/2025
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.
Email jobs@mainmatter.com with your resume, rate and availability.
1206
Luca Palmieri @lpalmieri.com · 23/10/2025
Best of luck! The lineup at @ersc.io looks pretty sick!
020
Luca Palmieri @lpalmieri.com · 21/10/2025
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 🚀
072
Luca Palmieri @lpalmieri.com · 21/10/2025
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.
1100
Luca Palmieri @lpalmieri.com · 16/10/2025
Days since I needed Span::join on stable: 0
060
Luca Palmieri @lpalmieri.com · 04/10/2025
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...
youtube.com
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/...
1303
Luca Palmieri @lpalmieri.com · 29/09/2025
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.
020
Luca Palmieri @lpalmieri.com · 24/09/2025
Only two weeks to go!
0100
Luca Palmieri @lpalmieri.com · 05/09/2025
Thank you!
010
Luca Palmieri @lpalmieri.com · 03/09/2025
👀
150
Luca Palmieri @lpalmieri.com · 11/08/2025
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.
091
Luca Palmieri @lpalmieri.com · 11/08/2025
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.
Release notes for Redis 8.2.0
1132
Luca Palmieri @lpalmieri.com · 03/07/2025
That beautiful feeling of being ~done on a 35k lines* PR 🍉 *Don't do this at work. **Many lines are test snapshot updates.
0100
Luca Palmieri @lpalmieri.com · 26/06/2025
Especially for compiler lints, but it's a step in the right direction.
000
Luca Palmieri @lpalmieri.com · 26/06/2025
Little typo: jobs AT mainmatter DOT com
000
Luca Palmieri @lpalmieri.com · 26/06/2025
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
2114
Luca Palmieri @lpalmieri.com · 26/06/2025
Then might be now apparently, if one is well-versed enough in clippy-config-fu. bsky.app/profile/lpal...
020
Luca Palmieri @lpalmieri.com · 26/06/2025
It turns out clippy has this at home, just named differently from what we would expect! bsky.app/profile/lpal...
260
Luca Palmieri @lpalmieri.com · 26/06/2025
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!
2134