Index

adn


e-petitions: handling traffic
e-petitions: deconstructed

agile


Your Code Is A Liability
Why you can scale agile with the right attitudes
Why BDD works solo, and why that matters for everyone
4 questions to discover if you're *really* agile...
Make Cucumber features more readable with this one weird trick
How to give BDD a chance
Your framework is a liability
Job titles are a team anti-pattern
Attempting validated learning with Sol Trader
Sol Trader now in Alpha
Layers of abstraction: writing great cucumber code
Layers of abstraction: combining BDD and UX
e-petitions: handling traffic
Work with me
e-petitions: deconstructed
Cucumbers with personality
Card Of The Day: Actually Do Retrospective Actions
Radiating status at Eden
The Story Card Is Not The Story
Pairing works for everything

ai


How to Build a Robust LLM Application

ambiguity


Driving out feature ambiguity

anti-pattern


How to decide whether a tool is right for you
4 questions to discover if you're *really* agile...
Delegated tasks are a team anti-pattern
Job titles are a team anti-pattern
Task assignment is a team anti-pattern

apprenticeship


Are apprenticeships scalable?
Are coding katas really worth it?
BBC Talk on A Philosophy of Software
Driving out feature ambiguity
Craftsmanship vs. Apprenticeship

ashcloud


Every Ash Cloud Has A Silver Lining

bdd


Extreme YAGNI: How BDD nails your prototyping stage
Why you can scale agile with the right attitudes
Why BDD works solo, and why that matters for everyone
How not to check in temporary code
How to decide whether a tool is right for you
4 questions to discover if you're *really* agile...
How to layer context into your features using Real Narrative
Make Cucumber features more readable with this one weird trick
How to give BDD a chance
BDD Kickstart is dead. Long live...
The toolchain of dreams
BDD: How to deal stories into features
Why Continuous Delivery and BDD play so nicely
Rack::Usermanual - Cucumber features as in-app user manual
Features are documentation, not tests
BDD without tools: testing shell script
The perils of curiosity
"Project velocity is a useless metric." Discuss.
That's not BDD, that's just Cucumber
Dependency injection != Inversion of Control
BDD Kickstart: London and 2013 plans
Cucumber: keeping the build passing
Scenarios are not Acceptance Criteria
Cucumber: the integration testing trap
Should we store state in our steps?
How to write a great story
The simplest Cucumber project ever
Cucumber isn't a testing tool
The power of feedback
Kickstart your team on BDD
Feature writing: multiple actors
How I'm testing iPhone apps: part 2
How I'm testing iPhone apps: part 1
Your tests are lying to you
Layers of abstraction: writing great cucumber code
Layers of abstraction: combining BDD and UX

bddkickstart


BDD Kickstart is dead. Long live...
BDD Kickstart: London and 2013 plans
How to write a great story
The simplest Cucumber project ever
Kickstart your team on BDD

bloom


How to quickly add bloom to your game engine
Effective bloom in OpenGL for Sol Trader

business


How to Build a Robust LLM Application
Why Hybrid Work Works
The Job Is Not To Build
The First Thing A Startup CTO Must Do
Blogging again after a long hiatus
A new adventure
5 ways I screwed up Sol Trader's launch: a post-mortem
Why (I hope) I will weather the Indiepocalypse
7 things I've learnt in 3 years coding my first indie game
New for 2015: Sol Trader now on Kickstarter
BDD Kickstart is dead. Long live...
Cucumber isn't a testing tool
Showroom software
Attempting validated learning with Sol Trader
Kanogo: vapourware to beta in 24 hours
The Principle of Scattered Work
On Office Politics
Are apprenticeships scalable?
The team is the atomic unit of success
Certification: recommendation mass produced
Eden Development has closed
User Experience Is Everything
R.I.P. Web 1.0

c++


How to add live code reload to your game
Why I wrote Sol Trader's GUI code from scratch
How to quickly add bloom to your game engine
Your abstractions are a liability
How I doubled the speed of my game by giving up on C++
A fresh take on DCI with C++ (with example)
Sol Trader: on lighting
Effective bloom in OpenGL for Sol Trader
Switching Sol Trader from Ruby to C++: one week on
Why I switched from Ruby back to C++

certification


Certification: recommendation mass produced

charity


