Director Profile: Francis Fish
Francis is currently available for Teaching behavior driven development in Ruby/PHP/Perl, Ruby on Rails development, agile consultancy work, remote pairing, database design. Contact Availability for more information.
Francis has been working in Information Technology since 1985 in a number of industries for several blue chip and consultancy companies including KPMG, Price Waterhouse, GEC, and Oracle Corporation. An experienced team leader and mentor, he has seen through the full project life cycle from "first touch" to implementation. Database designer and architect, working in senior roles with strong Ruby and database design skills developed in a range of industries.
Francis is a long-time proponent of "small A" agile methods and approaches and has given talks and blogs frequently sharing his experiences and ideas as widely as possible. He is one organisers of Manchester Agile Rails Conference and recently spoke at Agile North
Ruby on Rails
Web development and Architecture
Mobile Web, JQuery Mobile
Oracle Database: PL/SQL
OSS Databases: MySQL, Postgres
Understanding business needs
Problem Solving and Analysis
Project Estimating and Management
Giving training and mentoring
Qualified level 3 kayak coach
Sofware as a Service E-Commerce
Online travel agent
Online gaming back end services
Legal claims management
Linear Asset Management
Selected essays and talks
- Good practice check list for code
- TDD presentation
- What is Agile? Essay
- YAGNI - You Ain't Gonna Need It Essay
- Web mobile app to help with house moves
- Fragmenteria place game
- Sandwich buying site (still being built!)
- Daniel Pink's Drive
- Productive Programmer by Neal Ford
- Clean Code by Bob Martin
- Kent Beck's TDD book
- Linchpin: Are you indispensible?
- Circle of Innovation
Warning - Francis writes poetry and short stories as well as tech stuff.
Open Source Projects
Francis has created the following Ruby plugins and gems:
- has_lookup_extension: Lookup values for Ruby on Rails.
- Validate bank: Somewhat out of date RoR plugin to validate UK banks using Postcode Anywhere's service.
- Keyword Density: Rails plugin that will count words of more than two characters in a string. Uses a stop list (can be user-supplied). Will look for phrases. Counts and searches for both stemmed and unstemmed words. Being used to generate meta keyword tags at the moment.
February 2012 - Now
Part-time role building and designing the open source offering for Cuprium in Ruby on Rails 3.2, with a Postgres back end.
August 2009 - Now
Independent software house. Some of the roles were contract and are described below in more detail. In addition to these we have:
November 2011 - Feb 2012
February 2010 - October 2011
Online Travel Agency Manchester
Agile XP Coach
Mentoring and working with developers from our Ruby Academy with Scrum and Agile. Using RSpec and Cucumber plus helping them understand the Rails and Active Record idioms needed to be productive. Pair programming to learn and pass on expertise.
Working closely with the business to create user stories and estimate the work.
The projects are listed below:
August 2009 - February 2010
Gala Coral Plc Woking
System review and TDD implementation
Introducing Agile way of working to the ePlatform team. Conducted initial review of the code base and generated reports and outline code review documents for use by the team and presented the results to them. Worked closely with the overall management in the setting of goals.
Designed and implemented an infrastructure to support a PHP-based Test-Driven Development methodology and trained the team in its use.
Helped with technical interviewing for new team members and contractors.
Created a continuous integration server using PHP Under Control (based on the Java-based Cruise Control) and wrote appropriate build scripts.
Worked with other teams introducing TDD concepts and also wrote some code interfacing with external web services.
Mentored team members in database coding and design issues, as well as basic class and layer architecture.
June 2007 - June 2009
Marketrix Ltd Chester
Senior Web Applications Architect
Agile, test-driven development in a challenging environment using Ruby on Rails. Wrote 3 Rails plugins that were put out as OSS for lookup codes, text searching and interacting with external bank account details lookup service to avoid duplication of effort and standardise the approach to these problems.
Technical liaison with partner companies over interfaces and documentation.
Business of automated Finance lead buying and selling. Interface with other companies in the marketplace using SOAP/XML/HTTPS/Email.
Portal style interface using AJAX and Rails libraries.
Credit card claims management for solicitors to allow them to provide a low-cost service. Designed and implemented key parts of claim life cycle process management.
Integrating with PHP sites using XML API's and maintaining older PHP software.
Jan 2007 - June 2007
Tyco Electronics North Wales
Senior Java Developer
SNMP-based system for monitoring test equipment in telephone exchanges for BT. Requirements specification and delivery of new modules in the system.
Refactoring for maintenance and bug fixing on existing J2EE code base, web-based application using struts, tiles and the Oracle database as a back-end.
Database design and implementation
Configuration Manager for the product
Exor Corporation Warrington
Web services and Java guru for the company. Creating and extending existing PL/SQL APIs into web services.
Linear asset management for Highways using the linear networking capabilities of Oracle Spatial. Responsible for the design of the next release of the software.
Produce templates for specifications. Consult on processes. Supervise liaison work with partners.
Create prototype using Oracle Application server 10g portal. Using Java J2EE portlets and PL/SQL and JDeveloper. Wrapping Oracle Map Viewer into a portlet.
Partnering with Oracle on making EAM work spatially.
Investigating using Struts with JBOSS for deployment of web-based applications.
Contract Architect and Developer
Architect, design, build and implement solution to move an entire customer data set between to call centre databases. Using Oracle queues and objects, as well as the XML parser and related software.
Using Geneva APIs to move information between Geneva instances
Oversee and derive work plan for splitting data warehouse to serve the two new databases.
Adis International Tattenhall, Cheshire
Senior Software Developer
Technical team-lead for a global evidence-based marketing product used by pharmaceutical companies. Designed and built the database, the major components and planned their construction. Acted as a mentor to the less experienced members of the team. Architecture based on Oracle Portal, web forms and custom Java and PL/SQL rendering.
Developed full 3 way orthogonal model of packaged web site solution (to sell content to existing customers) in UML using Rational Rose to consolidate existing use of the tool.
Acted as a consultant on the re-architecture of the product into web services and J2EE, with a Portal front-end.
Used XML message passing to get round firewall problems.
Oracle UK Manchester
Senior Consultant 2
Engaged as a consultant in a range of industries on a variety of projects. Final project was the technical team lead building the Adis product, from which I was head hunted. I worked mostly on long term projects from inception to conclusion. I also gave training in PL/SQL and JDeveloper when required.
Part-time role (fitted in around engagements) as a Staff team leader, looking after the career development and review of 6 other consultants. Was also involved in interviewing and recruiting for Oracle UK.
2 years technical pre-sales for Oracle Financial Services group, working in the City and major Financial Services institutions, helping them build Oracle-based solutions. Had particular responsibility for the Oracle tools, in particular JDeveloper and Designer.
3 years with the Enterprise group. Including implementing Oracle manufacturing at Leyland Trucks; Database back-end for Java-based system for Halifax estate agency; call-centre directory systems at Barclays Bank.
KPMG Health Systems
University of Liverpool
Hobbies and Interests
1983 - 1986 Liverpool Polytechnic