The AI-Native Smell Detector

Module 1  /  Five lessons  /  Ten videos

The AI-Native
Smell Detector

Five smells decide how expensive your codebase is to change. This course teaches you to name each one on sight, measure what it costs, and run the refactor that removes it — with an AI assistant working the way it should.

Format
Lecture + hands-on video
Practice
10-minute assignment per lesson
You need
Python 3.10+ and a terminal
Smells of Coding: Rigidity

Lesson 01 of 05

Rigidity

The tell A change that takes one sentence to describe takes three files to make.

Rigidity explores the code smell that makes software difficult to change without widespread modifications. Learn how to recognize tightly coupled designs, reduce unnecessary dependencies, and create flexible, extensible architectures. Discover how AI can identify rigid code structures and guide you toward cleaner designs that adapt gracefully to changing requirements.

Smells of Coding: Fragility

Lesson 02 of 05

Fragility

The tell Something breaks in a module nobody opened, two hops away.

Fragility explores a code smell that causes software to break in unexpected places after seemingly unrelated changes. Learn how to recognize fragile designs, reduce hidden dependencies, improve system resilience, and refactor for stability. Discover how AI can help identify fragile code and guide you toward more robust, maintainable software architectures.

Smells of Coding: Immobility

Lesson 03 of 05

Immobility

The tell The second team that needs your logic copies it instead of calling it.

Immobility explores the code smell that makes software difficult to reuse because useful components are tightly bound to their original context. Learn how to identify unnecessary dependencies, improve modularity, and design reusable solutions. Discover how AI can help uncover immobile code and recommend refactorings that increase flexibility, maintainability, and long-term value.

Smells of Coding: Viscosity

Lesson 04 of 05

Viscosity

The tell The shortcut appears four times as often as the official way.

Viscosity explores the code smell that encourages developers to take the easy path instead of the right one. Learn how poor design, cumbersome processes, and difficult refactoring lead to shortcuts that increase technical debt. Discover how AI can help identify sources of viscosity and recommend cleaner, more maintainable solutions that make the correct approach the easiest one.

Smells of Coding: Needless Complexity

Lesson 05 of 05

Needless Complexity

The tell Six classes stand between the caller and one line of arithmetic.

Needless Complexity explores the code smell that makes software harder to understand and maintain than necessary. Learn how to identify overengineered solutions, simplify designs, and focus on solving the real problem. Discover how AI can help uncover unnecessary complexity and guide you toward cleaner, more elegant, and maintainable software solutions.

Carry this out of the course

Three questions to ask any abstraction

  1. 01 What does this protect me from?
  2. 02 When has that actually happened?
  3. 03 How many concrete subtypes use it today?

Vague, never, and one means the abstraction is needless — delete it. Most engineers add code. Senior engineers ask whether the code should exist at all.