Call for coders: Children's Future International

chef


e-petitions: deconstructed

cherrypick


How to Build a Robust LLM Application
Why Hybrid Work Works

chicago


Every Ash Cloud Has A Silver Lining

cijoe


Multiple CI Joes with Rack and Passenger

code


How to Build a Robust LLM Application
Your Code Is A Liability
The Sol Trader Christmas Eve update: moddable missions
New Sol Trader beta: the science of blame and unforgiveness
Modelling opinions and prejudices in Sol Trader
Sol Trader combat preview
How to add live code reload to your game
Why I wrote Sol Trader's GUI code from scratch
The difference review and planning makes to indie development
How to quickly add bloom to your game engine
The huge difference a good Entity System could make to your game
How tone of voice works in Sol Trader's dialogue system
How dialogue works in Sol Trader
How face generation works in Sol Trader
How I'm using Proxemics in Sol Trader's game design
Why I ditched all the build tools in favour of a simple script
Your abstractions are a liability
How I doubled the speed of my game by giving up on C++
Why video game coders don't use TDD, and why it matters
7 things I've learnt in 3 years coding my first indie game
How not to check in temporary code
The toolchain of dreams
Extreme isolation part 3: coding a CRUD app (with full example)
Extreme isolation part 2: separate the domain from the changes
Rack::Usermanual - Cucumber features as in-app user manual
Extreme isolation in web apps: part 1
BDD without tools: testing shell script
Dependency injection != Inversion of Control
Cucumber: keeping the build passing
Your framework is a liability
Never leave a failing test
The power of good naming
Kickstart your team on BDD
Waxing Lyrical on Pathfinding
A fresh take on DCI with C++ (with example)
On coding defensively
Sol Trader: on lighting
Effective bloom in OpenGL for Sol Trader
Switching Sol Trader from Ruby to C++: one week on
Why I switched from Ruby back to C++
Introducing Sol Trader
A cache-busting http server script in ruby
Feature writing: multiple actors
How I'm testing iPhone apps: part 2
How I'm testing iPhone apps: part 1
Your tests are lying to you
Kanogo: vapourware to beta in 24 hours
Pin in the map: customisable pin icons
e-petitions: handling traffic
Work with me
e-petitions: deconstructed
Lean code: slides and feedback
Pomodoros help you refactor
Call for coders: Children's Future International
How to test your node.js app
Every Ash Cloud Has A Silver Lining
Five things I learnt from Corey Haines
Archivey the Robot
Introducing Pushy - github notifications to google wave

conference


Sol Trader will be at EGX in September!
Slides for "Leading software teams well"
Waxing Lyrical on Pathfinding
Leancamp Report

config


Use Markdown to send HTML email via Mutt: now working on iOS mail

continuous delivery


BDD Kickstart is dead. Long live...
The toolchain of dreams
Why Continuous Delivery and BDD play so nicely

continuous integration


Why I ditched all the build tools in favour of a simple script
The toolchain of dreams
Multiple CI Joes with Rack and Passenger

craftsmanship


How to Build a Robust LLM Application
Extreme isolation part 2: separate the domain from the changes

crud


Extreme isolation part 3: coding a CRUD app (with full example)

cto


The Job Is Not To Build
The First Thing A Startup CTO Must Do

cucumber


Extreme YAGNI: How BDD nails your prototyping stage
Why BDD works solo, and why that matters for everyone
How to layer context into your features using Real Narrative
Make Cucumber features more readable with this one weird trick
BDD Kickstart is dead. Long live...
How I learned to stop worrying and love (some) detailed Cucumber features
Extreme isolation part 3: coding a CRUD app (with full example)
BDD: How to deal stories into features
Extreme isolation part 2: separate the domain from the changes
Rack::Usermanual - Cucumber features as in-app user manual
Extreme isolation in web apps: part 1
Features are documentation, not tests
That's not BDD, that's just Cucumber
Dependency injection != Inversion of Control
Cucumber: keeping the build passing
Scenarios are not Acceptance Criteria
Cucumber: the integration testing trap
Should we store state in our steps?
How to write a great story
The simplest Cucumber project ever
Cucumber isn't a testing tool
Kickstart your team on BDD
Feature writing: multiple actors
Your tests are lying to you
Layers of abstraction: writing great cucumber code
Pin in the map: customisable pin icons
Layers of abstraction: combining BDD and UX
Cucumbers with personality
How to get Spork working NOW on Rails 3, Rspec 2 and Cucumber
Driving out feature ambiguity

dci


A fresh take on DCI with C++ (with example)

diy planner


SVG Planner

e-petitions


e-petitions: handling traffic
e-petitions: deconstructed

ealdorlight


Ealdorlight: A Kickstarter retrospective
Ealdorlight's Kickstarter is live at 4pm today
How Ealdorlight's story stands out
Ealdorlight Kickstarter on 6th June, Sol Trader 1.3 released
Introducing: Ealdorlight

eden


Eden Development has closed
Radiating status at Eden
The Story Card Is Not The Story

egx


Sol Trader will be at EGX in September!

email


Use Markdown to send HTML email via Mutt: now working on iOS mail

engineering


How to Build a Robust LLM Application

extreme isolation


Extreme isolation part 3: coding a CRUD app (with full example)
Extreme isolation part 2: separate the domain from the changes
Extreme isolation in web apps: part 1

feedback


"Project velocity is a useless metric." Discuss.
The power of feedback

flow


How to lead your life
On Flow, and Katas

fun


Introducing Card Pirates
Waxing Lyrical on Pathfinding
Snakes and Ladders Kata

functional programming


Your abstractions are a liability
Why video game coders don't use TDD, and why it matters
The perils of curiosity
That's not BDD, that's just Cucumber

game design


5 ways I screwed up Sol Trader's launch: a post-mortem
Gossip: the best new Sol Trader feature for ages
The top 5 space games of 2015
The cunning plans of Sol Trader
Full disclosure: Sol Trader conversation upgrades
The Sol Trader Christmas Eve update: moddable missions
New Sol Trader beta: the science of blame and unforgiveness
Modelling opinions and prejudices in Sol Trader
Sol Trader combat preview
Three days to go
Gossip as a game mechanic
How Sol Trader uses information as currency
How to quickly add bloom to your game engine
The huge difference a good Entity System could make to your game
How tone of voice works in Sol Trader's dialogue system
How dialogue works in Sol Trader
How face generation works in Sol Trader
How I'm using Proxemics in Sol Trader's game design
How to choose between realism and fun in game design
4 things every space game must have

game development


Ealdorlight: A Kickstarter retrospective
Ealdorlight's Kickstarter is live at 4pm today
How Ealdorlight's story stands out
Ealdorlight Kickstarter on 6th June, Sol Trader 1.3 released
Introducing: Ealdorlight
What's next for Sol Trader and me
5 ways I screwed up Sol Trader's launch: a post-mortem
Gossip: the best new Sol Trader feature for ages
The cunning plans of Sol Trader
Full disclosure: Sol Trader conversation upgrades
The Sol Trader Christmas Eve update: moddable missions
New Sol Trader beta: the science of blame and unforgiveness
Modelling opinions and prejudices in Sol Trader
Sol Trader combat preview
Sol Trader Kickstarter now live!
Three days to go
Gossip as a game mechanic
How to add live code reload to your game
Why I wrote Sol Trader's GUI code from scratch
Sol Trader will be at EGX in September!
3 new screenshots of Sol Trader's new interface
Trailer: How it will feel to move around Sol Trader's cities
How Sol Trader uses information as currency
The difference review and planning makes to indie development
How to quickly add bloom to your game engine
The huge difference a good Entity System could make to your game
How tone of voice works in Sol Trader's dialogue system
Never, ever, ever, ever, ever give up
How dialogue works in Sol Trader
How face generation works in Sol Trader
How I'm using Proxemics in Sol Trader's game design
Why I ditched all the build tools in favour of a simple script
How to choose between realism and fun in game design
Your abstractions are a liability
How I doubled the speed of my game by giving up on C++
4 things every space game must have
After a long journey, Sol Trader has been greenlit!
Why video game coders don't use TDD, and why it matters
7 things I've learnt in 3 years coding my first indie game
New for 2015: Sol Trader now on Kickstarter
Introducing Card Pirates
Sol Trader: on lighting
Effective bloom in OpenGL for Sol Trader
Switching Sol Trader from Ruby to C++: one week on
Why I switched from Ruby back to C++
Introducing Sol Trader

git


The toolchain of dreams
How I'm writing my book using Vim, Git and Ruby

google wave


Archivey the Robot
Introducing Pushy - github notifications to google wave

government


e-petitions: handling traffic
e-petitions: deconstructed

gower street


A new adventure

gtd


A formula of motivation
SVG Planner

heroku


Kanogo: vapourware to beta in 24 hours

howto


Use Markdown to send HTML email via Mutt: now working on iOS mail
Multiple CI Joes with Rack and Passenger

index cards


Card Of The Day: Actually Do Retrospective Actions

indie games


Ealdorlight: A Kickstarter retrospective
Ealdorlight's Kickstarter is live at 4pm today
How Ealdorlight's story stands out
Ealdorlight Kickstarter on 6th June, Sol Trader 1.3 released
Introducing: Ealdorlight
What's next for Sol Trader and me
Gossip: the best new Sol Trader feature for ages
The top 5 space games of 2015
Sol Trader at EGX Rezzed: 7-9 April 2016
The cunning plans of Sol Trader
Full disclosure: Sol Trader conversation upgrades
The Sol Trader Christmas Eve update: moddable missions
New Sol Trader beta: the science of blame and unforgiveness
Modelling opinions and prejudices in Sol Trader
Sol Trader combat preview
Why (I hope) I will weather the Indiepocalypse
Never, ever, ever, ever, ever give up
How to choose between realism and fun in game design
4 things every space game must have
After a long journey, Sol Trader has been greenlit!
Why video game coders don't use TDD, and why it matters
New for 2015: Sol Trader now on Kickstarter

information radiator


Announcing edash
Radiating status at Eden

ios


Use Markdown to send HTML email via Mutt: now working on iOS mail
How I'm testing iPhone apps: part 2
How I'm testing iPhone apps: part 1

java


Dependency injection != Inversion of Control
Spring Richclient ~ That's a wrap
Spring Richclient ~ A Journey
Spring Richclient ~ Session Eight ~ Such a bind
Spring Richclient ~ Session Seven ~ Beating the Command Framework into Submission
Spring Richclient ~ Session Six ~ The View
Spring Richclient ~ Session Five ~ Applications, windows, views
Spring Richclient ~ Session One ~ Beans, Shmeans and services
Spring Richclient ~ Session Three ~ How did that work then?
Spring Richclient ~ Session Two ~ Hello World
Spring Richclient ~ Session One ~ Making Petclinic work
Spring Richclient ~ Introduction

javascript


A cache-busting http server script in ruby
How to test your node.js app

jenkins


Sol Trader: a continuous deployment story

jobs


Why Hybrid Work Works

kanban


The Story Card Is Not The Story

kano analysis


Kanogo: vapourware to beta in 24 hours

kanogo


Kanogo: vapourware to beta in 24 hours

karate


Are coding katas really worth it?

katas


Are coding katas really worth it?
Driving out feature ambiguity
Snakes and Ladders Kata

kickstart


BDD Kickstart is dead. Long live...
Why Continuous Delivery and BDD play so nicely

kickstarter


Ealdorlight: A Kickstarter retrospective
Ealdorlight's Kickstarter is live at 4pm today
How Ealdorlight's story stands out
Ealdorlight Kickstarter on 6th June, Sol Trader 1.3 released
Sol Trader Kickstarter now live!
Three days to go
Gossip as a game mechanic
7 things I've learnt in 3 years coding my first indie game
New for 2015: Sol Trader now on Kickstarter

leadership


Why you can scale agile with the right attitudes
How to give BDD a chance
Slides for "Leading software teams well"
Delegated tasks are a team anti-pattern

learning


How to lead your life
Attempting validated learning with Sol Trader

legacy


Pin in the map: customisable pin icons

liability


Your Code Is A Liability
Your abstractions are a liability
Your framework is a liability

life


Blogging again after a long hiatus
How to lead your life
Introducing Morning Pages
Introducing Sol Trader
Work with me
Don't miss your greatest achievement
The Principle of Scattered Work
A formula of motivation
On the nature of time
Are coding katas really worth it?
Learning to say Yes
Pomodoros done (hopefully) right
Eden Development has closed
My Polyphasic Sleep Experiment
750words.com + GTD = Focus

