Skip to main content
CF

Software Essentialist

34h 6m 47s
English
Paid
Added to CourseFlix

Software Essentialist is a 95-lesson 34 hours 6 minutes self-paced course by Khalil Stemmler. Master the art of scalable code development with our dynamic course designed for professional JavaScript developers.

Course facts

Lessons
95
Duration
34 hours 6 minutes
Language
English
Added to CourseFlix
July 2024
Instructor
Khalil Stemmler
Price
Premium

Master the art of scalable code development with our dynamic course designed for professional JavaScript developers. Unlock your potential without the hassle of sifting through complex books or endless videos.

Course Overview

The Software Essentialist is a revolutionary online course that empowers JavaScript developers to craft scalable and testable code efficiently. By focusing on 12 Essentials, this course provides a clear pathway to mastering critical aspects of software development.

  • Domain-Driven Design
  • Test-Driven Development
  • Object-Oriented Design
  • Functional Programming
  • Design Patterns
  • Design Principles
  • Architectural Styles & Patterns
  • Architectural Principles
  • DevOps & Continuous Delivery
  • and more...

The FA²STR Framework

Leverage the innovative FA²STR framework to tackle any development challenge with a first-principles-based approach. This methodology ensures consistent, repeatable processes that prioritize maintainability over code-first solutions.

Practicals and Projects

Engage in hands-on learning by building features for over 5 projects across various domains, including backend, frontend, desktop, chrome extensions, and custom integrations.

What You'll Achieve

As a graduate of the Software Essentialist program, you'll possess the skills to:

  • Implement the 12 Essentials in backend TypeScript APIs
  • Apply essential principles to frontend React applications
  • Revitalize failing codebases
  • Design custom abstractions tailored to specific requirements
  • and more...

Join us to become a proficient Software Essentialist and transform your development approach!

Additional

EARLY ACCESS

Who teaches Software Essentialist? Khalil Stemmler

Khalil Stemmler thumbnail

Khalil Stemmler is a Canadian software engineer (formerly developer-advocate at Apollo GraphQL) and a long-running independent voice on Domain-Driven Design, TypeScript, and the architectural patterns underneath production Node.js applications. He runs khalilstemmler.com and the Software Essentialist teaching platform.

His CourseFlix listing carries Software Essentialist. Material is paid and aimed at engineers ready to think about software design at the level of architecture and modeling rather than at the level of frameworks and syntax.

What lessons are included in Software Essentialist?

This is a demo lesson (10:00 remaining)

Watch the first 10 minutes free. One payment unlocks all 95 lessons here and every other premium course. No auto-renew.

