It’s likely that AI will write all of our code for us in the next few years, if not sooner. If you’re a software engineer, what does that mean? How can you take your abstract reasoning and apply it in this strange new world? Being really good at specifying exactly what you want the machine to build is going to be a valuable skill, and it’s possible that abstract math—category theory and its cousins—will provide the right tools for the job.

Planned topics

Foundations: What is a category? (objects, morphisms, composition, identity) — Monoids (algebraic and categorical definitions) — Products (universal constructions) — Coproducts — Initial and terminal objects — Exponentials and Cartesian closed categories (why function types are “exponentials”)

Maps between structures: Functors (structure-preserving maps, List and Option as examples) — Natural transformations (maps between functors, completing the “category of categories” intuition)

Deepening: Monoidal categories (tensor products, unit objects, monoids in a monoidal category) — Adjunctions (free/forgetful pairs, currying) — Monads (unpacking “a monoid in the category of endofunctors,” Kleisli categories) — Comonads (streams, UI rendering, cofree comonads)

Advanced/applied: Limits and colimits (database joins as limits, schema migration as colimits) — The Yoneda lemma (“every object is determined by its relationships”) — Kan extensions (“all concepts are Kan extensions,” with map/fold/filter as examples)

Posts

  1. 2026-061 If AI is writing all the code, maybe the real skill is specifying what you want. Abstract math might be the right language for that.
  2. 2026-068 What is a category? Types and functions, integers under less-than-or-equal, and airport flight routes: three examples that look nothing alike but share the same structure.