Bob Belderbos
banner
bbelderbos.bsky.social
Bob Belderbos
@bbelderbos.bsky.social
Co-founder @pybites.bsky.social. Python developer & coach helping devs level up with project-based learning & modern Python. Start here → https://pybit.es
I love how we go deep into Rust core features in our Scripter to Rust cohort.

Code example that came up:
February 6, 2026 at 4:00 PM
TIL that #GitHub renders Mermaid diagrams natively in markdown files. Just use a fenced code block with `mermaid` as the language. 🚀

Works in READMEs, issues, PRs, and wikis.
No external tools needed, the diagram lives in your md, version-controlled with your code. 😍
February 5, 2026 at 12:52 PM
Spotted in a code review:

```python
if units == "f":
    temp_str = f"{celsius}°F"
else:
    temp_str = f"{celsius}°C"

# Later in another file...
units = console.input("Units? (c/f): ").strip() or "c"

# And in yet another place...
February 5, 2026 at 11:00 AM
Formatting timestamps with manual string slicing? That can be fragile.

Instead of formatting timestamps all over your code, keep the formatting close to the data (encapsulation).
February 4, 2026 at 7:00 PM
“I need a CLI tool. I’ll build a CLI tool.”

Then someone asked:

“Can I access this via a REST API?”

My answer used to be:

“No… I’d have to rewrite everything.” 😬
February 4, 2026 at 1:14 PM
Learning #Rust made me a better #Python programmer.

Not because I write Rust at work. Because Rust forced me to think about things I'd been ignoring and I never realized this fact.
February 3, 2026 at 8:00 PM
Stop scattering `if/elif` checks across your code to manage workflow states.

If your feature has a real lifecycle (draft → review → approved → published), model it as a **state machine**.
February 2, 2026 at 4:16 PM
Your favorite #Python 🐍 libraries are lying to you.

• `pip install orjson` - that's Rust.
• `pip install polars` - Rust.
• `pip install cryptography` - Rust.
• `pip install pydantic` - the core is Rust.
• `pip install ruff` - Rust again.
January 30, 2026 at 3:24 PM
Create GitHub issues faster from the CLI

Combine `gh`, `fzf`, and your `$EDITOR` to create issues without leaving the terminal 👇

This gives you fuzzy search for assignees and your familiar editor for composing the issue body—much faster than the web UI.
January 30, 2026 at 1:00 PM
Stop writing scripts, start building systems.
January 29, 2026 at 8:00 PM
"The borrow checker is fighting me!" 🥊

No, it's not. It's saving you from a 3 AM debugging session three months from now.

In Python, variables are references. You pass an object around, everyone shares it.

In Rust, by default, Ownership is exclusive.
January 29, 2026 at 1:00 PM
Watching 10 hours of video tutorials makes you a viewer, not a coder. 

Most developers stay in "Passive Consumption" mode because it feels safe. You watch an instructor set up a pytest environment or configure a Docker container and think, "I get it."
January 28, 2026 at 3:48 PM
Errors should not pass silently, so stop hiding them.

In Week 2 of our Pybites dev Rust cohort, we're tackling one of Rust's most powerful features: explicit error handling.

Here's the mental shift that changes everything:
January 28, 2026 at 1:00 PM
Can you spot the bug? 🐛

You’ve finally moved your logic into a proper src/ layout so you can structure your pytest tests properly.
January 27, 2026 at 2:09 PM
Don't argue about formatting in code reviews. Let the machine do it.

If you are still manually fixing spaces or imports, you are wasting brain cycles.

Your `.pre-commit-config.yaml` should be your best friend.
January 27, 2026 at 10:08 AM
I just discovered a neat package to convert Markdown to HTML: markdown-it-py

I just used it to send a weekly markdown report, which now looks so much better :)

`markdown-it-py` made it trivial 👇

Works great with SendGrid, SES, or any email service that accepts HTML content.
January 26, 2026 at 5:42 PM
Confidence comes from Shipping

There is no better feeling than `git push` -> `Deployed`. 🚀

Last week, one of our PDC Foundations students went from "I've never packaged an app" to having their CLI tool installable via `pip` - we love seeing these lightbulb moments. 💡
January 26, 2026 at 8:02 AM
Agents are Interfaces, not just Chatbots

The real power of LLMs unlocks when you give them typed tools.
In Python, we can define a function and expose it to the model using Pydantic schemas.
January 25, 2026 at 8:00 PM
Let's talk about Rust vs Python and type safety today.

Coming from Python, you might think of Enums as just a list of named constants: `Color.RED`, `Color.BLUE`, etc.
January 24, 2026 at 11:00 AM
The difference between a Junior and Senior dev isn't syntax. It's this.

Most developers can write a script to fetch data from an API. They get it to work, then they move on.
January 23, 2026 at 3:50 PM
You don’t learn by watching. You learn by breaking things. 💡

We've spoken with developers who’d watched multiple 10+ hour Udemy courses.

They knew the theory: Django, Docker, AsyncIO.
January 23, 2026 at 12:00 PM
Why you probably don't need React 💡

"I need a React frontend for my SaaS."

Do you? Or do you just want a smooth UI?

The complexity cost of a decoupled frontend is massive:
- State synchronization
- JWT/Auth handling
- API serialization overhead
January 22, 2026 at 9:00 PM
We just shipped a new SQLModel Learning Path on the Pybites Platform:

🔹 Learn the Python ORM to focus on next

🔹 Get type-safe models with Pydantic-style, high-performance validation

🔹 See how cleanly SQLModel plugs into FastAPI for real-world APIs
January 22, 2026 at 6:32 PM
🐍 Pythonista → 🦀 Rustacean?

I’ve built a Rust Cohort for Pythonistas with Jim Hodapp, a 6-week, project-driven journey where you’ll:

Build a real JSON parser, in Rust 🏗️
January 22, 2026 at 7:14 AM
Did you know about the following 5 Python 🐍 debugging tips? 🧵
January 21, 2026 at 2:40 PM