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

Have you ever looked at a Python script and thought: “Why is this slow? The logic is trivial.” Very often, the problem isn’t what your code does, but how often it does expensive work. In this week’s video, I start with a deliberately inefficient example: parsing a large CSV file multiple times. From there, I use it as a vehicle to introduce 10 powerful Python features that many developers either don’t know about or don’t know when to apply. I look at things like: • caching expensive...

I almost didn’t publish this week’s video. It’s about the Specification design pattern, and if I’m honest, the final version of the code scared me a little. It’s complex, abstract, and in many cases… absolutely overengineered. But there’s a reason I still decided to share it. In the video, I explore how the Specification pattern tackles a very real problem: business rules duplicated across different parts of a system, slowly drifting apart and becoming harder to change safely. Is this...

Most Python developers know dataclasses. Or at least… they think they do 🙂. You add @dataclass, define a few fields, and enjoy writing less boilerplate. But dataclasses hide a lot more power than most people realize and some of that power can quietly bite you if you don’t understand what’s really going on. In this week’s video, I walk through 7 lesser-known dataclass features that make your code safer, clearer, and easier to maintain. I start with common pitfalls like mutable defaults, then...