Telephone: 01473 273621  Mobile: 07734 592693

Curriculum Vitae ~ Resumé

62 Tomline Road
Suffolk IP3 8DB

Availability Now Location Ideally Ipswich or East Anglia, happy to telework Date Feb 2020


Java (20 yrs), C/C++ (11 yrs), J2EE / Servlets / JSP / HTML (9 yrs), Web Services (4 yrs), REST (4 yrs), XML/XSLT (4 yrs), JSON (4 yrs), JDBC/SQL (7 yrs), JMS (5 years), Node.js (3 yrs), shell script, AWK, Pascal, APL, FORTH, etc. (2-3 yrs each), Ruby (2 yrs), Go (1 yr), Python (6mo)
Development environments, tools and methodologies:
Unix/Linux (20 yrs), DOS/Windows (7 yrs), JUnit (10 yrs), Mojasef/Stringtree (6 yrs), Version Control (CVS/Subversion 5 yrs, Git 5 yrs), Eclipse (6 yrs), Ant (4 yrs), Maven (1 yr), ActiveMQ (1yr), Test-Driven-Development (15 yrs), Object-Oriented Design (20 yrs), Open Source (7 yrs), Agile (XP 6 yrs, Scrum 2 yrs), Oracle (2 yrs), MySQL (4 yrs), RFID (1 yr), SmartIntegrator (6 mo), Simulcrypt (6 mo), Raspberry Pi (1 yr), Arduino (1 yr)
Industry Qualifications:
Sun Certified Java Programmer
Academic Qualifications:
PgCAP and FHEA (University of Suffolk, 2019)
MSc in Computing for Commerce and Industry, (Open University, 2010)
PgDip in Computing for Commerce and Industry, (Open University, 2008)
PGCE in adult and post-compulsory learning (University of East Anglia, 2005)
BSc (hons) in Computer Systems Engineering (University of Warwick, 1986, 2.ii)
City & Guilds 7407, Teaching Adults in Further Education (Suffolk College 2003)

I am experienced in all aspects of software development, including object-oriented technologies, user-interface design, network and internet protocols, web and mobile technology, development process and software version control systems. I have evaluated a wide variety of computer and software systems and am confident in specifying architectures and solutions for real-world problems. I have teaching, training, organisational and management experience as well as military and leadership training. I am especially familiar with service and system integration including REST, XML, XSLT, JSON, JSP, JDBC and Web Services as well as binary and textual interfaces and protocols. I have a deep understanding of HTTP and web frameworks (Struts, Spring MVC, mojasef and many others), dynamic web page generation and the integration of modern web and server-side technologies with legacy software.

I am a qualified, experienced, and flexible teacher and trainer, familiar with classroom teaching, on-the-job training, and distance learning. I have good communication, collaboration and mentoring skills and work well in a team.


Sep 2017 - Jan 2020: University of Suffolk, Ipswich
Lecturer in Computing: Teaching software development and asociated technologies to undergraduates. Lesson planning and delivery, classroom management, mentoring, marking and moderation of work (part-time).

Jul 2015 - Nov 2017: Guidesmiths Limited, London
Consultant Developer: Architecture, Design, implementation and support of a replacement for a complex proprietary billing system Main skills used include Javascript, Node.js, Docker, Go, microservices, git, AWS, etc. (contract)

Oct 2015 - Apr 2016: Conga Limited, Ipswich
Senior Software Developer: Architecture, design and implementation of prototype system for scheduling and managing on-demand public transport. Mentoring staff and building a development infrastructure Main skills used include Java, XMPP, Redis, MySQL, git, Linux, AWS, genetic algorithms, routing algorithms, open data. (contract,)

Jun 2014 - Oct 2015: Guidesmiths Limited, London
Consultant Developer: Architecture, Design, implementation and support of a mission-critical financial back-end for peer-to-peer sales of teaching resources Main skills used include Javascript, Node.js, Redis, MySQL, Docker, microservices, git, etc. (3 month contract, extended several times)

Feb 2014 - May 2014: Smart 421 Limited, Ipswich
Senior Software Developer: Maintenance, continued development and mentoring new team members on the mobile billing system I worked on two years ago. (3 month contract, extended 4/14)

Sep 2013 - Feb 2014: Follow The Van, Ipswich
Development Lead: Architecture, design and prototype production for a "stealth" startup business. Main skills used include HTML, Javascript, Ruby, Node.js, Redis, MySQL, VMWare, Vagrant, Docker, git, etc.

