Sign in

Bob Belderbos

@bbelderbos.bsky.social
1.2K followers 134 following 1.6K posts

Developer coach and builder >> belderbos.dev

PostsRepliesMedia
Bob Belderbos @bbelderbos.bsky.social · 18h
How to deal with probabilistic systems (LLMs)? Build deterministic systems around them. My expense invoice scanner is a good example. The LLM reads the invoice and shows me what it finds. I can accept, edit, or discard the result before anything gets added to my records.
111
Bob Belderbos @bbelderbos.bsky.social · 02/10/2026
Agents write code fast. Knowing whether it's right is the slow part. In our cohort you write the code yourself first, learning the patterns behind reliable agents: typed data, Protocols, a service layer, and "the model proposes, you decide". → pythonagenticai.com
011
Bob Belderbos @bbelderbos.bsky.social · 02/10/2026
In an age where we're constantly urged to move faster, sometimes we have to slow down 🏃 💡 So I'm starting a book club: - Read and discuss a classic programming book - 3 weekly threads to discuss learnings + experience - If enough people, get on a call to dive deeper
131
Bob Belderbos @bbelderbos.bsky.social · 01/10/2026
I just hand-coded a simple FSM (Finite State Machine) in #Python 💡 Some people might ask: It’s 2026. Why even code by hand? Because the thinking, debugging, and deeper understanding that go into an exercise like this are still valuable.
130
Bob Belderbos @bbelderbos.bsky.social · 30/09/2026
User: "Refund order 4817." Model: {"order_id": 4871} Valid schema, wrong order. The refund goes out anyway. 😅 Structured outputs guarantee the shape. Not the truth.
111
Bob Belderbos @bbelderbos.bsky.social · 30/09/2026
With LLMs producing more code, judgement + deep fundamental skills really matter now! And in spite of AI supposedly making us so much more productive, these tools trick us into delegating thinking + bias towards shipping fast. But what about deep understanding, knowledge and learning?
100
Bob Belderbos @bbelderbos.bsky.social · 29/09/2026
Knowing #Python syntax != ship a complete app. 🐍 That's the gap my free Python Foundations course bridges. Week 2 is now live. 🎉 Last week we set up the workflow: terminal, Git, uv and your first pull request. This week we give our dev journal a CLI - end state 👇
120
Bob Belderbos @bbelderbos.bsky.social · 29/09/2026
Starting to see the fruits of commitgraph.app Struggling with habits? Maybe you just need something to enforce them? 💡 📈
000
Bob Belderbos @bbelderbos.bsky.social · 29/09/2026
+3 weeks commitgraph.app is really helping with this!
commitgraph.app
commitgraph · Commit to what matters. Every day.
An industrial-grade daily protocol tracker. Up to 5 habits, checked off, with a streak heatmap. No clutter, no gamification.
000
Bob Belderbos @bbelderbos.bsky.social · 29/09/2026
I am definitely leaning towards option 2 when teaching on video. Because tools + speed ≠ learning. But I’m curious to hear from you: Do you prefer videos that show raw, fast execution using modern tools like Claude?
100
Bob Belderbos @bbelderbos.bsky.social · 28/09/2026
Calling an LLM is easy. Building systems around it is hard. 💡 • How do you validate that the response is actually correct? • How do you enforce strict input/output contracts? • How do you test your agent without burning through tokens?
110
Bob Belderbos @bbelderbos.bsky.social · 28/09/2026
With execution speed of LLMs, deep programming fundamentals + knowledge matter now even more. 🚀 And this urges us to keep reading / studying the classics.
121
Bob Belderbos @bbelderbos.bsky.social · 26/09/2026
Coming from Python, Rust can feel intimidating. 🤯 Strict typing. Ownership. Borrowing. It’s a very different mindset from dynamic languages. But you don’t need a background in low-level systems programming to learn #Rust. You need a good transition path from what you already know.
110
Bob Belderbos @bbelderbos.bsky.social · 25/09/2026
Fail fast: break loudly and early, not quietly and later. A missing API key in production shouldn't become a mystery at 3am. In a recent PR, we moved config into a typed Settings class and made the API key a required field. No key → ValidationError that tells you exactly what's missing.
121
Bob Belderbos @bbelderbos.bsky.social · 25/09/2026
pytest 'broke' yesterday had to do a `uv sync --reinstall` Claude's conclusion on the project's tooling: > ruff and ty worked the whole time because they're compiled binaries with no Python path baked in. pytest was the only script that broke.
100
Bob Belderbos @bbelderbos.bsky.social · 24/09/2026
In <Python Agentic AI> we have you build an expense classifier agent. Classifying is the easy part: [in] "Coffee at Starbucks $5.50" [out] Food with 95% certainty. You can ship that but the 56th classification it will go wrong. LLMs are unpredictable.
111
Bob Belderbos @bbelderbos.bsky.social · 24/09/2026
Got this really nice feedback from Wilfred, one of the developers in our current #Rust cohort. 🦀 Apart from putting in the hard work conquering Rust's steep learning curve, this is a good example how our cohort boosts effective learning:
100
Bob Belderbos @bbelderbos.bsky.social · 23/09/2026
The technology is getting faster, but some of the pains are getting worse 🤔 “I'm getting more done, but somehow my workload isn't lower.” → What's the bottom-line gain? “If AI writes most of the code, am I still really engineering?”
120
Bob Belderbos @bbelderbos.bsky.social · 23/09/2026
I love makefiles 💪 😍
000
Bob Belderbos @bbelderbos.bsky.social · 23/09/2026
Nothing like building an app and: 1. validating it works for yourself and others. 💡 2. get real feature requests from people using it. 🚀 Apart from being more consistent with my own habits, I'm happy to see more people are jumping on commitgraph: 9 users are tracking 31 habits right now. 📈
100
Bob Belderbos @bbelderbos.bsky.social · 22/09/2026
When demoing an app, you control the input. A live system has a user doing something random while you're asleep. Better prompting doesn't make your system more robust. It's the reliability layer that's rarely discussed amid the AI hype: - Retries that don't double-fire the webhook
211
Bob Belderbos @bbelderbos.bsky.social · 21/09/2026
Learning #Python 🐍 syntax isn't the hard part. It’s everything around it where beginner devs typically get stuck: - the terminal / SSH keys, - git and the GitHub PR flow, - virtual environments, - dependencies and packaging, - writing your first tests, - linting, - etc.
110
Bob Belderbos @bbelderbos.bsky.social · 21/09/2026
Classic programming books -> better words to steer AI agents. 💡 Listening to Matt Pocock on Pragmatic Engineer. He makes a good point to "mine" classic books for "leading words".
100
Bob Belderbos @bbelderbos.bsky.social · 18/09/2026
My goto for a swappable backend in #python has been an abstract base class (ABC). There is a flexible alternative though: Protocol (typing module). Take LLM providers as an example. An ABC comes with a requirement: every provider has to inherit from your base class.
100
Bob Belderbos @bbelderbos.bsky.social · 18/09/2026
Bruce Lee described the problem with AI coding assistants many years before they existed. He wrote that a teacher is never a giver of truth, only a *catalyst*: "a pointer to the truth that each student must find for himself." That's the exact line between a tool and a teacher or coach.
100
Bob Belderbos @bbelderbos.bsky.social · 17/09/2026
More Rust goodness today 🦀 😄 Here is something weird for Pythonistas coming to Rust: ```rust use std::io::Read; let mut file = File::open("data.txt")?; let mut contents = String::new(); file.read_to_string(&mut contents)?; ``` We import `Read` but it's not being used anywhere?
100
Bob Belderbos @bbelderbos.bsky.social · 17/09/2026
I recommend watching Felienne Hermans' recent talk "AI made me doubt everything about programming" I made me reflect on what #programming really is, how we value hard things more (the value of work), and the choice (responsibility) we have in how we use AI tools + the human side of the craft.
100
Bob Belderbos @bbelderbos.bsky.social · 17/09/2026
To be expected from #Rust's awesome compiler 🦀 but this linting trick I learned today put a smile on my face. 😍 Add `#![warn(missing_docs)]` at the top of lib.rs and `cargo build` will output the exact list of missing docs.
120
Bob Belderbos @bbelderbos.bsky.social · 16/09/2026
It's nice to get some early wins in every day. 💪 Feeling a bit less disciplined lately? Start tracking your habits with commitgraph.app, a little tool I built to stay accountable to yourself through tracking. Because Peter Drucker said it well 💡 "what gets measured gets managed"
100
Bob Belderbos @bbelderbos.bsky.social · 15/09/2026
@jhodapp what are we doing to Pythonistas? 🤣 One of our students just told me he's noticing an increased use of #Rust idioms in his #Python code 🦀
000
Bob Belderbos @bbelderbos.bsky.social · 15/09/2026
Who has gone local with LLMs for coding? Something like Ollama + Qwen3-Coder + OpenCode/Aider, or a different setup? I'm curious how the best local models compare to the big frontier models for real coding/agentic work? And what are you running them on?
000
Bob Belderbos @bbelderbos.bsky.social · 14/09/2026
How do libraries run #Rust inside #Python? It all comes down to 4 steps: 1. Write Rust code. 2. Annotate it with PyO3 macros. 3. Let maturin compile and install it. 4. Import the result. New article seeing this in action for a hand-rolled JSON parser: belderbos.dev/blog/how-li...
010
Bob Belderbos @bbelderbos.bsky.social · 12/09/2026
There are people saying that now AI writes the code, you shouldn't need to know how to code. I think that misses the point.
110
Reposted by Bob Belderbos
Christopher Trudeau @trudeau.dev · 11/09/2026
On this week's episode, @digiglean.bsky.social and I talk about Polars vs SQL, signed links, loads of news, and more. With content from: @wagtail.org @marcogorelli.bsky.social @bbelderbos.bsky.social @snarky.ca @jetbrains.com and others not on the 🦋 buff.ly/Sl499af
realpython.com
Episode #311: Django Developers Survey Results & Reproducible Python Builds – The Real Python Podcast
What are the latest trends uncovered in the 2026 Django Developers Survey? How are Django users employing LLMs in their development process? Christopher Trudeau is back on the show this week with…
183
Bob Belderbos @bbelderbos.bsky.social · 11/09/2026
We went from “tutorial paralysis” to “build and change paralysis” in a matter of years. Now AI can build anything. But is it the right thing? AI can modify the code. But how do you give it enough context without breaking things?
100
Bob Belderbos @bbelderbos.bsky.social · 11/09/2026
Come learn #Rust with me as your coach reltech.substack.com/p/come-learn...
reltech.substack.com
Come learn Rust with me as your coach
Your chance to learn Rust in a fun group setting kicks off in 5 days
000
Bob Belderbos @bbelderbos.bsky.social · 11/09/2026
Happy Friday! How's your productivity these days? I built a small tool to track important habits and see a graph how committed you are over time. I've used it for a week now and it's a nice daily push to focus on the things I really need to do. 🚀 Try it out here: commitgraph.app
000
Bob Belderbos @bbelderbos.bsky.social · 10/09/2026
A lot of developers can write Python. Fewer can explain what happens underneath it. - What owns this data? - Who can mutate it? - Where are the allocations? - What happens when this fails? - Why is this code slow? - Where is the boundary between Python and native code?
110
Bob Belderbos @bbelderbos.bsky.social · 10/09/2026
Spent 1 hour writing Python code. Spent 4 hours fighting PATH errors, virtual environments, and a merge conflict that seemed impossible to resolve. 🤬 If you're learning #Python, you've probably noticed that the syntax is rarely the hard part. It's everything around it: → the terminal
100
Bob Belderbos @bbelderbos.bsky.social · 09/09/2026
FastAPI authentication is pretty well documented. Role-based access control (RBAC) is not always that intuitive though. 🤔 I have seen `if "Admin" not in user.roles: raise 403` hardcoded across different routes. Ok so use a decorator, but what about changing roles over time?
110
Bob Belderbos @bbelderbos.bsky.social · 09/09/2026
I think this is a good realization by Sean Goedecke around #AI models and valuable skills moving forward: > We are not going to wake up in 2027 to find that the AI craze is over and everyone is writing code by hand again.
100
Bob Belderbos @bbelderbos.bsky.social · 08/09/2026
The abstraction has moved up. Less syntax more decisions. 🚀 Practical greenfield example: Claude built my habit tracker in an afternoon. Some 'vibe coders' would call it done at this point. Engineers know this is where the real work starts:
100
Bob Belderbos @bbelderbos.bsky.social · 07/09/2026
Learning #Rust is so much more fun with an engaging group! As a #Python coach, seeing developers going from zero Rust to writing a performant JSON parser is an amazing feeling. 😍 🚀
100
Bob Belderbos @bbelderbos.bsky.social · 07/09/2026
5 useful #Python patterns building a habit tracker app over the weekend: 1. Pure functions for more testable code 2. A schedule is a 7-bit integer 3. Let the standard library build the month grid 4. A query vocabulary on the (#Django) model 5. "Done and due" is set algebra
101
Bob Belderbos @bbelderbos.bsky.social · 06/09/2026
Claude code spent 20% of time (or less) to get to 80% of a new app I am building. Then I spent 80% (and ongoing) to get the final 20% right.
100
Bob Belderbos @bbelderbos.bsky.social · 06/09/2026
AI made building fast. That includes building the wrong thing faster. Before writing code, you need a tight scope: what to build, and more importantly, what NOT to build. I built a simple tool to pressure-test your idea before you spend weeks building it:
101
Bob Belderbos @bbelderbos.bsky.social · 05/09/2026
Why I'd still learn #Rust 🦀 by hand in 2026 Justin Schroeder said something that stuck with me: > "Rust was such a horrible language for humans to write, and that's precisely what makes it incredible for agents." Isn't that interesting?
100
Bob Belderbos @bbelderbos.bsky.social · 04/09/2026
Ruff flagged an unused import in Alembic's env.py Quick fix: ignore the linter :) `# noqa: F401` Instead this time I stopped and asked: > why is this import here if I never use it?
100
Bob Belderbos @bbelderbos.bsky.social · 04/09/2026
Task finished != you've learned something. I think this is becoming increasingly important these days! Yes, use AI / agents, but stay knowledgeable. That's why I encourage you now more than ever to keep blogging + teaching; it forces you to really internalize things. 🚀
000
Bob Belderbos @bbelderbos.bsky.social · 04/09/2026
Coding is nice, talking about code can be even more interesting. #Rust platform feedback / request: > I am missing the discussion about different solutions I remember from PyBites. That was the best part of the platform for me. Great idea and live now! 🎉
100