Keeping up might be the worst strategy
Hey there,
May was a month of deep work and dodging the AI hype. Here are 5 things on staying deliberate, mastering Rust, and why 'vibe coding' doesn't cut it.
1) Keeping up with tech change is overwhelming
Two quotes to ponder on this month. First, from Mark Twain:
Whenever you find yourself on the side of the majority, it is time to reform (or pause and reflect).
And then, the modern equivalent from Cal Newport:
To support deep work often requires the rejection of much of what is new and high-tech.
Social media and LLMs have two things in common: dopamine rushes and addiction.
So, less AI hype; more time to be disciplined, but also deliberate.
Invest in the new tools but don't lose the core skills.
Use AI, but stay in the editor, also keep writing your own code.
This is also the reason I've picked up timeless software books like Ousterhout's A Philosophy of Software Design and Uncle Bob's Clean Code (last year the 2nd ed came out ๐).
This Clean Code passage stuck with me:
Learning to write clean code is hard work. It requires more than just the knowledge of principles and patterns. You must sweat over it. You must practice it yourself, and watch yourself fail. You must watch others practice it and fail. You must see them stumble and retrace their steps. You must see them agonize over decisions and see the price they pay for making those decisions the wrong way. โ Clean Code, 2nd ed
The feedback from somebody in our Rust cohort is a great testament to this:
Going through the Rust cohort feels a lot like learning to program again but this time on a new, higher level. I challenge my old (easy, verbose) ways and instead look a lot more for the idiomatic, Rustacean way. When I work with my code, I find myself advancing extremely slowly because I discover so much more along the way. Yes, I am learning programming (again).
There is something to say for ongoing struggle, it's how we became good engineers in the first place, and learned how to debug well.
The hype around AI throughput is a real risk. So is the brain fatigue from absorbing so much new information fast (I had to do a siesta today after a serious sprint yesterday, just saying). How do you find that balance?
2) The blog is growing ๐
Last newsletter I had 10 articles; it's 22 now. A few worth a click:
- From Hobby Code to SaaS to Orchestrating AI Agents -> Ryan went from "is my architecture sound?" in 2021 to directing AI agents in production. The foundation made the difference.
- The race condition Rust wouldn't let me write -> concrete example of how the borrow checker catches what Python silently allows.
- Event sourcing in Python: store events, not state -> a different way to think about data over time.
Full list: belderbos.dev/blog, any feedback is welcome.
3) Agentic AI and Rust cohorts
Apart from the "really learning it" feedback earlier, Josh, who was in the previous run, managed to make his JSON parser (the thing we built in the Rust cohort) faster than the built-in Python C implementation ๐ฅ
For Agentic AI, I added 10 warm up exercises so you get a feel and taste what we teach. Interestingly I did not need any infrastructure, Pyodide did the trick.
Both cohorts kick off again in June:
- Python Agentic AI (8th) โ pythonagenticai.com ยท YouTube
- Python โ Rust (15th) โ scriptertorust.com ยท YouTube
If you've been on the fence, grab a spot. Reply if you want to first chat about it.
4) To spec or not to spec?
Somebody wrote about specs and if/when to update them. I commented with some reflections:
There is so much to learn as you build it and get real people to use it, that I don't believe a single spec can be successful. This morning my 'initial spec' Claude could build in 20 min, decent mvp, but it was also a quick prototype. Calling it actually done took me another 5-6 hours. When users start using it it will take a couple of hours more. So yeah small steps + lot of iterations for me; the tools make the loops faster, but this all still takes a lot of experience, judgement and taste, because that's what AI tools cannot automate away for us (at least yet).
I'm skeptical of spec-driven development. It helps you start, but then you have to stay close to the code and iterate on real user feedback. This is the reason AI tools only work in small increments and focused tasks, and this takes time.
Aside from the 'vibe coding' AI hype, software development is still hard and AI tools are definitely not making this 10x faster.
Ethan Ding's Claude Code is not making your product lands on a similar point, worth a read.
5) Coding Challenges
I've been playing with this idea for a while and did a 10-day Rust challenge which was well received, although I think mini projects are more fun than isolated exercises, so that will be the way I'm going with this.
You will see the first one next week on the blog, my LinkedIn, and a new GitHub repo. Stay tuned, and reply if you have ideas for particular challenges.
One cool idea I already received:
A practical application might be to scan YouTube for videos/transcripts on topics of interest and consolidate multiple reputable accounts into a holistic summary for personal learning.
Curious to hear from you, what are you working on? How do you use and balance AI? What do you want to learn this year?
If you know developers who'd benefit from this, please forward this newsletter to them or have them sign up here. ๐
Have a great rest of the month!
โ Bob