Managing Director/Principal Consultant, RedHill Consulting
Mr Harris is a hands-on Senior Developer with over fifteen years of application development experience, mainly in team leading and architecture roles.
He offers considerable experience in Ruby on Rails and Java Solutions in a number of industry sectors.
In addition to Mr. Harris' strong technical skills, he is an excellent communicator, presenter and natural leader and this has seen him perform exceptionally in Team Leader and mentoring roles.
He has also developed considerable expertise in the areas of methodologies, testing, and software quality and is currently pursuing research focused on source code analysis.
Mr. Harris is also a regular contributor to and active supporter of many open source projects.
Ruby on Rails Plugins
As a result of various Ruby on Rails projects, a number of plugins were developed that were potentially more generally applicable in the wider rails community. These plugins are freely downloadable and include functionality to:
- Automatically generate foreign-key constraints when creating tables;
- Automatically generate row version columns when creating tables;
- Apply database constraints as validations against model classes;
- Conveniently store and retrieve system configuration settings in the database;
- Check to ensure the application environment matches the database environment; and many more.
Campbell-Jones Property
A Real-estate website built using Ruby on Rails on the front-end and PostgreSQL on the back-end, this project threw up numerous challenges such as pixel perfect layout, automated image scaling and includes many Web 2.0 features such as AJAX form submission, scrolling images and various slideshows.
Australian Systems Engineering
Mr. Harris designed, developed and built a web-based application to connect real-time users to full-screen interactive mainframe applications without the need for 3270 or TN3270 terminal emulation.
Beginning Algorithms, Wrox, 2005
Mr. Harris was the primary author of, Beginning Algorithms. The book guides readers through the basics of algorithms and data structures, and examines specific algorithms that will help readers in programming tasks. The book features a companion web site with unique, Java-based working implementations and examples built and tested by the authors.
Open Windows
Mr. Harris was responsible for introduction and co-ordination of an agile development methodology (XP) into the organisation. This involved numerous workshops involving all stake-holders, technical design sessions with developers and recruiting. Mr. Harris was also heavily involved in performance analysis and tuning of the client's flagship contract management application.
CGU
Mr. Harris was engaged as technical lead mid-way through a 6-month development project to consolidate user access to a number of back-end insurance applications through an integrated, web-based, front-end application.
Swann Insurance
Mr. Harris was primarily responsible for mitigating technical risk on a 12 month, 10 developer, web-based dealer insurance application system. This involved identifying technical risks and implementing solutions for areas such as business rules (using ILOG JRules), security (using TAM) and fax and email gateways.
In addition to a development role, Mr. Harris was involved in the architecture and design of the system as well as acting as a mentor for more junior developers on the team, guiding them through Agile processes, Test-Driven-Development, etc.
National Australia Bank
Mr. Harris was responsible for improving software quality through mentoring, the introduction of agile development practices such as Test-Driven Development, Continuous-Integration, etc.
His role saw his time divided between numerous projects, performing architecture and design reviews, leading and participating in architecture and design workshops, as well as getting his hands dirty cutting code.
In addition, he was involved in revising the original Reference Architecture to fully enable the design and development of truly Services Oriented Architecture systems.
Product Development
Mr. Harris developed a commercial tool (Simian) for detecting duplication (e.g. Copy and Paste) in source code (Java, C#, JSP, XML, Ruby, VB, COBOL, and more). This product is now commercially available and is used by dozens of commercial and open source projects world-wide.
ISV
Mr. Harris was responsible for re-designing and re-implementing a workflow solution.
The system uses Hibernate and the ASM byte-code library to dynamically generate java classes at runtime based on database schema. These classes can then be used by scripting libraries (such as the Rhino Javascript library) enabling developers and end-users to extend and enhance the workflow solution.
The entire development process was Test-Driven and involved not only software development but also the full-time mentoring of a junior developer who is now responsible for the on-going maintenance of the product.
National Australia Bank
Mr. Harris was responsible for defining the next generation Enterprise Architecture and J2EE Reference Architecture. This began with a detailed analysis of existing applications and frameworks to identify common services and components to serve as requirements. From there Mr. Harris worked with a team of senior developers through the numerous development iterations to produce a fully tested J2EE framework.
It is envisaged the architecture will eventually be used throughout the banks development centres world-wide. In particular, it is hope this will enable the banks Australian development centre to perform outsourced development for the UK operation.
In additions, Mr. Harris served as a senior architect and development mentor at various stages of the Internet Banking and Impaired Assets projects, performing code reviews, load testing, presenting “Brown Bag” sessions on Java/J2EE development and best practices.
As part of the Internet Banking project, Mr. Harris developed a suite of source code analysis tools that greatly improved the banks ability to identify and correct defects before deployment.
Senior Systems Architect/J2EE Practice Leader, ThoughtWorks, 2001 - 2003
Mr. Harris served ThoughtWorks as a Senior Systems Architect responsible for leading various teams in the development and delivery of large distributed applications implemented within the J2EE architecture.
Mr. Harris also conducted software architecture reviews for both internal and external projects.
In his capacity as J2EE practice leader, Mr. Harris was responsible for interviewing candidates, evaluating staff, ensuring developers were up to date with the latest technologies and providing technical direction for the company.
He played a pivotal role in leading technical sales calls and wrote and gave numerous presentations on J2EE architecture, industry trends and software development practices both internally and externally.
Mr. Harris also travelled throughout Australia, Asia and the United States to oversee projects and attend industry conferences.
Clients with which Mr. Harris has actively engaged on projects include:
- Macquarie Bank;
- Suncorp;
- GIO;
- National Australia Bank;
- ANZ;
- VENCORP;
- Dana Commercial Credit; and others.
Leading Australian Financial Institution
Mr. Harris was the Lead Architect for the re-development of the online banking system. A J2EE application connected to a Sybase database, security and scalability were critical success factors.
In addition to the online banking system, Mr. Harris served as one of two architects responsible for the development of the corporate software development framework. A set of reusable component for building high-volume, scalable and fault-tolerant systems on a J2EE platform.
Leading Australian Banking and Insurance Company
Mr. Harris was the Team Lead for the development consultants assigned on projects at this client. He was responsible for ensuring delivery by the teams across multiple J2EE projects.
These systems included:
- Workflow claims management system;
- Distributed, corporate-wide document generation systems;
- Load application management system;
- Leasing document management system; and
- Customer facing recommended repairer system.
Mr. Harris was also responsible for designing and implementing a J2EE architecture and framework that would provide the foundation for a number of J2EE developments within the enterprise. The development environment utilised a JBoss Application Server with the deployed environment having the systems running on Weblogic against both DB2 and Oracle databases.
Large-scale Leasing and Administration System
Mr. Harris's responsibilities included leading the local development team in developing components of a J2EE platform-based backend leasing system for one of the world's leading leasing companies. This system handles agreement booking & tracking, asset management, billing, and GL accounting for a wide range of complex leasing contracts This development included Java Swing user interfaces and implementing Enterprise Java Beans utilising Weblogic application servers.
Mr. Harris acted as mentor and technical lead for this project. The technical basis of the system includes Weblogic, Java Swing, Servlets, J2EE, EJB, JSP, XML/XSL, JDBC and JMS with an Oracle 8 database. The Agile development methodology has been utilised for this project.
State Government
As an Architect/Team Leader, Mr. Harris was responsible for building the core system functionality, leading, advising and training the development team. His responsibilities included selecting technology and OOAD using the RUP software development methodology.
J2EE was selected as the technology platform for VENCORP's Customer Administration and Transfers System (CATS). CATS is currently in use to manage the deregulation of the retail gas market in Victoria. The technology has subsequently been commercialised by a third-party for sale interstate and overseas. EJBs were used as the middle-tier, servlets and JSP as the client interface, Sybase for the back-end via JDBC, XML via JMS.
Architect/Team Leader, United Energy
Mr. Harris led a medium sized development team in all aspects of the SDLC, including selecting technology, OOAD using the RUP software development methodology, mentoring and training of development team and building core system functionality.
J2EE was selected for the technology platform. EJBs were used as the middle- tier, servlets and JSP as the client interface, Oracle 7 for the back-end via JDBC, XML via JMS using IBM MQ-Series for inter-system messaging. For the application server, both WebSphere and Weblogic have been utilised.
Lead Java Developer, DMR Consulting
Mr. Harris was Lead Java developer and mentor for VicRoads Payment Collection System. This project used Java on the client and server to communicate with both MS SQL Server (via JDBC) and mainframe Cobol (via an EPI/ECI gateway) backends. It was developed using an in-house framework built on JDK 1.1.7 and Swing 1.1 with a distributed component model based on the EJB specification.
Mr. Harris' responsibilities included leading a team in the development of the majority of the back-end and non-visual client code including business objects, system service and utility classes, comms etc. This included OOAD and Java Programming workshops in addition to the usual team lead functions.
Development Manager/Team Leader, Addease, 1996 - 1999
During his time at Addease, Mr. Harris was responsible for all aspects of the SDLC of a large-scale Human Resource application. He gained strong experience in data modelling; OOAD; object class library/framework design and development; developing technical architectures and team management. During the same period, Mr. Harris was responsible for all aspects of the SDLC of a re-insurance application for Universities.
Developer, Australian Systems Engineering, 1991 - 1996
Australian Systems Engineering (ASE) is a software development company, serving an international blue-chip clientele in the banking and petroleum industries from its Melbourne base. ASE specialises in output management and data warehousing solutions for IBM Mainframes.
Key aspects of the programming role with ASE included the following tasks, achievements and initiatives:
- Designed and implemented a System/370 CPU emulator written in assembler to run on Intel 80386 or higher based machines under DOS;
- Wrote an OS/2 and DOS language compiler in assembler for a proprietary database language, ECL (Execution Checking Language), used to develop output management products on IBM mainframes under MVS. This allows existing applications to be run unmodified and substantially more economically on a PC;
- Re-wrote the original ECL language compiler in System/370 assembler to run under MVS and VM/CMS with a 20 times performance increase over the previous code. This was achieved by taking the newly written PC version and converting the code;
- Wrote a Win32s OS/2 2.x API in assembler to enable existing OS/2 software to run unmodified under Win 3.x, Win 95 and Win NT Reworked the System/370 CPU emulator to run under OS/2, thereby enabling it to be run using the OS/2 API libraries for DOS and Windows respectively; and
- Assisted with the instruction of several programming courses conducted by ASE at Ferntree Computer Corporation.