Friday 3 July 2009

Professional Experience - A brief summary of commercial software development projects that I have been involved in

This is going to be a long post, something I am considering as an appendix to my CV so that interested parties can get a more detailed view of my areas of expertise.

- Developing RESTful web services using JSON
- Converting stand-alone SOAP services to be integrated into a web application
- Liaising with client project managers and their suppliers
- Consuming XML web services

- Mentoring junior developers
- Retail E-Commerce development using Hybris 4.0, Spring, MySQL, Tomcat 6
- Sole responsibility for implementing payment gateway integration with Commidea XML Web Service v4.

- E-Commerce development using Hybris 3.1
- Configuration of load-balanced production environment on hosted servers
- Developing a back office system using Grails and Groovy
Prototype reporting system for an online casino application with Grails 1.1 and MySQL 5.1.
Used GORM and GSQL (abstraction over Spring and Hibernate) for data access
Added HttpInvokerProxyFactoryBean instances to an existing Spring-based application to expose functionality

- Enhancements to existing applications
Updated database tables, views, stored procedures
Added config for re-structured Spring MVC controllers
Added formatting logic to Velocity templates
Configured TeamCity continuous integration server to check out from subversion and run tests
Set up Javascript and associated cross site scripting code for Facebook functionality

- Agile development in team of 8
Java Persistence API (JPA) (equivalent to Hibernate) for Object-Relational Mapping;
Java Server Faces (JSF) with extensive use of AJAX capabilities provided by the JBoss RichFaces components;
Use of Ivy for managing jar dependencies;
Ant build script;
Hudson with various plugins for continuous integration and monitoring of code test coverage;
Selenium for automated running of acceptance tests;
MS SQL Server 2005 and PostgreSQL databases;
Eclipse as IDE and CVS client;
Prototyping of secure Web services interaction with Ministry of Education;

- Harcourts Grenadier - Real Estate sales management system for a commercial property developer
Project manager / Programmer / Analyst and client liaison responsibilities;
Based on a similar previous project, but with different business rules, data format, and using Java Server Faces and Facelets;

- Infinity Investment Group - Peninsula Bay Property development marketing site
Struts 1.3 and Tiles for MVC architecture and template-based layout
Role-based access control using Struts and a custom authentication system;
Java version of GeoTools and Java Advanced Imaging APIs for generation of map images;
Postgis data source for GIS data;
SQL Server 2005 for registration and bid data;
JPox JDO (now known as DataNucleus and used by Google App Engine) for Object-Relational Mapping;
Javascript and dynamic image maps for presentation of up to date details on map images

Merging of existing contact details database with the new online system;

Provision of back office administration interface to allow staff to quickly view the current status of individual properties and prospective purchasers.

- Airways Collaborative Arrivals Manager
Agile development in a floating team of 4 developers, with a business analyst providing requirements;
Contributing to high level architecture discussions;
Extensive pair programming;
MySQL database;
High Availability Linux cluster;
Use of new java.util.concurrent capabilities. Initially tried Executor, later changed to use Futures;
Some use of GWT for prototyping the required AJAX functionality;
AJAX Javascript with JSON (JavaScript Object Notation);

- Infinity Investment Group - Pegasus Town
Primary developer with support from 2 others for prototyping GIS and modelling the domain;
Project management and client liaison;

Initial project was a website with a novel approach to displaying availability of property. This expanded to include display of live data on projectors in the sales centre, provision of a live auction system for the sale day.

Avoided considerable expense and risk of failure by strongly pushing for the sale day to be operated on the sale site, as opposed to setting up expensive and complex short term Internet connectivity from the site to the server hosting facility.

Success of this project lead to the client returning to us to apply the same underlying technologies for another property development project.

- Windows Mobile / Pocket PC application development using C#, Visual Studio, .net Compact Framework

