Skip to main content
CF

The Software Architect Mindset (COMPLETE)

12h 6m 39s
English
Paid

The The Software Architect Mindset course teaches the fundamentals of software architecture and provides practical advice on creating software products that are ready for scaling and stable performance under high loads.

You are a beginner or mid-level developer who already has programming skills but lacks a clear step-by-step plan to turn a prototype into a working scalable system accessible to users.

Creating a complex system requires not only writing clean and maintainable code but also understanding the following aspects:

  • Which APIs and services to use for interaction,
  • How to organize the system components at the architectural level,
  • How to securely store and manage data access,
  • Where to host the application and what cloud resources are needed for this.

Most resources on the internet offer only part of the solution, leaving the rest of the puzzle to you. Either they are too specific and not suitable for your case. Cloud technologies are constantly evolving, and you might not notice that the solution has become outdated until you encounter problems while implementing it.

As a result, you dive into endless browsing of Wikipedia and discussions on StackOverflow. Even ChatGPT might not help, as the advice is often generalized, and you don't know what questions to ask.

Wrong architectural decisions at the beginning often lead to disastrous consequences. The software does not run smoothly, the user experience worsens, scaling becomes complicated, and support turns into a real nightmare. Moreover, you are likely overpaying for unnecessary cloud resources, quickly becoming expensive. Fixing these problems later requires a lot of time.

It truly saddens me to hear such stories because software architecture doesn't necessarily have to be complicated. If you know how to lay a solid foundation and follow essential best practices, you will make much more successful decisions and avoid most pitfalls. Once you have this understanding and know what to look for when creating an application, it will save you and your colleagues a lot of time and money.

I have created many software products from scratch, and every time it was a huge learning process. Now I have a standard approach to creating software products that helps reduce development time, focuses on simplifying processes, uses a minimal amount of cloud resources, and scales only when it makes sense and is cost-effective.

Most courses are theoretical and consider concepts at a high level, without providing a practical path to actually launch your software. I'm not saying that architecture courses shouldn't cover theory. However, in my opinion, the ideal software architecture course should:

  • Show the process from start to finish.
  • Provide code examples and settings for use in your projects.
  • Promote best practices in software design and architecture.
  • Help easily make optimal architectural decisions.

INTRODUCING THE SOFTWARE ARCHITECT MINDSET

This course includes pre-recorded, compact videos that will teach you everything you need to know about software architecture design. The course also contains exercises, quizzes, challenges, and downloadable materials. The videos are created to the high standards of the ArjanCodes YouTube channel.

The course is practical and capable of changing your approach. At its core is a fully ready-to-use SaaS platform that is examined as an example throughout the course.

You get access to:

  • Complete source code for the backend in Python and the frontend in TypeScript
  • DevOps scripts and settings
  • Full implementations of various authentication and role-based access management mechanisms
  • Examples of connecting to common services like an email service and databases
  • A step-by-step overview of how we built the product and why we chose this approach.

This platform can be used as the basis for your projects, saving you weeks or even months of development.

Developing such a platform presents many architectural challenges:

  • Since the platform is web-oriented, you need both frontend and backend services. This means choosing technologies for each service and defining how they will interact, whether they will be monoliths or microservices, etc.
  • The backend must integrate with other services, such as a database and an email service, while retaining ease of testing.
  • The platform needs an authentication and access management mechanism so that users can interact with it securely.
  • The cloud architecture must be easily manageable as the platform scales, while remaining cost-effective.

My team not only handled these challenges but went further:

  • We used a combination of Python/FastAPI for the backend and Typescript/React for the frontend to demonstrate the capabilities of each technology. The platform is examined in several course videos as an example, and we added videos dedicated to explaining the design decisions of this platform.
  • We made components and services, such as the email service and database, easily replaceable using abstraction, dependency injection, and other best software design practices.
  • We implemented not just one, but three authentication mechanisms that can be easily switched to see how each works.
  • We carefully thought out the cloud architecture to make it both scalable and cost-efficient, considering various options such as serverless functions, managed containers, and a full-fledged Kubernetes cluster. The course includes an in-depth discussion of all these options, their pros, and cons.

Our team spent several months of full-time work developing this platform, and you get all of it by purchasing the course.

About the Author: ArjanCodes (Arjan Egges)

ArjanCodes (Arjan Egges) thumbnail

ArjanCodes is the YouTube channel and paid-course brand of Arjan Egges, a Dutch software engineer and academic (formerly Utrecht University faculty) — one of the most cited independent voices on Python software design and architecture. The channel focuses on the engineering disciplines underneath maintainable Python codebases rather than language tutorials.

His CourseFlix listing carries three ArjanCodes courses: The Software Designer Mindset (COMPLETE), The Software Architect Mindset (COMPLETE), and The 30-Day Design Challenge. Together the courses cover the senior-engineer mental model — design patterns, architectural decisions, and the trade-offs that show up in real production codebases.

