I have been having fun with computers for over 30 years. During that period I have worked on most types of software, from firmware, through tinkering with operating systems and device drivers, to writing games, and commercial applications of all shapes and sizes. I started working on large scale distributed systems about 25 years ago, doing research into the development of loose-coupled, message-based systems – a forerunner of SOA and Microservices in a product called NeWI.
I have been lucky to have had a wide range of experience leading the development of complex software in teams, both large and small, in the UK and USA. I was an early adopter of agile development techniques, employing iterative development, continuous integration and significant levels of automated testing on commercial projects from the early 1990s.
I did a four and a half year stint at ThoughtWorks as a technical principal working on some of TW’s biggest and most challenging projects. I was Head of Software Development for the London Multi Asset Exchange (LMAX) an organization that built one of the highest performance financial exchanges in the world, is well known for the excellence of its software development team, architecture and development process.
I now the founder and managing director of Continuous Delivery Ltd, where I work as an independent Software Consultant, advising companies around the world on the topics of Continuous Delivery, Team organisation, Software Development process, automated testing, software design for high-performance and software design in general.
I intend to use this weblog to discuss some of my ideas on continuous delivery, agile development, domain driven design, high-performance computing, TDD, BDD and my experiences.