English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 95 Lessons (34h 6m) | 7.71 GB
Become a confident crafter. Learn to write scalable, testable TypeScript and Master the 12 Essentials of design, architecture & testing from first principles.
The fastest way to learn to write scalable code on any side of the stack…
…Without reading complex books, watching endless YouTube videos, surface-level courses, or having to learn new frameworks
The Software Essentialist is a new online course that teaches professional JavaScript developers how to write scalable, testable code, fast.
The 12 Essentials pave a clear path to master the most important parts of:
- 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…
Using the new FA²STR framework, you’ll learn a consistent, repeatable process to approach any development challenge from first-principles-based thinking instead of code-first, unmaintainable approaches.
You’ll build features for 5+ projects from first principles (backend, frontend, desktop, chrome extension, custom integration, etc).
As a Software Essentialist, you’ll know how to:
- apply the 12 Essentials to your backend TypeScript APIs
- apply the 12 Essentials to your frontend React applications
- save doomed codebases
- design custom abstractions
- and more…
Table of Contents
Welcome
1 Fast Summary The Software Essentialist Process
2 Fast Summary The Software Essentialist Process
3 Welcome to The Software Essentialist!
4 Welcome to The Software Essentialist!
5 About The Early Adopter Phase
6 Join the Discord Community
7 Course Repos (Exercises, DDDForum v1, v2)
8 The Software Essentialist Action Item Checklist
9 The Essentials (Program ThesisBook)
10 Help Us Improve (Feedback Form)
11 How to Get Support
12 Download Chrome Extension
13 Supplemental readings (course books)
The Software Essentialist Mindset
14 The 4 Key Mindsets of a Software Essentialist
15 The Two Biggest Obstacles To Mastery
16 Powerful Clarity Strategies (Mentorship or Essentialism)
17 The Two Biggest Obstacles To Mastery
18 Powerful Clarity Strategies (Mentorship or Essentialism)
19 Action Post Your First Question To #course-chat & Join the Conversation
20 How to Develop Endless Motivation (4 Techniques)
21 How to Develop Endless Motivation (4 Techniques)
22 Action Use At Least 1 Purpose Tool to Stay Motivated
23 Common Denominator of Success
The Metaphysics
24 Introduction to The Metaphysics
25 Why Do Mental Models Matter So Much (Metaphysics & Mental Models)
26 Systems Thinking The Most Important Mental Model for Developers
27 The Value Creation System & The Purpose of Software
28 The 3 Roles & Their Goals Why Software Development Is So Hard
29 The 4 Pillars Architecture, Design, Testing & Strategy
30 Introduction to The Metaphysics
31 Introduction to the 12 Essential Principles
32 Metaphysical Essential Abstraction (Complexity, Abstraction Layers & the Abstraction Prism)
33 Why Do Mental Models Matter So Much (Metaphysics & Mental Models)
34 Metaphysical Essential The Feedback Loop (Guesses & The Guess Points)
35 Systems Thinking The Most Important Mental Model for Developers
36 Physical Essential Vertical Slicing
37 The Value Creation System & The Purpose of Software
38 Physical Essential Horizontal Decoupling
39 The 3 Roles & Their Goals Why Software Development Is So Hard
40 Physical Essential Temporal Decoupling
41 The 4 Pillars Architecture, Design, Testing & Strategy
42 Introduction to the 12 Essential Principles
43 Physical Essential Composition
44 Metaphysical Essential Abstraction (Complexity, Abstraction Layers & the Abstraction Prism)
45 Physical Essential SubjectSystem Verification
46 Metaphysical Essential The Feedback Loop (Guesses & The Guess Points)
47 Theoretical Essential Value Identification
48 Physical Essential Vertical Slicing
49 Theoretical Essential Domain Discovery
50 Physical Essential Horizontal Decoupling
51 Theoretical Essential Strategic Design
52 Physical Essential Temporal Decoupling
53 Physical Essential The Walking Skeleton
54 Physical Essential Composition
55 Physical Essential Deployment & Delivery
56 Physical Essential SubjectSystem Verification
57 The Ideal Developer Workflow – How to Work Consistently
58 FA²STR – How to Decompose, Architect, Design, Implement & Test Any Problem
59 Theoretical Essential Value Identification
60 FAQ How Should I Learn DDD If I’m a Code-First Developer
61 Theoretical Essential Domain Discovery
62 FAQ How to Break Down and Understand Large Codebases
63 Theoretical Essential Strategic Design
64 FAQ How to Get Better At Design (using the 12 Essentials)
65 Physical Essential The Walking Skeleton
66 FAQ How to Get Better at Testing (using the 12 Essentials)
67 Physical Essential Deployment & Delivery
68 FAQ How to Become a Better Architect (using the 12 Essentials)
69 The Ideal Developer Workflow – How to Work Consistently
70 FA²STR – How to Decompose, Architect, Design, Implement & Test Any Problem
71 FAQ How to Learn Frontend Architecture
72 FAQ How Should I Learn DDD If I’m a Code-First Developer
73 FAQ Which Books Related to The Main Course Ideas Should I Read
74 FAQ How to Break Down and Understand Large Codebases
75 FAQ How to Learn to Structure My Code Bases
76 FAQ How Much OOP Do I Need to Know
77 FAQ How to Get Better At Design (using the 12 Essentials)
78 FAQ How to Get Better at Testing (using the 12 Essentials)
79 FAQ Learning Clean Architecture and Layered Architectures
80 FAQ How to Become a Better Architect (using the 12 Essentials)
81 How Will I Learn Responsibility Driven Design
82 FAQ How to Get Better at Back End
83 FAQ How to Learn Frontend Architecture
84 FAQ Which Books Related to The Main Course Ideas Should I Read
85 How to ship an MVP a quick as possible using the course methodology Which lessons to watch
86 FAQ How to Learn to Structure My Code Bases
87 FAQ How Much OOP Do I Need to Know
88 FAQ Learning Clean Architecture and Layered Architectures
89 How Will I Learn Responsibility Driven Design
90 FAQ How to Get Better at Back End
91 How to ship an MVP a quick as possible using the course methodology Which lessons to watch
The Phases of Craftship
92 Introduction to the Phases of Craftship
93 The 5 Phases of Craftship The Straight-Line Path to Rapid Improvement as a Developer
94 How to Complete the Phases of Craftship Homework (Assignments, Exercises)
95 How to Setup & Complete Assignments
96 How to Set Up & Complete Exercises
97 Ways to Use Feedback In This Course
98 How & Why to Provide Helpful Feedback on Assignments & Exercises
99 How to Manage Your Completed Assignment PRs
100 How & Why to Provide Helpful Feedback on Assignments & Exercises
Code-First
101 Module Introduction, Goals & Major Topics
102 The Code-First Developer
103 Abstraction @ The Code-First Phase Architecture 101 (Responsibilities, Concerns, Architectural Styles, Patterns & MVC)
104 The Feedback Loop @ The Code-First Phase The Key Code-First Topics (& How to Learn Them Quickly)
105 Introduction & Assignment (Building the Backend API)
106 Horizontal Decoupling Implementing the Backend Using MVC
107 Vertical Slicing Writing the API Calls as Transaction Scripts
108 Subject Verification Manually Testing using POSTman or CURL
109 Action Assignment Milestone – Building the Backend API
110 Demo First Milestone – Building the Backend API
111 Introduction & Assignment (Connecting the Frontend to the Backend)
112 Strategic Design Translating Screens Into Data, Behaviour & Namespaced Tasks
113 Horizontal Decoupling Layout-First UI Dev (Presentational & Page Components)
114 Vertical Slicing & Horizontal Decoupling 5 Frontend Abstraction Layers – Driving the Registration Functionality
115 Domain Discovery & Horizontal Decoupling Data Modelling, Migrating & Seeding Database Changes
116 Horizontal Decoupling Building the New Posts API
117 Subject Verification & Vertical Slicing Scope & Manual UI Tests
118 Action Assignment Submission – Connecting the Frontend to the Backend
119 Recap, FAQ & When to Continue Past the Code-First Phase
120 Demo First Milestone – Building the Backend API
Best Practice-First
121 [New] Module Introduction, Goals & Major Topics
122 [New] The Best Practice-First Developer
123 [New] Abstraction @ The Best Practice-First Phase What Causes Spaghetti Code
124 [New] Abstraction @ The Best Practice-First Phase 5 Powerful Reasons Designers Use Contracts
125 [New] The Feedback Loop @ The Best Practice-First Phase Why Write Automated Tests
126 [New] How Testing Works In The Real World (Intro)
127 [New] Lab High Value (Acceptance) & Typical Test Demonstrations
128 [New] Introducing the Test Types Typical vs. High Value (Acceptance) Tests
129 [New] Introducing E2E Tests
130 [New] Introducing Unit Tests (Decoupling, Encapsulation, 4-Tiers, Core vs. Infra, HexagonalPorts & Adapters, High Value Unit Tests)
131 [New] Introducing Integration Tests (Contract, Incoming, Outgoing, High Value Integration Tests)
132 [New] How to Create a Testing Strategy (3 Things to Do At the Start of Every New Project or Feature)
133 [New] An Introduction to Testing Contexts & Workflows
134 [New] Conclusion, Recap & Next Steps
135 Introduction (Testing Basics)
136 An Introduction to Test-Driven Development
137 Tips Naming Your Tests (Always By Example)
138 Getting to Red for the Right Reason
139 How to Structure Your Test Code (System Under Test, System Verification & Arrange-Act-Assert)
140 Ways to Make a Failing Test Pass (Transformations)
141 Transform by Triangulation How to Incrementally Add Functionality
142 Refactoring How to Effectively Refine Your Designs (The Rule of Three)
143 Demonstration Using TDD to Solve Palindrome
144 Action Do FizzBuzz, Commit & Submit Your First Assignment
145 Tips When Writing Your First Tests
146 How to Test For Errors
147 Action Palindrome
148 Overview Working Backwards w Arrange-Act-Assert & Program By Wishful Thinking
149 Techniques to Defeat Overwhelm Arrange-Act-Assert Backwards & Program By Wishful Thinking
150 How to Use FA²STR TDD’s Upfront & Emergent Design @ The Stateless Guess Point
151 SystemSubject Verification 3 Types of Verification (Result, State, Communication)
152 Action Password Validator
153 Tips For Solving Password Validator
154 Action Stats Calculator
155 Overview Managing Complexity
156 Avoiding Impasses with the Transformation Priority Premise (TPP)
157 Action Military Time Validator
158 Key Tip for Solving Military Time Validator
159 Wait, How Do You Actually Use TPP
160 Action Boolean Calculator
161 [New] Introduction (Clarify Before You Code)
162 [New] Value Identification & Domain Discovery Hunting Value w Impact Maps
163 How to Get Started w Testing Assignments
164 [New] Value Identification & Vertical Slicing Clarifying Value w User Stories
165 Domain Discovery & Subject Verification How to Write Acceptance Test Specifications (GherkinGiven-When-Then)
166 How & When To Commit in Red-Green-Refactor For Readability
167 Demo FizzBuzz
168 [New] Action Summary & Optional Assignment (Clarify Before You Code)
169 Discussion FizzBuzz Review 1
170 [New] Scalable Codebase Patterns & Principles Introduction
171 Discussion FizzBuzz Review 2
172 [New] Exercise (Unsafely) Refactoring to 4 Tiers Architecture
173 Don’t Write Comments (Except To Explain ‘Why’)
174 Discussion Palindrome Review 1
175 Discussion Palindrome Review 2
176 Techniques to Defeat Overwhelm Arrange-Act-Assert Backwards & Program By Wishful Thinking
177 How to Use FA²STR TDD’s Upfront & Emergent Design @ The Stateless Guess Point
178 SystemSubject Verification 3 Types of Verification (Result, State, Communication)
179 Demo Password Validator – Part 1 (Upfront Design)
180 Demo Password Validator – Part 2 (Emergent Design)
181 Discussion Password Validator Review 1
182 Discussion Password Validator Review 2
183 Discussion Stats Calculator Review 1
184 Discussion Stats Calculator Review 2
185 Discussion Military Time Validator Review 1
186 Discussion Military Time Validator Review 2
187 Discussion Boolean Calculator Review 1
188 Discussion Boolean Calculator Review 2
189 [New] Value-First Testing Strategies for Integration Testing
not Pattern-First
not Responsibility-First (1st Principles)
not Value-First (The Ideal Developer Workflow)
The Theoretical Guess Points
190 An Introduction to the Theoretical Guess Points & Your Theoretical Assignments
191 How To Do Your Assignments for the Theoretical Guess Points
192 An Introduction to the Theoretical Guess Points & Your Theoretical Assignments
The Problem Guess Point
193 Explained The Problem Guess Point
194 Essential Domain Discovery
195 Demo FeedBook — Find the Subdomains (from the Design Story, Concrete Examples, Domain Knowledge)
196 Domain #1 The Blogging Platform
197 Action Blogging Platform — Find the Subdomains
198 Domain #2 Discord Pomodoro Bot
199 Action Discord Pomodoro Bot — Find the Subdomains
200 Domain #3 Course Platform
201 Action Course Platform — Find the Subdomains
202 Domain #4 Multiplayer Tic Tac Toe Game
203 Action Multiplayer Tic Tac Toe Game — Find the Subdomains
204 Demo FeedBook — Find the Subdomains (from the Design Story, Concrete Examples, Domain Knowledge)
The Solution Guess Point
205 Discussion Bounded Contexts, Cohesion & Category Theory
206 Demo FeedBook — Consolidating Subdomains Into Bounded Contexts
207 Action Blogging Platform — Consolidating Subdomains Into Bounded Contexts
208 Action Discord Pomodoro Application — Consolidating Subdomains Into Bounded Contexts
209 Action Course Platform — Consolidating Subdomains Into Bounded Contexts
210 Action Multiplayer Tic Tac Toe Game — Consolidating Subdomains Into Bounded Contexts
211 Explained Event Storming (Process Modelling)
212 Demo FeedBook — Event Storming (Process Modelling) a Concrete Example
213 Demo FeedBook — Refining the Process Model with More Clarity (Views & State Changes)
214 Action Event Storming (Process Model) at least 2 Concrete Examples
215 Discussion Bounded Contexts, Cohesion & Category Theory
216 Demo FeedBook — Consolidating Subdomains Into Bounded Contexts
217 Demo FeedBook — Event Storming (Process Modelling) a Concrete Example
218 Demo FeedBook — Refining the Process Model with More Clarity (Views & State Changes)
The Architecture Guess Point
219 Discussion FeedBook — The Architecture Guess Point
220 Discussion FeedBook — Getting Ready to Move to The Physical
221 Discussion FeedBook — The Architecture Guess Point
222 Discussion FeedBook — Getting Ready to Move to The Physical
not The Deployment Guess Point (Level 7)
The E2E (System) Guess Point (Level 5)
223 Action Create Your CompositionRoot
224 ction E2EAcceptance Test CreateStudent, CreateCourse, AddStudentToCourse
The Application Guess Point (Level 3)
225 Action CreateStudent Use Case (Gherkin, Nth Looping)
226 Discussion Isn’t This Integration Testing
227 Action Traffic Light Console App — Implement the Traffic Light Entity
228 Action Stubbing the Indirect Inputs (ie StudentAlreadyExists, StudentBlacklisted, StudentAccountReactivated edge cases)
229 Action Use Hand-Written Spies to Verify Indirect Outputs (Side-Effects)
230 Action Use a Mocking Library (Jest) to Verify Indirect Outputs (Side-Effects)
231 Overview Effectively Modelling Time
232 Action Coordinating Time w Traffic Light
233 Action Coordinating Time w Elevator
234 Action EventHandler (StudentCreated → MailService.sendEmail)
235 Action CreateCourse & EnrollStudentInCourse w EventHandlers
236 Action PurchaseOffer → EnrollStudentInCourse
237 Action Use Hand-Written Spies to Verify Indirect Outputs (Side-Effects)
The StatefulDomain Modelling Guess Point (Level 2)
238 About this section
239 Explained The Stateful (Domain Modelling) Guess Point
240 How to Use FA²STR @ The Stateful Guess Point
241 System Verification State Verification @ The Stateful Guess Point
242 Explained State Machines
243 Discussion Understanding State Machines, Invariants, Transitions, Events & The Role of the Stateful Guess Point
244 Discussion Key Mental Model – Thinking Backwards
245 Demo FeedBook — Visualizing State Machines
246 Action Diagram State Machines (Traffic Light, Pomodoro, Blog Post, Lesson, Tic Tac Toe)
247 Action Practice by Implementing the Student Entity
248 Action Course Platform — Implement the Lesson Entity
249 Action Blogging Platform — Implement the Blog Post Entity
250 Better Objects w Object Calisthenics
251 Action Tic Tac Toe (using Object Calisthenics)
252 Action Tasks to Calendar 2-Way Sync (Domain Service)
253 Action Design a Blog Post Scheduler
254 Discussion Encapsulating Initial State (Fixtures) w Builders
255 Understanding Abstraction & Levels of Realness Interfaces, Abstract Classes & Concretions
256 An Introduction to Responsibility-Driven Design (The Most Influential Design Method)
257 Action Tic Tac Toe (using Object Stereotypes)
258 Discussion Understanding State Machines, Invariants, Transitions, Events & The Role of the Stateful Guess Point
259 Discussion Key Mental Model – Thinking Backwards
260 Demo FeedBook — Visualizing State Machines
261 Demo FeedBook — Implementing the PreReaderInvite Domain Object
262 Discussion Encapsulating Initial State (Fixtures) w Builders
263 Understanding Abstraction & Levels of Realness Interfaces, Abstract Classes & Concretions
Conclusion
264 [New] Discussion – Differentiating Yourself as a Developer
265 [New] Discussion – Differentiating Yourself as a Developer
Bonuses
266 Visual Explorer Test
267 The Walking Skeleton, Questions Q&A July 27th, 2023
268 Q&A From Code-First to Best-Practice First (July 4th, 2023)
269 Q&A Front-Loading The Value for Early Adopters
270 May 5th, 2023 The Most Valuable Ideas In This Course, Frontend Architecture & The Ideal Developer Workflow
271 May 25th, 2023 Office Hours Decoupling From Infra, The Theoretical & Stateful Domain Modelling Guess Points
272 June 7th, 2023 Office Hours The Theoretical Guess Points, Aggregates, State Machines
273 Q&A – November 7th, 2023 – Introducing the 12 Essentials
274 Part 1 1-on-1 Category Theory, Frontend Architecture, Metaphysics & RDD
275 Part 2 Reviewing The Upfront Design & Next Steps
276 About this section
277 Summary 1 Mastery Foundations
278 Summary 2 From Code-First to First-Principles
279 Summary 3 Software Essentialism
280 Summary 4 The Feedback Loop
281 Summary 5 The Skills
282 The Walking Skeleton, Questions Q&A July 27th, 2023
283 Q&A From Code-First to Best-Practice First (July 4th, 2023)
284 Q&A Front-Loading The Value for Early Adopters
285 Q&A March 14th 2023 FDD (Figma-Driven Design)
286 Q&A March 31st Mastery Foundations
287 Q&A April 22nd, 2023 The First Milestone Review & Intro to the Stateful Guess Point
288 May 5th, 2023 The Most Valuable Ideas In This Course, Frontend Architecture & The Ideal Developer Workflow
289 May 25th, 2023 Office Hours Decoupling From Infra, The Theoretical & Stateful Domain Modelling Guess Points
290 June 7th, 2023 Office Hours The Theoretical Guess Points, Aggregates, State Machines
291 August 15th New Q&A Structure + Frontend Architecture 1 of 2
292 Aug 22nd, 2023 – Final Course Structure Q&A
293 Frontend Architecture 2 – Aug 30th, 2023
294 Q&A – November 7th, 2023 – Introducing the 12 Essentials
295 Part 1 1-on-1 Category Theory, Frontend Architecture, Metaphysics & RDD
296 Part 2 Reviewing The Upfront Design & Next Steps
Resolve the captcha to access the links!