Watch all 95 lessons from $6.67/mo
0:00
/
#1: Fast Summary The Software Essentialist Process
All Course Lessons (95)
#Lesson TitleDurationAccess
1
Fast Summary The Software Essentialist Process Demo
11:57
2
Welcome to The Software Essentialist!
08:27
3
The 4 Key Mindsets of a Software Essentialist
07:15
4
The Two Biggest Obstacles To Mastery
09:23
5
2 Powerful Clarity Strategies (Mentorship or Essentialism)
11:52
6
How to Develop Endless Motivation (4 Techniques)
14:16
7
Introduction to The Metaphysics
01:41
8
Why Do Mental Models Matter So Much (Metaphysics & Mental Models)
08:20
9
Systems Thinking The Most Important Mental Model for Developers
06:22
10
The Value Creation System & The Purpose of Software
10:16
11
The 3 Roles & Their Goals Why Software Development Is So Hard
06:59
12
The 4 Pillars Architecture, Design, Testing & Strategy
16:11
13
Introduction to the 12 Essential Principles
03:56
14
Metaphysical Essential Abstraction (Complexity, Abstraction Layers & the Abstraction Prism)
16:14
15
Metaphysical Essential The Feedback Loop (Guesses & The Guess Points)
11:04
16
Physical Essential Vertical Slicing
07:21
17
Physical Essential Horizontal Decoupling
10:04
18
Physical Essential Temporal Decoupling
09:43
19
Physical Essential Composition
09:08
20
Physical Essential SubjectSystem Verification
13:00
21
Theoretical Essential Value Identification
07:46
22
Theoretical Essential Domain Discovery
08:04
23
Theoretical Essential Strategic Design
08:41
24
Physical Essential The Walking Skeleton
06:59
25
Physical Essential Deployment & Delivery
07:20
26
The Ideal Developer Workflow - How to Work Consistently
06:45
27
FAВІSTR - How to Decompose, Architect, Design, Implement & Test Any Problem
08:01
28
FAQ How Should I Learn DDD If I'm a Code-First Developer
09:14
29
FAQ How to Break Down and Understand Large Codebases
04:34
30
FAQ How to Get Better At Design (using the 12 Essentials)
04:37
31
FAQ How to Get Better at Testing (using the 12 Essentials)
07:37
32
FAQ How to Become a Better Architect (using the 12 Essentials)
05:26
33
FAQ How to Learn Frontend Architecture
02:52
34
FAQ Which Books Related to The Main Course Ideas Should I Read
04:38
35
FAQ How to Learn to Structure My Code Bases
01:29
36
FAQ How Much OOP Do I Need to Know
02:06
37
FAQ Learning Clean Architecture and Layered Architectures
01:46
38
How Will I Learn Responsibility Driven Design
01:35
39
FAQ How to Get Better at Back End
03:05
40
How to ship an MVP a quick as possible using the course methodology Which lessons to watch
12:00
41
How & Why to Provide Helpful Feedback on Assignments & Exercises
03:50
42
Demo First Milestone - Building the Backend API
22:11
43
How to Get Started w Testing Assignments
02:03
44
How & When To Commit in Red-Green-Refactor For Readability
05:45
45
Demo FizzBuzz
18:13
46
Discussion FizzBuzz Review #1
04:20
47
Discussion FizzBuzz Review #2
14:45
48
Don't Write Comments (Except To Explain 'Why')
01:14
49
Discussion Palindrome Review #1
11:35
50
Discussion Palindrome Review #2
10:11
51
2 Techniques to Defeat Overwhelm Arrange-Act-Assert Backwards & Program By Wishful Thinking
11:16
52
How to Use FAВІSTR TDD's Upfront & Emergent Design @ The Stateless Guess Point
15:15
53
SystemSubject Verification 3 Types of Verification (Result, State, Communication)
07:27
54
Demo Password Validator - Part 1 (Upfront Design)
08:46
55
Demo Password Validator - Part 2 (Emergent Design)
19:46
56
Discussion Password Validator Review #1
18:11
57
Discussion Password Validator Review #2
13:21
58
Discussion Stats Calculator Review #1
10:34
59
Discussion Stats Calculator Review #2
05:45
60
Discussion Military Time Validator Review #1
14:14
61
Discussion Military Time Validator Review #2
10:53
62
Discussion Boolean Calculator Review #1
15:21
63
Discussion Boolean Calculator Review #2
15:26
64
[New] Value-First Testing Strategies for Integration Testing
13:05
65
An Introduction to the Theoretical Guess Points & Your Theoretical Assignments
26:19
66
Demo FeedBook — Find the Subdomains (from the Design Story, Concrete Examples, Domain Knowledge)
21:09
67
Discussion Bounded Contexts, Cohesion & Category Theory
05:15
68
Demo FeedBook — Consolidating Subdomains Into Bounded Contexts
39:40
69
Demo FeedBook — Event Storming (Process Modelling) a Concrete Example
27:05
70
Demo FeedBook — Refining the Process Model with More Clarity (Views & State Changes)
24:59
71
Discussion FeedBook — The Architecture Guess Point
13:14
72
Discussion FeedBook — Getting Ready to Move to The Physical
02:02
73
Action Use Hand-Written Spies to Verify Indirect Outputs (Side-Effects)
04:51
74
Discussion Understanding State Machines, Invariants, Transitions, Events & The Role of the Stateful Guess Point
10:02
75
Discussion Key Mental Model - Thinking Backwards
01:18
76
Demo FeedBook — Visualizing State Machines
07:19
77
Demo FeedBook — Implementing the PreReaderInvite Domain Object
01:09:17
78
Discussion Encapsulating Initial State (Fixtures) w Builders
08:51
79
Understanding Abstraction & Levels of Realness Interfaces, Abstract Classes & Concretions
23:31
80
[New] Discussion - Differentiating Yourself as a Developer
10:46
81
The Walking Skeleton, Questions Q&A July 27th, 2023
01:11:51
82
Q&A From Code-First to Best-Practice First (July 4th, 2023)
01:12:57
83
Q&A Front-Loading The Value for Early Adopters
02:39
84
Q&A March 14th 2023 FDD (Figma-Driven Design)
01:52:19
85
Q&A March 31st Mastery Foundations
01:14:43
86
Q&A April 22nd, 2023 The First Milestone Review & Intro to the Stateful Guess Point
01:22:06
87
May 5th, 2023 The Most Valuable Ideas In This Course, Frontend Architecture & The Ideal Developer Workflow
01:56:24
88
May 25th, 2023 Office Hours Decoupling From Infra, The Theoretical & Stateful Domain Modelling Guess Points
01:57:51
89
June 7th, 2023 Office Hours The Theoretical Guess Points, Aggregates, State Machines
01:10:08
90
August 15th New Q&A Structure + Frontend Architecture 1 of 2
01:04:59
91
Aug 22nd, 2023 - Final Course Structure Q&A
01:17:59
92
Frontend Architecture 2 - Aug 30th, 2023
01:10:49
93
Q&A - November 7th, 2023 - Introducing the 12 Essentials
01:41:06
94
Part 1 1-on-1 Category Theory, Frontend Architecture, Metaphysics & RDD
01:32:21
95
Part 2 Reviewing The Upfront Design & Next Steps
41:26
Watch the other 94 lessons

