CHRIS BROWN
102 Hartington Crescent, Coventry, CV5 6FS
jobs@thebrown.net
SUMMARY
- Proficient Java programmer with 10 years experience of Spring and Hibernate.
- Strong JavaScript developer involved in creating highly interactive web applications.
- Deeply interested in challenging technical problems and innovative ways to solve them.
- Passionate about producing high-quality software using agile methodologies and best practices such as test-driven development and peer code review.
I am looking for a role where I can apply my understanding of algorithms and mathematical modelling to solve complex business problems, while also expanding my knowledge base, especially in the field of machine learning.
EXPERIENCE
Senior Engineer, Product Development, Optimization
FICO, Birmingham, March 2014–Present
FICO is a leading provider of analytics and decision management software. Since 2020 I have been working on Xpress, a solver for many types of constrained optimization problems. My contributions include:
- Reviewing the C API and improving robustness through clear specifications, documentation and testing.
- I am responsible for the Python API for Xpress, making many performance and usability improvements.
- Designed and implemented an API to support multi-objective optimization problems.
- Redesigned the I/O subsystem, adding support for compression using several different algorithms.
- Investigating applications of machine learning within the solver.
From 2016 to 2020 I worked on Xpress Workbench, a web-based IDE for FICO's optimization tool suite.
- I was the technical lead for this project, responsible for the architecture, design and implementation of every aspect since its inception.
- Written in JavaScript, using a Node.js server based on Amazon's Cloud9 framework (https://aws.amazon.com/cloud9).
- Deployed as a web application on Red Hat OpenShift, running on Amazon AWS, and also as a Windows and macOS desktop application using NW.js (https://nwjs.io).
- Features include an interactive debugger, data exploration tools, and integration with several other Xpress products.
From 2014 to 2016 I worked on the Xpress Insight product, which is an environment for creating rich web applications on top of mathematical optimization models:
- I had a combined Scrum master and software developer role, being responsible for five developers.
- WildFly 9 server, with core logic implemented in EJBs, and REST API layer based on Spring.
- Persistence layer uses Hibernate and a choice of MySQL or PostgreSQL databases.
- Modern web front-end based on Knockout, and a legacy Java thick client based on Eclipse RCP.
- Integrates with Tableau for data visualization.
Development manager
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 of 20 people, 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.
Software Architect
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.
Software Engineer
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.
INTERESTS
- I am interested in AI algorithms for playing games. I wrote and maintain an online game that includes such an AI: http://coup.thebrown.net/.
- I enjoy puzzles and board games, of which I have a large collection.
- I have always liked to take things apart and figure out how they work. Complex systems appeal to me: databases, virtual machines, hardware devices, neural networks.
- To stay fit, I climb, run, cycle, swim and play badminton.
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.