The Best Keyboard for Developers With a Major Flaw | Issue #1


Hi there,

You may have noticed some changes in this week's newsletter, including a new banner, name, date, and issue number. 👀 Don’t worry, I'll cover all these changes in detail in the news section. But first, let's dive into the topic of this week's video.

Keyboards, whether you care about them or not, are crucial if you work with a computer. This was the main topic of a video I made a while ago. ⚡️

In that video, a ton of people gave me great suggestions to check out different keyboards. One of those recommendations that stood out to me was the Keychron Q5 Max. ⌨️🤔

I’ve been a Keychron K2 user for several years, so this week I wanted to take a look at all the features of the Keychron Q5 Max, note the differences from other keyboards, and share my thoughts on its unique knob. 🎛️🔍

Enjoy your weekend and happy coding! 😉

Cheers,

Arjan

video preview

# News

Introducing The Friday Loop!

Big news! 🌟 Our newsletter has a new name—The Friday Loop. When I first started my YouTube channel and this newsletter, I had no idea it would reach so many of you (over 35,000 subscribers!). At the time, a specific name didn’t seem necessary. 🤷🏻‍♂️

However, as the weekly newsletter became a staple, our team at ArjanCodes began affectionately referring to it as “The Friday Loop.” We’ve been using this name internally for a while and decided it’s time to make it official and share it with all of you.

Along with this cool new name, you might notice a few minor tweaks in how the newsletter is presented, but don’t worry the content will remain the same. Having a specific name will make it easier to reference in future videos and blog posts, enhancing our community connection. 📹

Thank you for your continued support and for being part of this journey. Let’s keep the loop going! ♾️

P.S. Starting next week, the newsletter will be sent from the news@arjancodes.com email address. 📩

Choosing the Right Python Serialization Tool

Serialization is an important process in programming where data structures or object states are transformed into a format that can be conveniently stored, transmitted, and later reconstructed. 🌐🔨

However, it’s not its only advantage! Serialization also allows data to be shared across different programming setups or network systems, which is vital for distributed applications to keep data consistent and accurate across various platforms. 💻📚

In this week’s blog, I explored the different serialization options provided by Python. Read the full post here.

Invariants: How Understanding Limits Enhances Your Code

To better understand your code as a whole, you need to not only focus on what the code does but also on what the code doesn’t do. 🤔✅❎

This awareness will lead you to have a better overview, write better tests, and have more control over what you’re doing, which is important as a software developer. 🧑‍💻⚡️

One way to achieve this is by using invariants! 🪨

You can learn more about what invariants are, what types of invariants exist, and why you should use them in this week’s Tuesday Tips. Watch it here.

video preview

# Community

catamountjack, one of our community members, recently asked a very detailed question about storing secrets over at our #💾software_development channel.

They explained that they used to store credentials in .ini files, but switched to a KeePass database after a security scare involving an attempted server breach. However, this change introduced a new vulnerability because the database details are hardcoded in the application.

catamountjack ended their message by asking the community how they secure their stored credentials and whether others consider this a significant issue. If you’d like to share your opinion or experiences, you can go over to the channel and join the discussing right now!

If you want to be part of our Discord community and connect with other passionate tech enthusiasts, join here. 💻


Do you enjoy my content on YouTube and would you like to dive in deeper? Check out my online courses below. They've helped thousands of developers take the next step in their careers.

🚀 The Mindset Online Course Series

The goal of this series is to help junior developers grow their skills to become senior developers faster.

💥 Other Courses

💡 If you’re part of a development team at a company, I offer special packages for companies that give your team the tools to consistently write high-quality code and dramatically increase your team's productivity.

🪄 Learntail

My team and I created an AI quiz generator designed to accelerate your learning, called Learntail. You can try it for free or unlock even more capabilities and features with the monthly subscription. Take a look here.

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, With AI agents and micro-SaaS tools popping up everywhere, it’s easy to think we’ll soon replace all traditional SaaS platforms by just vibe-coding our own. But that's an oversimplification. In my latest video, I break down: ✅ Why many SaaS platforms won’t disappear anytime soon ✅ Where AI-powered development is already transforming the landscape ✅ Which SaaS products are truly at risk, and which are stronger than ever Happy coding! Cheers, Arjan Do you enjoy my content on...

Hey everyone, I love it when I come up with a design that uses exactly the things I thought were a sign of bad design. In this week's video I show you how to build a clean Python SDK for a REST API. The idea was simple: create a reusable base model that handles all the CRUD operations so you can just write User.find() and user.save(), without duplicating logic all over your codebase. Sounds great, right? Well, after recording the video, I realized something: not all APIs will have all CRUD...

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