I started working in the IT field in 1987, with the first commercial venture focusing on developing custom animations for the advertising industry (1989). I completed an under-grad in Computer Science and Software Engineering. After this, I worked in a variety of roles: lecturer, systems administrator, software engineer, solution architect, business consultant, project manager, CTO, technology consultant, and IT Director.

I am currently in the final stages of completing my Phd. thesis.

Listed below is my experience in Teaching, Industry, Administration, and Open Source Projects.

Teaching Experience

  1. Intelligent Agents* [Developed in 2002]
  2. Operating Systems* [Developed in 2002]
  3. Project Management [Collaborated to develop 50% of the material in 2003]
  4. IT in the Business Context [Collaborated to develop 30% of the material in 2003]
  5. XML Technologies* [Developed in 2003]
  6. Agile Development Project* [Developed in 2005]
  7. Network Computing* [Developed in 2006]
  8. Computer Logic Essentials* [Developed in 2007]
  9. Software Development Practices* [Developed in 2007]
  10. Software Deployment and Evolution* [Developed in 2009]
  11. Software Development Project (A and B)* [Developed in 2009]
  12. Software Project Practices and Management
  13. Data Structures and Algorithms
  14. Software Development in Java
  15. Programming in Java
  16. Programming in C#
  17. Data Communications
  18. Business Modelling with UML (Short course)
  19. Software Systems Modelling with UML (Short course)
  20. Testing Object-Oriented Software Systems (Short Course)
  21. Developing J2EE Software Systems (Short Course)

9 of the above subjects (marked with a star) were new units that I fully developed. The other units were extensions on top of material developed by my colleagues to reflect my teaching style.

Industry Experience

Technology Consultant and Solution Architect at Thought Green Technologies: I review many of the solutions that are developed by Thought Green as well as act as a primary technology consultant to ensure that the set the technologies and tools selected match the projects constraints and can be delivered within the resource and budget available.

Technology Consultant (2008-2009) at Thomson Reuters. I continued as a consultant at Thomson Reuters after the acquisition of cvMail. In this role I collaborated in the development of the short-term and long-term technology strategy, provided advise on software architecture, project management, and hiring of new staff. I also helped with technology review of another division within the organisation.

Technology Consultant (2008) at Cambridge technology Enterprises. I helped improve the solution architecture with a focus on performance, as well as refined the software development methods used in the construction of a large J2EE based web application.

Director, IT at cvMail (2006 - 2008): I started work with cvMail as a technology consultant, moving on to help in solution architecture and eventually joined them as their IT Director. The key accomplishments in this role were (i) successful merger with Thomson Reuters, and (ii) leading the development of the next generation of the flag-ship product line.

I was responsible for the IT budget and staffing in this role

Founder and CTO at Thinking Objects (2002 - 2004): Apart from technical roles (development and architecture) I was also responsible for some aspects of running the business including negotiating business deals, working with lawyers to finalise the contracts and managing project financials.

Key Highlights:

  • Telstra Message Bank (Lead developer and software architect)
  • Surplus Exchange e-Commerce Site (Solution Architecture)
  • Virtual Disks Backup (Concept prototype and architecture)

Senior Business Consultant (Asia-Pacific) at WebGain Inc. (2000 - 2002): The core focus of my role was to help clients make effective use of ORM (TopLink Object Relational Mapping Toolkit) and Java Development tools from Webgain. I traveled into many countries in this role working with the sales team during the final negotiations and collaborated on developing the client-specific training programs, as well as help define/refine the workflow of the developers to ensure the new tools were used effectively. A secondary aspect in this role was to provide regular feedback from clients to Webgain product managers to tune the features in pipeline for next release.

In this role I had line-management and budget responsibilities.

Senior Software Engineer at Amcor (1999 - 2000): The project involved building a J2EE based web application that allowed clients to design and place a work order for packages (e.g. corrugated boxes, food containers and cans) that Amcor produced.

This project involved developing a solution that involved:

  • building algorithms that determined the least amount of raw material to build a package,
  • identifying strategies and then developing software to determine the most efficient way to ship the packages, and
  • finding a simple, yet effective test strategy.

Lead Developer at Telstra (1998 - 1999): I worked on the first generation of internet based B2B software systems.

Software Engineer at IBM Australia (1995): I worked on software that monitored and controlled the PC and Server manufacturing processes. I also developed a natural language query interface for the reporting engine -- this system allowed managers to obtain much more information about the current status of the process without learning SQL.

University Administration

  • Deputy Program Coordinator (Master of IT program)
  • Overseas Student Recruitment and Marketing
  • Member of Academic Board (2 years starting 2010)
  • CSSE representative in the Teaching and Learning Committee (2007 and 2008)
  • Faculty Progress Review Panel Member
  • Bachelor of Science (PSD) Panel Member
  • Faculty Representative at the International Student Support Network

Open Source Projects

I have initiated/contributed on a number of open-source projects over the years. The following are some of the more interesting ones:

  • Mutations - Java Software Evolution Analyzer (Current)
  • JSeat - Java Software Evolution Analysis Toolkit (2008)
  • cyVis - Cyclomatic Complexity Visualizer (2004)
  • JMetric - Java Metric Analyzer (1999 - 2001)
  • GMetric - Graphical Metric Extractor for .NET (2005 -- discontinued)

In early 2000s I made some contributions to the Linux project and Mozilla browser as an over enthusiastic tester.