Summary

Mike is an experienced software developer, designer and consultant. Most recently he has been building applications in both Ruby and Java, leading development teams, and helping organisations implement agile development practices.

Mike was a early adopter of Ruby, and co-founded the Melbourne Ruby/Rails user-group.

Consultant, Cogent Consulting

Ruby Test Automation consultant, nabCapital.com

May 2008 – October 2008

nabCapital is a division of National Australia Bank. I was engaged within their Data Warehouse group to introduce kick-start their test-automation efforts. Among other things, I:

  • Helped to upskill a team new to agile development
  • Implemented a domain-specific language (DSL) suitable for testing of batch processing (ETL) jobs implemented in IBM InfoSphere DataStage (technology: Ruby)
  • Automated environment configuration, continuous-integration build, and deployment processes

Ruby Developer at Six Figures

Jan 2008 – April 2008

I helped build Six Figures – a recruiting site built using Rails.

  • Mentored other developers in use of Ruby, and test-driven, object-oriented design
  • Used Ruby meta-programming techniques to reduce coding effort and improve maintainability
  • Focused the team’s efforts by encouraging a more rigourous, iterative development cycle
  • Migrated the system from MySQL to PostgreSQL

Consultant, Thoughtworks

Jun 2004 – Mar 2007

Thoughtworks is a global systems integrator, specialising in using agile methods to build enterprise-scale software solutions. During my three years there, I worked on projects at various Melbourne clients.

Delivery Manager & Technical Lead, Home at Yellow, Sensis

Nov 2006 – Mar 2007

Sensis Home at Yellow is an online magazine focused on home improvements (technology: Java, bespoke MVC framework, Majitek GridSystem). I joined the team as Technical Lead, and later inherited a Delivery Manager role. Highlights were:

  • Lead a 12-person agile project team
  • Built a highly-dynamic, Ajax-heavy website
  • Drove the first use of Ruby on Rails within Sensis (a content-management system for the main Home at Yellow site)

Senior Developer, eCRS, National Australia Bank

Oct 2006 – Nov 2006

I spent a couple of months assisting on a project to build a credit-rating system (technology: Java, Struts, Hibernate). The project was troubled, and my role involved:

  • Delivered working software!
  • Promoted pairing, test-drive design, and other agile practices, in an effort to improve code quality
  • Coached other developers in object-oriented design techniques
  • Strengthened the application’s “domain model”, to reduce duplication and improve maintainability

Technical Lead, Selenium Core

Jul 2006 – Sep 2006

Selenium is a leading web-application acceptance-testing tool (technology: Javascript). It was originally developed within Thoughtworks, and later released as open-source. In mid-2006, I led a Melbourne-based team dedicated to improving the usability and utility of the tool.

Senior Developer, CIB, National Australia Bank

May 2006 – Jun 2006

Team Lead, Activ8, Swann Insurance

Jun 2005 – Apr 2006

“Activ8” allows vehicle dealers to sell Swann insurance products during a vehicle purchase (technology: Java, Struts, Hibernate, ILOG JRules). The project had been uncommonly successful in it’s first two stages, so expectations were high. I joined the team in the third phase of the application’s development, assuming the roles of technical lead and “iteration manager”. My role involved:

  • Planned releases, in conjunction with the customer
  • Managed a team of 7
  • Took primary responsibility for design decisions (while involving the rest of the team)
  • Ran and tuned the iterative development process
  • Successfully delivered phase 3 on-time and on-budget

Senior Developer, CGU Connect, CGU Insurance

Jul 2004 – Apr 2005

Senior Software Engineer, Agentis Software

Mar 2002 – Jun 2004

Agentis develops products for rapid development of business software. I was a senior member of the team tasked with automatic generation of Java/J2EE code based on business-process models. While there, I:

  • Led the design and implementation of a model-driven J2EE compiler/code-generator
  • Chaired high-level design meetings
  • Introduced various agile development practices, helping to make my team the most productive in the engineering organisation
  • Coached the engineering organisation (~20 developers) in adoption of agile development practices
  • Created automated unit- and component-testing processes, and promoted test-driven development
  • Designed and installed a new development planning and tracking process, based on Scrum

Senior Software Engineer, Cortex e-Business

Dec 2000 – Feb 2002

I joined Cortex when they expanded their Sydney operation into Melbourne in early 2001, and was the first hire for the Melbourne office.

  • Recruited additional staff for the Melbourne office
  • Managed and mentored junior programmers
  • Key member of a project to create a reusable B2C platform (CORSTORE)
  • Enhanced Cortex’s system for build, deployment and automated testing of J2EE applications
  • Implemented a continuous-integration process
  • Championed the use of agile development methodologies within Cortex
  • Developed a code-generator for rapid development of EJB applications

Cortex later shut down their Melbourne operation, and was reborn as a product-development company, Cenqua, which is now part of Atlassian.

Solution Architect, Andersen Consulting (now Accenture), London

Nov 1998 – Mar 2000

AC was commissioned by a global telecommunications company to build a web front-end for management of “Centrex” virtual-PABX services. I was contracted to provide expertise in web-development, and acted as lead developer and technical architect for the web component of the project.

  • Provided expertise in web-related and open-systems technologies, including HTML, HTTP, CGI, web-server administration, TCP/IP networking, and Internet security
  • Introduced Java to the project, along with Java Servlets, Enterprise JavaBeans and XML
  • Coached a team of developers learning to program in Java, and also taught Perl and C
  • Designed and implemented a web-application framework
  • Implemented a security framework, involving the use of LDAP, JNDI and SSL client certificates
  • Automated the product-build process, and implemented continuous-integration
  • Installed development tools, and maintained the development environment

Contract Web/network/UNIX administrator, London

Aug 1996 – Aug 1998

In London I worked as an independent contractor, providing expertise in UNIX and TCP/IP-based network services. My clients included:

  • ICO Global Communications
  • British Gas Services
  • Derwent Information

During this time I did a wide variety of things:

  • Built a web-based corporate “phonebook” application (using CGI/Perl)
  • Maintained UNIX servers (Solaris, mostly)
  • Maintained network services, including
    • Internet & intranet web-servers
    • email gateways (sendmail, qmail)
    • internal & external DNS
    • firewalls
    • NIS+
    • Samba
    • Usenet news (NNTP, inews)

Analyst/Programmer, Dept. of Survey and Land Information, NZ

Oct 1993 – Apr 1996

  • Implemented server software for a real-time graphical-query system (using Perl, C, Oracle)
  • Managed a project to replace existing Digital equipment with Sun/Solaris equipment
  • Implemented a firewall gateway to the Internet, at a time when such gateways were rare
  • Took a lead role in promoting web-technology as a means of sharing information within the organisation
  • Maintained TCP/IP network services, including e-mail and Usenet news.
  • Provided (as part of a team) technical support for 40+ UNIX workstations throughout New Zealand, together with software (Oracle, Vision GIS) and attendant peripherals

Unix Consultant, InForm Group, NZ

Apr 1992 – Sep 1993

InForm provide a legal practice-management product, implemented in a 4GL. While there, I:

  • Provided UNIX expertise, and administered the in-house UNIX systems
  • Implemented systems to support the development process: source code control, build automation and release management
  • Installed and maintained e-mail and Usenet news facilities

Research Programmer, Department of Computer Science, Auckland University, NZ,

Feb 1991 – Jan 1992

Developed a graphical interface (implemented in C) for an experimental object-oriented language (Kea)