lighting


Sol Trader: on lighting

management


How to give BDD a chance
Delegated tasks are a team anti-pattern

markdown


Use Markdown to send HTML email via Mutt: now working on iOS mail

marketing


5 ways I screwed up Sol Trader's launch: a post-mortem
Sol Trader will be at EGX in September!
After a long journey, Sol Trader has been greenlit!

meta


Work with me
Old blog articles from yesteryear
Jekyll, the blog engine of kings
Welcome

motivation


How to lead your life
Never, ever, ever, ever, ever give up

mutt


Use Markdown to send HTML email via Mutt: now working on iOS mail

node.js


How to test your node.js app

object oriented


Your abstractions are a liability
How I doubled the speed of my game by giving up on C++
The perils of curiosity

open data


OStatus: what I've learnt in 24 hours
OStatus: like Twitter, but open

open source


OStatus: what I've learnt in 24 hours
OStatus: like Twitter, but open

opengl


How to quickly add bloom to your game engine
Sol Trader: on lighting
Effective bloom in OpenGL for Sol Trader

ostatus


OStatus: what I've learnt in 24 hours
OStatus: like Twitter, but open

pairing


Task assignment is a team anti-pattern
Pomodoros help you refactor
Every Ash Cloud Has A Silver Lining
Five things I learnt from Corey Haines
Pairing works for everything

paypal


Your framework is a liability

personal


Introducing Morning Pages
750words.com + GTD = Focus

personas


Cucumbers with personality

peter drucker


R.I.P. Web 1.0

pininthemap


Pin in the map: customisable pin icons

pomodoros


A formula of motivation
On the nature of time
Pomodoros help you refactor

pragprowrimo


How I'm writing my book using Vim, Git and Ruby

process


Why you can scale agile with the right attitudes
Why BDD works solo, and why that matters for everyone
How to decide whether a tool is right for you
4 questions to discover if you're *really* agile...
Make Cucumber features more readable with this one weird trick
"Project velocity is a useless metric." Discuss.
Cucumber: keeping the build passing
Delegated tasks are a team anti-pattern
Task assignment is a team anti-pattern
Card Of The Day: Actually Do Retrospective Actions

product


The Job Is Not To Build

productivity


How to lead your life
How to add live code reload to your game
The difference review and planning makes to indie development
Never, ever, ever, ever, ever give up
"Project velocity is a useless metric." Discuss.
Delegated tasks are a team anti-pattern
Introducing Morning Pages
Task assignment is a team anti-pattern
Don't miss your greatest achievement
The Principle of Scattered Work
On Flow, and Katas
A formula of motivation
On the nature of time
Learning to say Yes
Truly indispensable people
Pomodoros done (hopefully) right
My Polyphasic Sleep Experiment
750words.com + GTD = Focus
Pairing works for everything
SVG Planner

products


Ealdorlight: A Kickstarter retrospective
Ealdorlight's Kickstarter is live at 4pm today
How Ealdorlight's story stands out
Ealdorlight Kickstarter on 6th June, Sol Trader 1.3 released
Introducing: Ealdorlight
What's next for Sol Trader and me
5 ways I screwed up Sol Trader's launch: a post-mortem
The perils of curiosity
Introducing Morning Pages
Showroom software
Attempting validated learning with Sol Trader
Sol Trader now in Alpha
Sol Trader: a continuous deployment story
Sol Trader: on lighting
Effective bloom in OpenGL for Sol Trader
Switching Sol Trader from Ruby to C++: one week on
Why I switched from Ruby back to C++
Introducing Sol Trader
Kanogo: vapourware to beta in 24 hours
Pin in the map: customisable pin icons

psychology


How I'm using Proxemics in Sol Trader's game design

rails


The toolchain of dreams
Your tests are lying to you
Kanogo: vapourware to beta in 24 hours
How to get Spork working NOW on Rails 3, Rspec 2 and Cucumber

refactoring


Your abstractions are a liability
How not to check in temporary code
Extreme isolation part 2: separate the domain from the changes
Extreme isolation in web apps: part 1
The power of good naming

retrospectives


Card Of The Day: Actually Do Retrospective Actions

revelation games


Ealdorlight: A Kickstarter retrospective

richclient


