Here’s the 30-day completion index and recap of my run at the 2023 iThome Ironman contest. Each entry was originally published on iThome — click through to read the original.
This Ironman series was later heavily revised and expanded into my first book, “From Pythonista to Rustacean: A Data Practitioner’s First Guide to Rust” (published by GoTop / Deep Wisdom).
If you’d like a more complete, more up-to-date, more systematic version, your support is very welcome:
Compared to this series, the book adds a hands-on PyO3 extension project, AI-in-production applications with the Candle and Burn frameworks, and a more complete take on engineering practices.
It’s the final day — congrats to me for finishing! These 30 days were a lot like generating art with Stable Diffusion: sometimes maddening, sometimes smooth sailing, but either way we grew through the attempts. Here’s a heap of finish-line sprint shots, with Ferris boy taking center stage (as in the cover above).
I survived~ I have to say, running it “raw” (no buffer of pre-written posts) is pretty hardcore. Writing this down to remind myself: next time, stockpile some articles, or else…
This challenge once again dragged on across two holiday weekends (even though I was the fifth person to sign up, haha), and on top of that my cat needed to see the vet (a healthy little one now, thank heaven, thank earth, thank fate for letting us meet). It was genuinely hard to polish the articles to a level I was fully happy with — especially the project part, where I really couldn’t spend much time debugging and optimizing, and could only find a way to get the existing code running. That’s probably the biggest regret of this challenge:
The project regret
I think many contestants can relate to this: there’s no end to finishing an article, but the Ironman deadline is midnight (the system standard time at the bottom, UTC+0800, turns red — terrifying). Either way, the work is finished the moment a reader sees it, so I’m grateful to everyone who tuned in — especially those who fearlessly clicked the oddly placed hyperlinks, unsurprisingly found something weird, and still managed a knowing smile. And I didn’t expect five more subscribers than last time — many thanks for letting me contribute to the little bell in your top-right corner!
Finally, the goal of this challenge was to explore, from a Python user’s angle, whether Rust + MLOps is worth it. Here’s my personal conclusion (discussion welcome in the comments below!):
I believe Rust is absolutely part of the future — it brings us better performance and cleaner solutions. But for the community this is an addition, not a replacement, just as Scala and R are still around and the little elephant Hadoop will keep us company into old age. For the foreseeable future Python will keep its throne as king of ML, but Rust is absolutely a powerful Swiss Army knife in the toolkit. All in all, Rust + MLOps really is worth it — when we need performance, it’s a perfect fit!
Over the past 30 days we first brought Rust into our daily workflow, built an LLM chatbot project, and then discussed how Rust can be applied from the angles of data, model, and product — what a thrilling ride!
Journey recap
Here’s the in-order roundup of each topic’s posts — please enjoy:
Using the workflow every software project goes through to explain how to gracefully move from Python to Rust — basically, convincing everyone why they should learn Rust 🤣
Back to the MLOps theme, discussing how Rust can shine here from an ML system design angle. This part draws on Chip Huyen’s book Designing Machine Learning Systems, grouped in two-to-three-day blocks, looking at ML systems from the three angles of data, model, and product, and how Rust can be applied in MLOps.