View presentation slides

I recently watched Andrej Karpathy give a talk to a group of graduates going into software and AI fields. It reminded me of previous conversations I had with industry professionals about how and when to use newer AI/LLM technologies to build software systems.

Tech leaders often grapple with finding the right use cases for AI and frequently struggle to decide whether their teams should code, train a model, or prompt an LLM to accomplish a task.

In the video above, I lay out several heuristics for helping technical leaders think about when to use these various software/AI approaches effectively.

The Spectrum of Software

In this analysis, I examine the three stages of modern software development that Andrej outlines in his talk.

In the video, I explore Andrej’s definition of software 1.0, 2.0, and 3.0 and propose that a missing 1.5 may still be relevant.

I connect these stages to measurable metrics of determinism, certainty, and explainability to help technical leaders evaluate which approach is right for their specific problems.

Software 1.0 – Code

Software 2.0 – Train (Neural Networks)

Software 3.0 – Prompt (LLMs)

The Missing Middle: Software 1.5

Many overlook the space between rule-based code and deep learning. Think of it as traditional machine learning: