Published Work · Training Material

Decks and conversations,
worked through out loud.

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.

Slides · 7 decks

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

AI and the Future of Refactoring: Test-Driven Navigation

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

Software engineering going beyond the black belt

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

Introduction To Systems Programming

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

Understanding the commercial opportunity of Conversational Commerce

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 for Business

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

Breaking the Fourth Wall in Software

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

From Imperative to Functional Programming (for Absolute Beginners)

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.

Videos · 1 session

Recorded working sessions — the practice demonstrated rather than described.

November 25, 2024 · 57 min

Coding Interview with Simon Revill and Uncle Bob Martin — Part 1

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.

Podcasts · 1 episode

Long-form conversations about how the work actually gets done.

August 6, 2024 · Code with Jason · Episode 229 · 84 min

Test Driven Design with Alex Bunardzic

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

If any of this resonates, we should talk.

The writing is the cheapest way to pressure-test how I think before putting anything on a calendar.

Book a Diagnostic →