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?
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.
This is going to be an interesting chat!
How do you rewrite C/C++ projects to Rust without stopping the world? Join @bravit.bsky.social and @lpalmieri.com to find out. 📅 Jun 23 ⏰: 17:00 UTC Watch on X: x.com/i/broadcasts... Watch on YouTube: youtube.com/watch?v=_Ltg...
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
Introduction - cheadergen
Generate C/C++ headers from Rust libraries that expose a `pub extern "C"` API.
cheadergen.com
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.
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.
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 🛠️
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...
Can agentic coding raise the quality bar?
Five examples of using agentic coding to improve software quality, instead of delivery throughput.
lpalmieri.com
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.
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!
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.
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...
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/...
youtube.com
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.
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
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 🙃
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!
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.
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.
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.
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.
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 ↓