Spring Richclient ~ That's a wrap
Spring Richclient ~ A Journey
Spring Richclient ~ Session Eight ~ Such a bind
Spring Richclient ~ Session Seven ~ Beating the Command Framework into Submission
Spring Richclient ~ Session Six ~ The View
Spring Richclient ~ Session Five ~ Applications, windows, views
Spring Richclient ~ Session One ~ Beans, Shmeans and services
Spring Richclient ~ Session Three ~ How did that work then?
Spring Richclient ~ Session Two ~ Hello World
Spring Richclient ~ Session One ~ Making Petclinic work
Spring Richclient ~ Introduction

rspec


Your tests are lying to you
How to get Spork working NOW on Rails 3, Rspec 2 and Cucumber

ruby


How I learned to stop worrying and love (some) detailed Cucumber features
The toolchain of dreams
Extreme isolation part 3: coding a CRUD app (with full example)
Extreme isolation part 2: separate the domain from the changes
Extreme isolation in web apps: part 1
Features are documentation, not tests
Dependency injection != Inversion of Control
BDD Kickstart: London and 2013 plans
Should we store state in our steps?
Your framework is a liability
Kickstart your team on BDD
On coding defensively
Switching Sol Trader from Ruby to C++: one week on
Why I switched from Ruby back to C++
A cache-busting http server script in ruby
Kanogo: vapourware to beta in 24 hours
Pin in the map: customisable pin icons
How to get Spork working NOW on Rails 3, Rspec 2 and Cucumber
How I'm writing my book using Vim, Git and Ruby

sc2012


Waxing Lyrical on Pathfinding

scaling


e-petitions: handling traffic

shell script


BDD without tools: testing shell script

sinatra


Your framework is a liability

sleep


My Polyphasic Sleep Experiment

social


OStatus: what I've learnt in 24 hours
OStatus: like Twitter, but open

software craftsmanship


Waxing Lyrical on Pathfinding

sol trader


The Job Is Not To Build
Ealdorlight: A Kickstarter retrospective
Ealdorlight's Kickstarter is live at 4pm today
How Ealdorlight's story stands out
Ealdorlight Kickstarter on 6th June, Sol Trader 1.3 released
What's next for Sol Trader and me
5 ways I screwed up Sol Trader's launch: a post-mortem
Gossip: the best new Sol Trader feature for ages
Sol Trader at EGX Rezzed: 7-9 April 2016
The cunning plans of Sol Trader
Full disclosure: Sol Trader conversation upgrades
The Sol Trader Christmas Eve update: moddable missions
New Sol Trader beta: the science of blame and unforgiveness
Modelling opinions and prejudices in Sol Trader
Sol Trader combat preview
Why (I hope) I will weather the Indiepocalypse
Sol Trader Kickstarter now live!
Three days to go
Gossip as a game mechanic
How to add live code reload to your game
Why I wrote Sol Trader's GUI code from scratch
Sol Trader will be at EGX in September!
3 new screenshots of Sol Trader's new interface
Trailer: How it will feel to move around Sol Trader's cities
How Sol Trader uses information as currency
The difference review and planning makes to indie development
How to quickly add bloom to your game engine
The huge difference a good Entity System could make to your game
How tone of voice works in Sol Trader's dialogue system
How dialogue works in Sol Trader
How face generation works in Sol Trader
How I'm using Proxemics in Sol Trader's game design
Why I ditched all the build tools in favour of a simple script
How to choose between realism and fun in game design
How I doubled the speed of my game by giving up on C++
4 things every space game must have
After a long journey, Sol Trader has been greenlit!
Why video game coders don't use TDD, and why it matters
7 things I've learnt in 3 years coding my first indie game
New for 2015: Sol Trader now on Kickstarter
Extreme isolation part 2: separate the domain from the changes
Rack::Usermanual - Cucumber features as in-app user manual
Extreme isolation in web apps: part 1
Features are documentation, not tests
The perils of curiosity
Attempting validated learning with Sol Trader
Sol Trader now in Alpha
A fresh take on DCI with C++ (with example)
Sol Trader: a continuous deployment story
Sol Trader: on lighting
Effective bloom in OpenGL for Sol Trader
Switching Sol Trader from Ruby to C++: one week on
Why I switched from Ruby back to C++
Introducing Sol Trader