One payment unlocks this course and every other premium course. No auto-renew.

See plans

Books

Read Book Software Essentialist

#TitleTypeOpen
100. solidbook.io - Previous Manuscript Download.pdf —Unlock
201. Introduction to The Metaphysics - Core_Mental_Models.pdf —Unlock
302. Why Do Mental Models Matter So Much (Metaphysics & Mental Models).pdf —Unlock
403. Systems Thinking The Most Important Mental Model for Developers.pdf —Unlock
504. The Value Creation System & The Purpose of Software.pdf —Unlock
605. The 3 Roles & Their Goals Why Software Development Is So Hard.pdf —Unlock
706. The 4 Pillars Architecture, Design, Testing & Strategy.pdf —Unlock
807. Introduction to the 12 Essential Principles.pdf —Unlock
908. Metaphysical Essential Abstraction (Complexity, Abstraction Layers & the Abstraction Prism).pdf —Unlock
1009. Metaphysical Essential The Feedback Loop (Guesses & The Guess Points).pdf —Unlock
1110. Physical Essential Vertical Slicing.pdf —Unlock
1211. Physical Essential Horizontal Decoupling.pdf —Unlock
1312. Physical Essential Temporal Decoupling.pdf —Unlock
1413. Physical Essential Composition.pdf —Unlock
1514. Physical Essential SubjectSystem Verification.pdf —Unlock
1615. Theoretical Essential Value Identification.pdf —Unlock
1716. Theoretical Essential Domain Discovery.pdf —Unlock
1817. Theoretical Essential Strategic Design.pdf —Unlock
1918. Physical Essential The Walking Skeleton.pdf —Unlock
2019. Physical Essential Deployment & Delivery.pdf —Unlock
2120. The Ideal Developer Workflow - How to Work Consistently.pdf —Unlock
2221. FAВІSTR - How to Decompose, Architect, Design, Implement & Test Any Problem.pdf —Unlock

