Published Work · Training Material
Conference and workshop decks from 2015 to 2026, plus recorded sessions and podcast appearances — test-driven navigation in the age of AI agents, systems programming, the case against self-serve, and the move from imperative to functional thinking.
Gathered here for the technique each one demonstrates. The recorded sessions also appear in the full Videos catalogue.
Talks given at conferences and in-house sessions between 2015 and 2026, hosted on Slides.com and SlideShare. Full decks, in the form they were presented.
May 2026 · ISQD Vienna · 24 slides
Splits the delivery loop in two. The human engineer navigates — sets direction, owns intent, evaluates tradeoffs — while the AI agent executes, implementing the mechanics under the constraint of a failing test. That failing test is the contract between human intent and machine execution. Applies XP's three C's — Card, Conversation, Confirmation — to the AI-assisted loop, so the agent can only operate inside intent a human already set.
September 14, 2020 · 7 slides
A short deck on skill progression past the point where the belts run out. Uses a tip calculator to show what testing while coding actually looks like, and why frequent tests and frequent commits belong to the same habit.
2017 · 103 slides
How to build a reliable system out of unreliable parts. Networks fail, so system-level errors are a different species from programming bugs, and the job is finding abstraction boundaries that stop errors propagating. Argues for values over objects on the wire — ephemeral, nameless, identity-free — for decoupling producers from consumers with queues and pub/sub, and for designing services for machines rather than for humans.
June 14, 2017 · London, England · 141 slides
Presented as "Business Automation Beyond Self-Serve." Traces the arc from technology-for-the-masses to self-serve as unpaid labour — searching, scrolling, swiping, tapping. Wizards were a sneakier self-serve that shifted the blame onto the user; chatbots that merely swap tapping for typing make the chore worse, not better. The opening is a working definition of holistic development: analysis, process, and engineering informing each other rather than running in isolation.
October 2016 · 88 slides
Bots aimed at the individual user are set up to fail: people are fickle, they change their minds mid-conversation, and the NLP of the day could not cope. Separates the Concierge bot — loyal to the corporation, sets the conversational protocol, needs surprisingly little AI — from the Butler, loyal to the individual and dependent on heavy AI. The medical receptionist is the worked example of a Concierge doing its job well.
February 25, 2016 · 33 slides
The deck behind the essay. Walks the evolution of human-computer interaction from punched cards through terminals to the GUI, and argues for a return to text — with conversational agents fielding inquiries directly instead of making users navigate someone else's menus.
January 13, 2015 · 23 slides
An introduction to the functional paradigm for people arriving from imperative code: immutable data, pure functions, and no side effects. Covers why that combination makes programs easier to test and debug, and how it lets you deploy an update by simply replacing the code.
Recorded working sessions — the practice demonstrated rather than described.
November 25, 2024 · 57 min
A faux coding interview, with Simon Revill taking the challenge and Robert C. Martin supplying live commentary, staged to show how seasoned front-end developers actually approach a problem. Uncle Bob's advice centres on bringing unit tests and microtests to front-end work and letting TDD guide the design; Simon's ability to pivot mid-problem is the other half of the lesson.
Long-form conversations about how the work actually gets done.
August 6, 2024 · Code with Jason · Episode 229 · 84 min
An hour and a half with Jason Swett on test-driven design: separating IO from business logic, configurable dependencies, and TCR — test and commit or revert. Also covers making many small commits instead of trying to get the whole program right first time, distributed cognition, order dependency, imperative versus declarative programming, and the difference between coding speculatively and coding without shipping.
Direct audio: MP3
The writing is the cheapest way to pressure-test how I think before putting anything on a calendar.
Book a Diagnostic →