Nov 2012 - Jul 2013: BT Vision, Adastral Park, Ipswich
Consultant Lead Developer: Design and implementation of a key component in a cutting-edge simultaneous multi-standard video encryption system for the high-profile launch of BT Sport. Supporting and mentoring the rest of the team, particularly in the areas of TDD, iterative design, and high-reliability development practices. Our component was such a success that the team, the software, and the way we deveoped it are now being held up as reference examples for other parts of British Telecom. Main skills used include C, Ruby, make, git, TDD, Simulcrypt, binary protocols, high availability, high reliability etc. (initially a short contract, extended several times)

Apr 2011 - Jan 2012: Smart 421 Limited, Ipswich
Senior Software Developer: Design and implementation of multiple SOAP web services for mobile pay-as-you-go billing. Mentoring of development team and advising managers on agile methodology, tools and techniques. Main skills used include Java, XML, SOAP, web services, SmartIntegrator, JUnit, Subversion, Ant, Maven, Jenkins, Eclipse, etc. (6 month contract, extended 10/11)

Dec 2009 - Mar 2011: STL Technologies Limited, Bury St Edmunds
Senior Software Developer: Green-field architecture, design and implementation of general-purpose software for acquisition, management and presentation of location data from RFID tags and readers. Creation of several demonstration systems for prospective customers including document management for a police force, factory inventory for an insulation manufacturer, delegate tracking for a convention organiser and personalised itinerary display for a training provider. Mentoring of development team, implementation of a development process, including selection, installation and management of development and collaboration tools. Provided cross company training in agile and test-driven development, covering a range of tools and techniques. Main skills used include RFID, binary protocols, Java, Linux, web, Google Maps, MySQL, JSON, JavaScript, CSS, Spring, Maven, Mojasef, Stringtree, JUnit, Subversion, git, Ant, Eclipse, etc. (Initially a 3 month contract, Extended monthly until 3/11)

Jul 2009 - Sep 2009: Smart 421 Limited, Ipswich
Consultant Software Developer: Design, implementation and maintenance of server software and XSLT page templates for customer-facing.unified login and registration system for a major mobile telephone operator. Mentoring of development team and review of associated code. Main skills used include Java, XML, XSLT, web services, JavaScript, CSS, JUnit, Subversion, Ant, Eclipse, etc. (2 month contract)

Sep 2006 - Apr 2009: iO Global Limited, Ipswich
Senior Software Developer: Design, implementation and maintenance of customer-facing systems for management, aggregation and sale of mobile downloads such as ringtones, music and Java games. Design and implementation of trial system for personalization of content and advertising across web, mobile and TV. Design, implementation and maintenance of initial deployment of location-based web/mobile service integration portal for BT and Westminster City Council. Mentoring of development team and process improvements to handle complex multi-customer workload. Main skills used include Java, Linux, web, wap, MySQL, REST, AJAX, JSON, web services, JavaScript, CSS, Spring, Hibernate, Mojasef, Stringtree, JUnit, Subversion, Ant, Eclipse, etc.

Mar 2006 - Sep 2006: Smart 421 Limited, Ipswich
Consultant: Specification, architecture, design, and implementation of an enterprise licence key management component for a large Dutch media and telecomms company. Main skills used include Java, J2EE, servlets, JMS, messaging, JDBC, SQL, Weblogic, web services, UML. (6 month contract)

Jan 2004 - Mar 2006: Efficacy Solutions Limited, Ipswich
Consultant: Specification, design, and implementation of systems for local businesses and individuals including: improvements to an enterprise message-based system; configuration and management of corporate web sites; design, implementation and testing of drivers for legacy industrial hardware. (Several fixed price contracts)

Nov 2002 - Mar 2006: Suffolk College, Rope Walk, Ipswich
Lecturer in Office Technology and Computing: Teaching software development, web technologies, and expert systems to late teenage and adult learners. Course and lesson planning and delivery, classroom management, mentoring, marking and moderation of work (part-time).

Nov 2002 - Jan 2004: BT Ignite Global Solutions, Adastral Park, Ipswich
Software Engineer: Enhancements and maintenance of complex network monitoring and provisioning system consisting of a servlet/JSP/HTML/JavaScript front-end to custom Java middleware running under iPlanet application server on Solaris and communicating with an Oracle database using JDBC and SQL. Training a team to outsource future development. (Several fixed price contracts)

Oct 2001 - Jul 2002: BT eXact, Adastral Park, Ipswich
Software Engineer: Enhancements to Enterprise Knowledge Repository: User Interface process reengineering and the complete architecture, design and development of a distributable, scaleable, cacheing "middleware" web application using JSP, custom tags, servlets and JDBC. Provision of flexible website branding and user experience customization using XML and XSLT. Acting as a Java, Object-Oriented Software, Web Services, Software Quality and Extreme Programming mentor for other team members. (Fixed price contract)