What courses are similar to Software Essentialist?

  • Designing Data-Intensive Applications (2nd ed.) thumbnailUpdated 4mo ago

    Designing Data-Intensive Applications (2nd ed.)

    By: Martin Kleppmann, Chris Riccomini
    A Practical Guide to Designing Modern Data Processing Systems. Explore relational and NoSQL databases, data warehouses, and cloud services.
  • Master System Design and Design Pattern thumbnailUpdated 2y ago

    Master System Design and Design Pattern

    By: Udemy
    This course explains all the deep concepts of scalable system design problems and design patterns. These problems are frequently asked during interviews.
    11h 33m5/5
  • Object-Oriented Programming thumbnailUpdated 2y ago

    Object-Oriented Programming

    By: ProgrammingExpert.io
    Programming languages are often classified based on their syntax, features, and execution models. This course introduces you to the idea of programming paradigm
    4h 36m5/5
  • Mobile System Design thumbnailUpdated 1mo ago

    Mobile System Design

    By: Tjeerd in 't Veen
    Learn to design mobile features that scale, from first sketch to production, and handle mobile system design interviews with confidence.
  • System Design Course thumbnailClassic

    System Design Course

    By: Gaurav Sen (InterviewReady)
    In this course, you’ll get a deep understanding of system design concepts. Full guide. Architectural schemes, capacity planning, API list, tests, Faq.
    92h 26m4/5
  • The System Design Masterclass thumbnailFreeClassic

    The System Design Masterclass

    By: Arpit Bhayani
    A masterclass that helps you become great at designing scalable, fault-tolerant, and highly available systems. This is a prime and intermediate-level cohort-bas
    43h 13m4/5
  • Web API From Start to Finish thumbnailUpdated 3y ago

    Web API From Start to Finish

    By: Tim Corey
    Application Programming Interfaces (APIs) are software that send information back and forth between a program and a user. The entire web runs on APIs! They are
    17h 59m5/5

Frequently asked questions

What are the prerequisites for enrolling in the Software Essentialist course?
The course is designed for professional JavaScript developers. A solid understanding of JavaScript is essential, as the course focuses on advanced software development concepts like Domain-Driven Design, Test-Driven Development, and various architectural styles and patterns. Familiarity with TypeScript and React is also beneficial, as these are specifically mentioned in the course for implementing principles in backend APIs and frontend applications.
What kinds of projects will I work on during the course?
The course includes practical exercises where students will build features for over five projects across different domains. These include backend, frontend, desktop applications, Chrome extensions, and custom integrations. This hands-on approach allows students to apply the 12 Essentials in various contexts, ensuring they gain experience across multiple types of software development environments.
What distinguishes this course from other JavaScript development courses?
The Software Essentialist course emphasizes mastering 12 critical aspects of software development through a structured framework, FA²STR, which focuses on first-principles-based approaches. Unlike other courses that may focus solely on coding skills, this course covers a broader range of topics, including architectural styles, design patterns, and DevOps, providing a comprehensive understanding of scalable and testable code development.
What specific tooling or platforms are emphasized in the course?
The course highlights the application of essential principles in backend TypeScript APIs and frontend React applications. It also covers various architectural styles and patterns and introduces the FA²STR framework for tackling development challenges. While it doesn't focus on specific tools like IDEs or CI/CD platforms, the principles taught are applicable across different platforms and environments.
What topics are not covered in the Software Essentialist course?
While the course provides a comprehensive understanding of scalable and testable code development, it does not focus on basic JavaScript syntax or beginner-level programming concepts. It assumes proficiency in JavaScript and thus does not include introductory programming lessons. The course also does not delve into specific tools or technologies outside of TypeScript and React, maintaining a focus on broader software development principles.
How much time should I expect to dedicate to completing the course?
The course consists of 95 lessons, which cover both theoretical concepts and practical applications. While the exact runtime is not specified, students should allocate sufficient time to engage deeply with each lesson. Given the advanced topics like Domain-Driven Design and Test-Driven Development, students should expect to spend additional time outside of lessons for practice and project work to fully grasp the material.
How will skills learned in this course benefit my career?
Graduates of the Software Essentialist program will have mastered key software development principles, enabling them to craft scalable and testable code efficiently. Skills such as implementing the 12 Essentials in various projects, revitalizing failing codebases, and designing custom abstractions are highly valuable in any software development role. These competencies enhance a developer's ability to contribute to complex projects and make them attractive candidates for roles that require a strong foundation in software architecture and design.