spork


How to get Spork working NOW on Rails 3, Rspec 2 and Cucumber

spring


Spring Richclient ~ That's a wrap
Spring Richclient ~ A Journey
Spring Richclient ~ Session Eight ~ Such a bind
Spring Richclient ~ Session Seven ~ Beating the Command Framework into Submission
Spring Richclient ~ Session Six ~ The View
Spring Richclient ~ Session Five ~ Applications, windows, views
Spring Richclient ~ Session One ~ Beans, Shmeans and services
Spring Richclient ~ Session Three ~ How did that work then?
Spring Richclient ~ Session Two ~ Hello World
Spring Richclient ~ Session One ~ Making Petclinic work
Spring Richclient ~ Introduction

startup


How to Build a Robust LLM Application
The Job Is Not To Build
Your Code Is A Liability
The First Thing A Startup CTO Must Do
Extreme YAGNI: How BDD nails your prototyping stage
The power of feedback
Attempting validated learning with Sol Trader
Sol Trader now in Alpha

state


Your abstractions are a liability
Extreme isolation part 3: coding a CRUD app (with full example)
Extreme isolation part 2: separate the domain from the changes
Extreme isolation in web apps: part 1
Features are documentation, not tests
Should we store state in our steps?

steam


After a long journey, Sol Trader has been greenlit!

stories


How to layer context into your features using Real Narrative
BDD: How to deal stories into features

svg


SVG Planner

talks


Lean code: slides and feedback
BBC Talk on A Philosophy of Software

tdd


Why video game coders don't use TDD, and why it matters
That's not BDD, that's just Cucumber
Scenarios are not Acceptance Criteria
Cucumber: the integration testing trap
Never leave a failing test
The power of feedback
How I'm testing iPhone apps: part 2
How I'm testing iPhone apps: part 1
Work with me
Pomodoros help you refactor
How to test your node.js app
TDD ~ The Tortoise and the Hare

team


Your Code Is A Liability
A new adventure
Extreme YAGNI: How BDD nails your prototyping stage
Why you can scale agile with the right attitudes
Why BDD works solo, and why that matters for everyone
How to give BDD a chance
Slides for "Leading software teams well"
Delegated tasks are a team anti-pattern
Job titles are a team anti-pattern
Cucumber isn't a testing tool
Task assignment is a team anti-pattern
On Office Politics
The team is the atomic unit of success
Truly indispensable people

testing


Why video game coders don't use TDD, and why it matters
How I learned to stop worrying and love (some) detailed Cucumber features
Extreme isolation part 3: coding a CRUD app (with full example)
Extreme isolation part 2: separate the domain from the changes
Extreme isolation in web apps: part 1
The perils of curiosity
Cucumber: keeping the build passing
Scenarios are not Acceptance Criteria
Cucumber: the integration testing trap
Never leave a failing test
Cucumber isn't a testing tool

tools


Why I ditched all the build tools in favour of a simple script
How to decide whether a tool is right for you
4 questions to discover if you're *really* agile...
The toolchain of dreams

training


BDD Kickstart is dead. Long live...
How I learned to stop worrying and love (some) detailed Cucumber features
Work with me

travel


Every Ash Cloud Has A Silver Lining

tutorial


Spring Richclient ~ That's a wrap
Spring Richclient ~ A Journey
Spring Richclient ~ Session Eight ~ Such a bind
Spring Richclient ~ Session Seven ~ Beating the Command Framework into Submission
Spring Richclient ~ Session Six ~ The View
Spring Richclient ~ Session Five ~ Applications, windows, views
Spring Richclient ~ Session One ~ Beans, Shmeans and services
Spring Richclient ~ Session Three ~ How did that work then?
Spring Richclient ~ Session Two ~ Hello World
Spring Richclient ~ Session One ~ Making Petclinic work
Spring Richclient ~ Introduction

ux


Layers of abstraction: writing great cucumber code
Layers of abstraction: combining BDD and UX
Cucumbers with personality
User Experience Is Everything
R.I.P. Web 1.0

windows


Sol Trader: a continuous deployment story

writing


Introducing Morning Pages
How I'm writing my book using Vim, Git and Ruby
750words.com + GTD = Focus

xp


The Story Card Is Not The Story
Pairing works for everything