102 Hartington Crescent, CV5 6FS
- Proficient Java programmer with 10 years experience of Spring and Hibernate.
- Deeply interested in challenging technical problems and optimal solutions.
- Passionate about producing high-quality software using agile methodologies and best practices such as test-driven development and peer code review.
Senior Engineer, Product Development
FICO, Birmingham, March 2014–Present
FICO is a leading provider of analytics and decision management software. I have a combined Scrum master and software developer role, and I am currently building a web-based IDE for FICO's optimization tool suite:
- IDE is based on the Cloud9 framework (http://c9.io).
- Node.js server and MySQL database.
- Deployed on Red Hat OpenShift, running on Amazon AWS and on FICO's proprietary cloud platform.
Before that I worked on the Optimization Modeler product, which is an environment for creating rich web applications on top of mathematical programming models:
- Web front-end based on Knockout, and a Java thick client based on Eclipse RCP.
- EJB server exposed via REST APIs, both hosted in JBoss AS7, with a PostgreSQL database.
i-nexus, Coventry, July 2012–March 2014
i-nexus develops a web-based application suite that enables large organisations to put their business strategy into practice by coordinating the actions of thousands of users globally. The focus is on objective/goal modelling, metric data collection and analysis, financial tracking and project management. The product is built on J2EE technology using Spring/Hibernate with a richly interactive web 2.0 front-end and a MySQL database.
- Leading a distributed development team based in Coventry and Sofia, acting as scrum master, providing technical guidance, and supporting the product owner by working out detailed requirements for stories and proposing solutions.
- Overall technical responsibility for the i-nexus product, ensuring that new features are scalable and maintainable.
- Recruited two new Scrum teams using a combination of UK developers and an offshore software supplier.
- Directing the wider development team, establishing key metrics and setting goals aligned with the strategy of the business.
Senior Software Architect
i-nexus, Coventry, Jan 2010–June 2012
A senior developer role, sharing my time between hands-on product development, high-level design/architecture and providing support to team members.
- Participated in the recruitment of developers, interviewing and evaluating candidates.
- Produced an induction course and documentation resources for new starters.
- Coached developers in enterprise technologies, software design principles, problem solving.
- Created a fast, JUnit-based integration testing harness used to test the product after every VCS commit.
- Led the successful adoption of Scrum across three development teams.
- Initiated a quality programme which resulted in the adoption of code review and test-driven development, and subsequent reductions in released defects.
i-nexus, Coventry, July 2006–Dec 2010
A developer role, working across all areas of the i-nexus product: database design, Java coding, and web client development.
- Proposed and implemented key architectural patterns during a significant rewrite of the legacy product.
- Worked with analysts to come up with software solutions to business problems.
- Created high-level designs and estimates for product roadmap planning.
- Designed and implemented a highly flexible security system using Hibernate.
- Created an efficient database import/export system using XML and Hibernate.
- Developed a versioning system which records a journal of all changes made to a large domain model.
Dash Associates, Leamington Spa, October 2001–July 2006
Dash developed mathematical modeling and optimization software for a variety of Windows and Unix platforms.
- Contributed to optimization software products using C/C++.
- Designed and implemented the security system for the whole Xpress-MP software suite, to protect against unauthorized use.
- Maintained Java and .NET interfaces to various software components.
- Standardized and automated the build process for the whole software suite across five platforms, using a Perl system configured by XML files.
- Automated the conversion of >100,000 lines of legacy Fortran code into C, using Perl scripts.
- Designed and implemented a Tcl-based command-line interface to the optimization product.
- I like to write AI programmes to play games. I wrote and maintain an online game that includes such an AI: http://coup.thebrown.net/.
- I have always liked to take things apart and figure out how they work. Complex systems appeal to me: databases, virtual machines, hardware devices, machine learning, molecular biology.
- I play guitar and drums, and have in the past enjoyed working on various audio projects, including a microcontroller-based drum machine.
EDUCATION & TRAINING
Certified Scrum Master
Skills Matter/Scrum Alliance, 2011
BSc in Computer Science (Hons) 1st class
University of Warwick, 1998–2001
A-levels: Physics (A), Mathematics (A), Further Mathematics (A)
Holy Trinity School, Crawley, Sussex, 1996–1997
References available upon request.