Replacing N individual operations with one batch operation - **Caching** — Identifying repeated computations that could be memoized - **Algorithm improvements** — Spotting O(n^2) patterns that could be O(n log n) or O(n) - **Lazy evaluation** — Using generators instead of building large lists in mem