Apr 2000 - Jul 2001: British Telecom, Adastral Park, Ipswich.
Software Engineer: Maintenance of legacy Enterprise Knowledge Repository in C++/CGI/HTML/JavaScript, development of replacement web application in Java. Implementation of new SCM system and development process. (Initially a 6 month contract, Extended 10/00, 04/01)

Feb 2000 - Mar 2000: British Telecom, Martlesham Heath, Ipswich.
Software Engineer: Architecture, design, implementation and support of a prototype Java/HTML/JavaScript replacement for the complex multi-page paper forms used by sales account managers. Training the team who will take the project into deployment. (1 month contract)

Oct 1998 - Feb 2000: British Telecom, Bibb Way, Ipswich.
Software Engineer: Maintenance and development of a distributed C++ middleware system to perform real-time system tests for "Home Highway" ISDN service. Included AION knowledgebase on Solaris Unix. (Initially a 6 month contract, Extended 4/99)

Apr 1995 - Oct 1998: British Telecom, Martlesham Heath, Ipswich.
Software Engineer: Design, implementation and maintenance of a distributed multi-platform Java system for work scheduling and data-gathering. Design and maintenance of the previous version in C++ and C on a DOS-based Husky FS2 hand-held terminal. Writing a serial device driver in 8086 assembler for the FS2. Acting as a Java, C++ and object-oriented software mentor for other team members. (Initially a 6 month contract, Extended 10/95, 4/96, 4/97, 4/98)

Sep 1994 - Jan 1995: Telemarketing Link Ltd, Slough
Systems Manager: Management of a department of five people and a 50-user Pyramid Unix system. Creation and maintenance of telemarketing applications

Apr 1990 - Sep 1994: Lindos Electronics, Melton, Suffolk.
Purchasing Manager: Management of one employee. Design and implementation of combined computer/manual system for tracking and predicting stock shortages, automated component ordering, stocktaking and goods despatch.

Mar 1988 - Mar 1990: Lindos Electronics, Melton, Suffolk
Software Engineer: Design, implementation and support of software in C++ and Assembler under DOS including UI, graphics, language interpreter and device drivers to control the Lindos LA100 Audio analyser. Writing and production of the accompanying manual.

Jul 1986 - Mar 1988: Kuma Computers Ltd, Pangbourne, Berks.
Programmer: Porting of a word processing package from C and Assembler under GEM on the Atari ST, to C under GEM on the PC. Design and implementation of an indexing package for the above. Design and implementation of a word processing package in C under AmigaDos on the Amiga.

Sep 1983 - Jun 1986: Computer Systems Engineering degree, University of Warwick.
Student: Courses in Pascal, C, C++, Unix, Object-Oriented Design, Operating Systems, Database Theory etc. My final year project was a software package to create, display and simulate random 'fractal' terrain (C++ under Unix on a VAX) as part of a larger project to research low-level missile guidance algorithms.

Jan 1983 - Sep 1983: Marconi Space and Defence Systems (Command and Control), Camberley, Surrey.
Electronics Assistant Assistance in the manufacture of military computer system prototypes, and writing of test programs in 8086 assembler to evaluate the hardware, a service not provided by the main software contractors.

Jan 1980 - Oct 1982: Royal Navy, various ships and shore stations.
Weapons Engineer Officer: General and Navy-specific engineering training, both theoretical and practical. Leadership and management training.


My secondary education was at Farnborough Grammar School, where I obtained 'O' levels in Biology, Chemistry, Mathematics, English Language, English Literature, French, German, Technical Drawing and General Studies, followed by 'A' levels in Mathematics, Physics and Design and Technology. During the Design and Technology course I was part of a three-man team that designed and built an automatic lawnmower which appeared on BBC TV's 'Tomorrow's World'. At university the honours degree in Computer Systems Engineering covered the theory and practice of software, electronics and the interface between them - in short, all the most useful parts of Computer Science and Electronic Engineering. In the final year I specialised in software but still retained a good grounding in electronic design. In recent years I have continued my education, taking evening courses 'for fun', and have gained 'A' levels in English, History, German, Accounting, Philosophy and Geography as well as taking courses in Advanced Driving and Video Making. I have completed both an MSc through the Open University and a programme of teacher training.

Other Activities and information

I have been an moderator, mentor and reviewer at since 1999, and have helped thousands of people to a better understanding of Java and associated technologies. I am a contributor to many open source software projects, including Stringtree Java Utilities, the Mojasef server and application framework, and Friki a web collaboration tool. I am an active media maker and producer for clients and friends with skills in camera operation, sound recording and audio/video editing. I am a keen player, designer and demonstrator of all forms of social games including role-playing games, war games, board games, card games and paintball games