Software engineer and published author with over twenty years experience of software design and development.