2005 - 2007
Alchemy were initially approached to provide text messaging capabilities to the existing software, but were then invited to re-architect the system to make it more scalable and able to be maintained without system administrator intervention.

I was the primary developer, responsible for client liaison, acquiring requirements, designing, developing, testing, and deploying all changes.

The first stage involved converting classic ASP VBScript pages backed by multiple Access databases into JSP pages backed by a shared SQL Server database. Struts, Tiles and JDO were used for isolating the various layers of the application.

I suggested to the client that they could expand their potential revenue by adding students to as well as parents to the people that could be contacted by the system.

Enhancement projects included:
- addition of SMS text message sending capacility by sending requests to a SOAP web service
- set up of online stationery ordering using WestPac bank e-commerce services, and providing a simple back office system for schools to monitor orders
- creation of Early Notification System web services for Ministry of Education to allow schools to contact parents by email and SMS text message, with robust status reporting capabilities

- MainPower Content management system based website
Plone, customisation of templates and search functionality
Inquiry forms processed by Python scripts

- LocalEye - Portal website for local government promoting Christchurch and Canterbury New Zealand

Enhancements to Zope-based portal site;
Python scripts for manipulating search results from multiple indexes;
Upgrade of Swish-e search engine;
Evaluation of upgrade to later version of Zope

-NewJobZ - Website for a business based on assisting prospective immigrants to find work in New Zealand

Struts and tiles for MVC and templated look and feel;
TJDO for object-relational mapping;
SQL Server 2000 RDBMS;
Tomcat 5;
Processing of payments online using PayPal;

- RealJourneys Tourism Reservation System: J2EE server with Rich Java Swing GUI client
Java 1.4;
Implemented printing capabilities using XSLT and apache FoP;
Set up fax server interface using HylaFax and Java APIs;
Installed Linux operating system and fax serving software on client hardware.

1999 - 2007
- Harcourts Group
The largest real estate company in New Zealand had a number of projects that I worked on.
- Development of Swing UI components for trust accounting system (Java 1.2).
- Maintaining ASP intranet - including an enhancement that prevented cancelled long running queries from tying up processing resources on the web server.
- Production of Perl scripts to export listing data in various XML formats to several major partner websites.

1999 - 2002 (approximate)

- New Zealand Immgration Service
Maintained public website, processed change requests, added and maintained CGI scripts backed by a PostgreSQL database

Set up Swish-e search engine for indexing content


Conversion of classic ASP based website to a scalable J2EE based solution
A selection of high profile pages within the website were chosen for conversion from classic ASP to a more scalable Java EE based system.
Java Server Pages (JSP) were set up with the same HTML as the existing site (for consistency and a smooth transition);
Existing SQL queries were analysed and brought across to the new JDBC data access objects;
SQL Server 2000 was the existing underlying RDBMS;
Custom tag libraries were developed to provide content to the pages in a way that would work easily for graphic designers using DreamWeaver;
Stored procedures for a custom built online advertising module were tuned so that deadlocks would not occur;
Tomcat was configured as the server to host the new site;
Server side caching of data from the database and the filesystem (camera image file details) were implemented using a group of configurable time-based cache entry maps;
IIS was configured to redirect users from the old ASP URLs to the new site

Snow reports and webcam pages which had been pulling information from a database and a filesystem on every page request were now only updating their data periodically, significantly improving the site's ability to cope under heavy load.

E-commerce - Online shop for purchase of mountain passes - processing credit card payments in real time.

Snow reports, web cam pages, email newsletters.

- Colliers Jardine
Commercial property website with listing management backoffice interface
Team member for initial development, primary maintainer for ongoing changes.
Developed using SQL Server 7, IIS 4, classic ASP, Perlscript, modules developed in house as well as source from CPAN
Responsible for applying enhancements once they had been filtered through the project manager - e.g. addition of one-off campaigns where properties would be featured on the homepage and displayed more prominently with that property type's section of the site.

No comments:

Post a Comment