Material is paid and aimed at intermediate-and-up Python developers ready to think about software design as a deliberate professional skill. For broader content, see CourseFlix's Python and System Design & Architecture category pages.

Watch Online 31 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 31 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Course Introduction
All Course Lessons (31)
#Lesson TitleDurationAccess
1
Course Introduction Demo
06:38
2
COSI: A framework for understanding Software Architecture
36:56
3
Case Study: Leadspotr
07:56
4
Architectural Design Considerations
40:20
5
Hexagonal Architecture (Port & Adapters)
18:36
6
Event-Driven Architecture
18:41
7
Pipeline Architecture
19:46
8
Multi-Tier Architectures and GUIs
25:08
9
Storage Architectures
25:42
10
Solution: LinkedIn COSI Analysis
07:58
11
Cloud Basics
23:46
12
Architectural Patterns and the Cloud
12:44
13
Leadspotr Cloud Setup
11:48
14
Leadspotr Code Walkthrough
21:50
15
DevOps and the Twelve-Factor App
35:40
16
Containerization
16:43
17
Continuous Integration and Continuous Deployment (CI/CD)
19:54
18
Authentication
30:03
19
Authorization
15:59
20
Data Protection and Privacy
15:42
21
Wrapping Things Up
02:25
22
Monitoring and Observability
20:42
23
Cloud Performance Optimization
13:52
24
Cloud Cost Optimization
11:50
25
Case Study: Learning Platform
27:35
26
Case Study: ArjanCodes
09:47
27
BONUS Case Study: Learntail
06:56
28
BONUS: Learn From My Mistakes - Trading App and Website Builder
22:14
29
Q&A #1
01:26:40
30
Q&A #2
01:26:56
31
Q&A #3
25:52
Unlock unlimited learning

Get instant access to all 30 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Books

Read Book The Software Architect Mindset (COMPLETE)

#TitleTypeOpen
11. Reading Material. COSI A framework for understanding Software Architecture PDF
21.4. COSI_Worksheet Exercise Leadspotr Architectural Design PDF
31.4.1. COSI Worksheet. COSI A framework for understanding Software Architecture PDF
402_01_Architectural_Design PDF
502_02_Hexagonal_Architecture PDF
602_03_Event-Driven_Architecture PDF
702_04_Pipeline_Architecture PDF
802_05_Multi-Tier_Architectures_and_GUIs PDF
902_06_Storage_Architectures PDF
1003_01_Cloud_Basics PDF
1103_02_Cloud_Patterns PDF
1204_01_DevOps_and_12-Factor_App PDF
1304_02_Containerization PDF
1404_03_CICD PDF
1505_01_Authentication PDF
1605_02_Authorization PDF
1705_03_Data_Protection_and_Privacy PDF
1807_01_Monitoring_and_Observability PDF
1907_02_Performance_Optimization PDF
2007_03_Cost_Optimization PDF

Related courses

Frequently asked questions

What are the prerequisites for this course?
The course is designed for beginner to mid-level developers who already possess programming skills. It assumes that you have a basic understanding of software development but lack a structured approach to scaling and deploying software systems. Familiarity with programming and general software development concepts is necessary to fully benefit from the course material.
What kind of projects will I learn to build?
The course includes various case studies, such as Leadspotr, a learning platform, and a trading app and website builder. These projects help illustrate the application of different architectural designs and cloud setups, providing practical insights into building complex, scalable software systems.
Who is the target audience for this course?
This course targets beginner to mid-level developers who have programming skills but need guidance on turning prototypes into scalable systems. It's particularly useful for those looking to understand software architecture fundamentals and seeking practical advice on system design, cloud deployment, and performance optimization.
What specific tools and platforms are covered in the course?
The course covers cloud technologies and DevOps practices including containerization, continuous integration and continuous deployment (CI/CD), and cloud performance optimization. It also discusses architectural patterns relevant to cloud environments and includes a walkthrough of Leadspotr's cloud setup.
What topics are not covered in this course?
This course does not provide in-depth coverage of programming languages or specific coding techniques, as it assumes participants already have basic programming skills. It focuses instead on software architecture principles, cloud deployment, and system scalability.
How much time should I expect to commit to this course?
The course consists of 31 lessons. While the exact runtime is not specified, students should allocate enough time to engage thoroughly with the case studies, architectural frameworks, and cloud setup activities. A self-paced approach will allow you to fully absorb the material.
How will this course benefit my career or future learning?
The skills learned in this course, such as understanding architectural patterns, cloud deployment, and performance optimization, are crucial for developing scalable software systems. These skills are transferrable to other projects and roles, making them valuable for career advancement in software development and architecture.