10 Python Anti-Patterns That Are Breaking Your Code | Issue #53


Hi there,

You ever look at some Python code and think, “Wait… why did we do it like this?”

This week’s video is all about the Python anti-patterns that sneak into our codebases—sometimes looking clever, sometimes just copied from bad tutorials. But they can seriously hurt long-term maintainability. 🚨

I walk through 10 real-world examples, from using exceptions as control flow to awkward class structures, and even show how hardcoding UI strings can make your app a localization nightmare.

Have a great weekend, and let’s keep our Python clean and our codebases happy!

Cheers,

Arjan

# News

What Sets the Best Programmers Apart? 🧠

What makes a developer truly exceptional? Matthias Endler reflects on this in his article, The Best Programmers I Know, highlighting traits that distinguish top-tier engineers. 🎯

From deeply understanding tools and reading documentation to embracing continuous learning and effective communication, these insights offer valuable guidance for personal and professional growth. 🌱

Whether you’re just starting out or looking to refine your skills, this article provides a thoughtful perspective on what it takes to excel in the field. Click here to find out more.

# Community

🧠 When “it works” isn’t good enough…

Kenny, a member of our Discord community brought, up a great design dilemma: How do you keep your code clean when dealing with generics and type casting?

It sparked a thoughtful discussion, the kind where you realize you’re not alone in wanting your code to be both correct and elegant.

👉 Click here to jump in the discussion on ArjanCodes Discord and share your perspective!


Do you enjoy my content on YouTube and would you like to dive in deeper?

🚀 Check out my online courses

My courses have helped thousands of developers take the next step in their careers. Check out these courses to help grow your skills and become a senior developer:

🔧 Need help with a complex codebase?

If your team is struggling with tech debt, unclear architecture, or cloud costs that keep creeping up, my team and I can help. We don’t just review, we get in and fix things. We’re only working with a few companies at a time to stay focused, so if it sounds like a fit:

Unsubscribe | Send by ArjanCodes

Wolvenplein 25, Utrecht, UT 3512 CK

The Friday Loop

Every Friday, you'll get a recap of the most important and exciting Python and coding news. The Friday Loop also keeps everyone posted on new ArjanCodes courses and any limited offers coming up.

Read more from The Friday Loop

Hey everyone, Python’s flexibility is great, but if you're working on a larger project it becomes hard to make sure not everything depends on everything else. There is a way to avoid that trap, and that's by using abstractions. Unfortunately, I often see production code with way too much coupling that can be easily improved by relying on abstractions. This week’s video shows simple abstractions using Callable, ABC, and Protocol. You’ll learn how to: Reduce unnecessary imports Decouple your...

Hey everyone, I was reviewing some of the projects I’ve worked on over the past year, and I noticed something interesting: I almost never use Python’s @dataclass anymore. Not because it’s bad. In fact, dataclasses are still a great feature of the language. But as my projects have grown more complex, especially with tools like FastAPI, Pydantic, and SQLAlchemy, I’ve found that dataclasses just… don’t fit the way I design software anymore. In my latest video, I dive into this in detail. You’ll...

Hi there, You’ve probably heard that serverless is the easiest way to deploy code to the cloud. And on the surface, it is. With Google Cloud Functions, you can literally deploy a simple Python function like this: def hello(request): return "Hello from Cloud!" A few lines of code. No servers. No infrastructure. But... there are quite a few limitations: No FastAPI or async support One route per function requirements.txt only, no pyproject.toml Cold starts for large dependencies No custom...