You can write code. Now learn to think like a senior developer.
Go from making code work to confidently designing software you understand, can change, and can defend.
Money-back guarantee: 7 days on monthly plans, 30 days on yearly and lifetime plans.
You can now build software that's more complex than your ability to understand it.
AI has made developers more productive than ever.
You can generate features in seconds, fix errors without knowing exactly what caused them, and build applications that would once have required far more experience.
That's incredibly powerful. But it creates a new problem.
At first, you may not notice it. The application works. Features ship. AI fixes the errors.
Then the codebase grows.
A change in one place breaks something somewhere else. You're hesitant to refactor because you don't know what depends on what. AI gives you three different solutions, and you're not sure which one actually belongs in your system.
Eventually, you hit a ceiling.
And generating more code — or getting better at prompting — won't get you through it.
Your design skills need to keep pace with your coding speed.
As AI helps you produce more code, you need better skills to understand and shape the systems you're building.
If you stay dependent on AI or more experienced developers to tell you how things should be structured, larger codebases become harder to understand and change.
You struggle to explain why one design is better than another.
And while your coding output improves, the engineering judgment expected from senior developers doesn't develop at the same pace.
That's the gap Software Design Mastery is designed to close.
What changes when you learn to think like a software designer
Imagine opening a codebase and knowing what to look for.
You can see where responsibilities are mixed. You recognize dependencies that will cause problems later. You know when an abstraction helps — and when it's just adding complexity.
When AI generates a solution, you know what to look for.
You can judge how well it fits your system.
When another developer proposes a different architecture, you can discuss the trade-offs and explain which approach suits your requirements.
When requirements change, you know how to reshape the system without tearing everything apart.
And when someone asks why you designed something a certain way, you can explain your reasoning.
That's the transition Software Design Mastery is built around: from someone who can make software work to someone who understands how software should be designed.
Build the judgment to make better design decisions.
Work through real design decisions and learn to recognize which patterns fit your problem, how to weigh the trade-offs, and why a solution works.
Learn to see problems earlier
Recognize coupling, poor boundaries, misplaced responsibilities and fragile abstractions before they become expensive.
Learn to make trade-offs
Stop searching for the “correct” architecture and learn how to choose between competing options.
Use AI without giving up control
Guide AI toward better designs and evaluate how well its output fits your system.
Build confidence through practice
Work through design decisions yourself with exercises, quizzes and realistic examples.
Develop skills that transfer
Learn principles that remain useful across frameworks, languages, projects and tools.
Twenty-five years of teaching software design, in one program
I taught software design at university for 25 years. My courses have been followed by thousands of students , and my YouTube content has helped millions of developers worldwide.
Over the years, I've learned what actually works when teaching developers: in the classroom, online, and at scale. This program is the result of all that experience. It's my definitive take on how software design should be taught today.
I wish I'd had access to this when I was learning.
The curriculum
Learn to balance competing needs and design software that holds up over time. You'll apply the same judgment whether you write the code yourself or collaborate with AI.
See problems → Design systems → Make judgments
Level 01
Core Designer
Learn to see what experienced developers see.
You already know how to write code. Now you'll learn to recognize the structural problems that make software difficult to maintain — and how to fix them deliberately.
Learn to see what's wrong before trying to fix it.
- Identify coupling and cohesion issues in real code
- Apply SRP, DRY, KISS, and YAGNI with an understanding of their trade-offs
- Understand the Law of Demeter and why it matters
- Recognize when patterns like Strategy are emerging naturally
- Detect common structural issues in AI-generated code
Level 02
System Designer
Learn to think beyond the code in front of you.
Move from individual functions and classes to entire applications. Learn how dependencies, state, boundaries and infrastructure shape the long-term health of a system.
Level 03
Master Designer
Develop engineering judgment.
Senior engineers know that architecture is rarely about finding one correct answer. You'll learn to compare alternatives, reason about competing forces, and make decisions you can explain and defend.
Throughout the program, you'll also learn how to use AI as a tool, while you stay in control of structure, decisions, and long-term quality.
From making code work to understanding its design
Before Mastery
After Mastery
“It works, so I guess it’s fine.”
“I can evaluate whether this design will hold up.”
Letting AI decide the structure
Giving AI clear architectural constraints
Copying patterns from tutorials
Choosing patterns because they fit the problem
Being nervous about refactoring
Understanding what can safely change
Looking for the “correct” architecture
Comparing trade-offs intentionally
Explaining what the code does
Explaining why it is designed that way
You'll learn to reason through design decisions for yourself, with the confidence to adapt principles to the problem in front of you.
My courses get 5-star Google reviews!
Arjan delivers complex concepts in a an easy to understand way. His courses are full of good examples and ready-to-apply cases, which makes them totally recommended.
Methodology and common sense combined. These courses are really excellent and have enabled me to look at code in an intelligent and structured way. Wikipython man has provided us with a wealth of content that I won't tire of revisiting over time. The youtube channel is a delight, these courses are a nectar. Thank you Arjan!
I very much enjoyed Arjan's courses (the 30-day challenge and Software design mindset)! I hope to see and learn from more great content from him in the future and would recommend his courses to anyone who's starting out in programming and want a more holistic view of how to write clean, extensible, and maintainable code!
Choose your plan
Start with the pathway or get everything. Upgrade at any time.
Basic
Build the core design judgment every developer needs.
-
All 3 levels of Software Design Mastery
-
30+ lessons, exercises and quizzes
-
Student community
-
All updates to the core program
Complete
Go deeper with additional courses, case studies and workshops.
Everything in Basic, plus:
-
Full Mastery Content Library, including:
Pythonic Patterns courseDomain Modeling courseAdvanced Python courseDesign Wins seriesWorkshop & live-session archive -
New library content added over time
Complete Lifetime
Make Mastery your permanent software design reference.
Everything in Complete, plus:
-
Lifetime access
-
All future Mastery updates
-
All future additions to the Content Library
-
No recurring payment
Prices in EUR. Buying for your team? Team seats and invoicing .
It's completely risk-free
Software Design Mastery is built to change how you think about software. I've put everything I know about teaching design into it.
All plans come with a 100% money-back guarantee: 7 days for monthly plans and 30 days for yearly and lifetime plans.
Work through the program, apply what you learn, and if you don't find it valuable, send me an email within your plan's guarantee period. I'll refund you, no questions asked.
You can also cancel your subscription at any time to prevent the next renewal.
If it's not the right fit, I'd rather you put your time and energy where it serves you best.
Bring Mastery to your team
Team seats with central billing and invoicing, so your whole team learns to design software the same way.
Frequently Asked Questions
Stop being dependent on the code in front of you.
Learn to understand it, shape it, and make the decisions behind it.