profile

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.

Featured Post

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...

Hi there, I’m emailing you from prison. 🚨 No, not like that. The new ArjanCodes office is inside a 19th-century prison in Utrecht. And it’s actually… amazing. The cells are now offices, the vibe is creative, and it’s got just the right kind of gloominess for video production (because direct sunlight and camera lenses don’t mix). In this week’s video, I take you on a little tour of the space and talk about what’s ahead for the channel. After a year of scaling down, I’m finding more balance—and...

Hi there, We all know type hints can catch bugs before runtime. 🐛 But what if I told you they’re also one of your best tools for designing better software? In this week’s video, I show how type hints can lead to smarter choices about inputs, outputs, and even class structure — all without adding complexity. It’s the kind of thinking that leads to better architecture and fewer “why did I do this?” moments later on. 😌 And yes, I also drop a few tips you’ve probably never heard about inputs and...

Hi there, If you’ve ever used Python decorators, you know they look like a clean way to add functionality. But have you ever struggled to debug a decorated function? Or wondered why your type hints suddenly break? Or spent way too much time figuring out why your decorators aren’t working as expected? 🫠 🚨 Decorators introduce hidden complexity that can turn your code into a nightmare. And honestly? I think they’re overused. In this week’s video, I explain: Why decorators break type safety and...

Hi there, Ever looked at your old code and felt secondhand embarrassment? Yeah, me too. Keeping your code simple and maintainable is an art. In today’s video, I break down 10 essential tips that will help you write cleaner, more efficient Python code. 🚀 Some key takeaways: 🛑 Stop overengineering—simple solutions are often the best. ✂️ Cut the copy-paste habit—DRY code is maintainable code. 🧹 Refactor before your code turns into a horror movie. Happy coding! 🐍 Cheers, Arjan # News How Do...

Hi there, Have you ever hesitated before hitting git merge or git rebase because… well, who actually understands Git? 🤯 Good news! In this week’s video, I walk through a real-world FastAPI project and show exactly how to merge, fast-forward, and rebase—step by step. No fluff, just practical Git skills you’ll actually use. Plus, I’m sharing some advanced Git tricks to make your workflow smoother. Happy coding and enjoy the video! Cheers, Arjan # News Build TUI Apps with Python’s Textual Ever...

Hi there, You’ve probably heard the phrase: “Coupling is bad.” But what if I told you that coupling is actually necessary? The real issue isn’t that your code has coupling—it’s that some types of coupling are worse than others. 🚨 In this week’s video, I dive into three real-world examples of bad coupling and show you how to refactor them into better designs. We’ll tackle: Global coupling – Why global variables cause headaches and how to avoid them Content coupling – When modules dig too deep...

Hi there, Ever had a function work most of the time but randomly break when you least expect it? That’s a sign your code is brittle. And brittle code means debugging nightmares. The good news? You can avoid this! In this week’s video, I break down: 🔹 Why checking types at runtime is a bad idea 🔹 The best way to handle value constraints without making a mess 🔹 Whether your function should return None or raise an exception 🔹 Why failing fast is the best approach to writing reliable Python And...

Hi there, Be honest—how much do you enjoy writing tests? If the answer is “not at all,” chances are your setup is too complicated. In this week’s video, I show you how to set up pytest the right way—step by step, with zero fluff. I go from zero tests to a fully working pytest setup, covering advanced tricks along the way (including one almost nobody knows about). 🧪 By the end, your tests will be clean, fast, and easy to maintain. No more fighting with pytest configurations. If your test suite...

Hi there, If your Docker builds are taking forever, your images are probably bloated with unnecessary dependencies. In this week’s video, I break down how to optimize your Dockerfiles step by step. 🐋 I cover better base images, BuildKit, multi-stage builds, and smarter dependency management—all to make your builds faster and leaner. Plus, I ran into a weird Docker issue I still haven’t figured out. Watch today’s video and speed up your builds! 🎥 Cheers, Arjan # News Happy Pi Day! 🐍🥧 Besides...