Skip to main content
CF

Software Essentialist

34h 6m 47s
English
Paid

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

About the Author: 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.

Watch Online 95 lessons

This is a demo lesson (10:00 remaining)

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

View Pricing
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
Unlock unlimited learning

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

Learn more about subscription

Books

Read Book Software Essentialist

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

Related courses

  • Distributed Systems thumbnailUpdated 1mo ago

    Distributed Systems

    By: Oz Nova (CS Primer)
    Discover the world of distributed systems - a dynamic field where the evolution of multiple computers has transformed both quantity and distribution.
    19h 12m
  • 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
  • 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

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.