Vibe coding complex changes in Rust
Those who have followed me for a while may already know that I'm a bit of an ML Luddite — it's not that I'm opposed to the use of ML-based tools, but rather that I haven't personally found much use for them in my day-to-day work, especially when it comes to programming. My hypothesis thus far has been that this at least in part due to the nature of the work I'm doing; it often does not fit neatly into ML's strong-suit, namely pattern-replication where there are already plenty of examples for the ML to draw upon.
Well, there's enough hype around vibe coding these days, and especially agentic AI coding assistants like Claude Code, that I felt like I should try it "in anger". Concretely, I have some non-trivial changes I'd like to make to the type-safe rigid body transformation crate Sguaba ( https://github.com/helsing-ai/sguaba ), and figured this could be a good testing ground. Sguaba doesn't have too much code, but it is sufficiently involved both in terms of the implemented logic and the use of Rust's type system that I think the ML will have its job cut out for it.
This video is my attempt at disproving my own skepticism — working with Claude Code to implement some of these changes end-to-end. I also haven't used these tools myself at all thus far, only watched a few videos and read a few blog posts, so this is an unfiltered first-and-second impressions experience! We got through two (the easiest two) out of the four things, and then ran out of tokens 😅 But overall the experience was interesting and educational. I don't think it disproved my skepticism, though it did certainly prove that with sufficient pair programming, you can get very far. Still unclear to me that it saves time overall though, at least for specifically these kinds of tasks.
If you're interested in finding out more about the sponsor of this video, Hudson River Trading, see https://www.hudsonrivertrading.com/gjengset
The slides for the Sguaba presentation, you can find at https://jon.thesquareplanet.com/slides/sguaba/
The final PRs to Sguaba are https://github.com/helsing-ai/sguaba/pull/27 and https://github.com/helsing-ai/sguaba/pull/28
0:00:00 My skepticism
0:07:00 The sguaba crate
0:25:18 Compile-time asserting macro constructor
1:30:38 Builder that restricts order with type-state
2:28:17 What I wanted to do next
2:36:06 Concluding thoughts
2:37:28 Questions
2:58:24 A wild sponsor appears!
Live version with chat:
Other Videos By Jon Gjengset
2025-08-01 | Vibe coding complex changes in Rust |
2025-05-30 | Explaining assembly by playing SHENZHEN I/O |
2025-03-10 | Porting the guff plot device to Rust |
2025-01-02 | January 2025 Q&A |
2024-09-21 | Decrusting the quickcheck crate |
2024-08-25 | Implementing a Lox interpreter in Rust |
2024-07-14 | Open Source Maintenance, 2024-07-14 |
2024-05-18 | What's New in Rust 1.72-1.78 Rustacean Station marathon |
2024-05-04 | Q&A May 2024 |
2024-04-05 | Decrusting the tokio crate |
2024-03-09 | Implementing (parts of) git from scratch in Rust |
2024-02-09 | Decrusting the tracing crate |
2024-02-06 | Jon Gjengset Live Stream |
2024-01-14 | Hardware and software [2024 edition] |
2023-12-16 | Q&A December 2023 |
2023-12-15 | Q&A Session |
2023-11-17 | Making the (partial) Rust BitTorrent client more reasonable |
2023-10-19 | Implementing (part of) a BitTorrent client in Rust |
2023-08-26 | Open Source Maintenance, 2023-08-25 |
2023-08-13 | Open Source Maintenance, 2023-08-13 |
2023-08-06 | Open Source Maintenance, 2023-08-06 |