Michael James Gratton

Software Engineer, Computer Scientist

Last modified: January 12, 2010.

The most recent version of this document can always be found online at: http://web.vee.net/resume.html

Table of Contents

  1. Overview
  2. Professional Experience
  3. Community
  4. Education and Research
  5. Skill-set

Overview

Michael Gratton is an experienced software engineer with a systems and networking background. His areas of expertise are Java and Python application development – particularly for online applications and UNIX systems.

Drawing from an early background of Internet-based systems and network administration, his technical interests include Internet technologies such as the Semantic Web, mobile application development and libre (free) and open source software development. He is interested in artificial intelligence research, specifically knowledge representation and reasoning, also parallel computing and programming language design.

His professional experience includes the design and implementation of many client-side and server-side applications and frameworks, web sites, UNIX based system administration and Internet Protocol networks. He has successfully delivered projects working independently, as part of a team and as a team leader.

Michael is based in Sydney, Australia.

Professional Experience

Proprietor, Quuxo Software.

July 2004 - present.

Founded Quuxo Software, a low-key software consulting and development business. Manages day-to-day affairs of the business as well as software consulting and development for Java and Python projects for clients. Maintains Linux and FreeBSD servers for client services hosting.

Software Engineer, m.Net Corporation.

April 2007 - September 2009.

Employed as a server-side Java application engineer. Responsible for designing and implementing server-side components for a mobile phone based social networking application and m.Net's core messaging router.

Software Engineer, Rising Sun Pictures.

January 2006 - March 2007.

A member of the in-house development team at Rising Sun, a motion picture visual effects production company. Responsible for developing and maintaining Python-based software for both production team and business management use.

Software Engineer, University of South Australia - Centre for Sleep Research.

January 2004 - January 2006.

Employed by the Centre to take over and complete an existing software project; developing a Java web application for recording and managing industrial workplace safety incidents.

Software Architect, Recall Design Pty. Ltd.

February 2000 - January 2004.

Initially employed as a senior developer to lead client development projects, then as a software architect for product development. Responsibilities included strategic product and technology planning, design and implementation of an in-house content management system and web application development framework, project management and team leader, mentor for junior staff.

Software Engineer, Consultant, Focus Metals Pty Ltd.

September 1999 - February 2000.

Employed as a consultant and software developer to design a replacement for the company's existing business management application using a web application.

Systems Engineer, Cobweb Internet Services (CIS) Pty Ltd.

April 1999 - September 1999.

Employed to solve the reliability and scalability problems Cobweb's server systems and network infrastructure was experiencing, caused by the company's rapidly expanding client base.

Systems Engineer, N-Space Pty Ltd.

June 1998 - January 1999.

Provided internal systems support and maintenance for Macintosh and Windows workstations. Deployed and maintained network services and Solaris, Linux and Windows servers for internal corporate use and for client hosting.

Client Support Technician, Internode Professional Access.

January 1996 - June 1998

Provided technical support for personal and corporate clients. Maintained client domain name, email and web server hosting services.

Community

As a Free Software enthusiast, Michael takes part in the Ubuntu and GNOME communities. While he unfortunately does not have the time to be an active developer, he is a member and contributor on related mailing lists and assists with bug reporting and fixing as time permits.

Previously, he has also been active in the Mozilla and Debian communities, was a member of the GNOME User Interface Hit Squad and a committer for the Apache Xindice project.

Education and Research

Doctor of Philosophy, Computer Science

University of New South Wales, Australia. To be completed in 2014.

Examining issues surrounding perceptual anchoring, the problem of tying the identity of real-world objects to their representation in an artificial intelligence.

Bachelor of Science, Computer Science (Honours)

University of New South Wales, Australia. Completed 2009, to graduate in 2010.

Awarded First Class Honours.

Thesis paper, “Cognitive Vision”, examined a logic-based approach to computer vision using abductive inference for reasoning.

Bachelor of Mathematical and Computer Sciences

University of Adelaide, Australia. Graduated 2007.

Awarded scholarship to examine using an evolutionary computing approach to produce a static program optimiser. Paper describing this work presented at CEC '09:

Constructing an optimisation phase using Grammatical Evolution. Alexander, B.J. and Gratton, M.J. 2009 IEEE Congress on Evolutionary Computation, pages 1209-1216. Trondheim, Norway, 2009. IEEE Press.

Awarded the IBM Rational Prize in Software Engineering for the best group project mark for a Software Engineering Project.

Skill-set

Primary Skills

Java Enterprise Edition
Web tier development using Java Servlets, JSP and XML based presentation layers, Tomcat and Jetty servlet containers. Middle tier development using JPA, Hibernate, JavaMail, and other technologies.
Java Standard Edition
Core Java SE libraries. User interface development using JavaBeans, Swing, AWT and JFC. Many extension APIs, such as JAXP, JNDI and so on.
Python
Client-side and server-side software design and development. Gnome, GTK+ and wxPython for client application user interfaces, WSGI, Genshi for web applications. RDFLib, SQLAlchemy and Elixir for data management.
Web and Markup Languages
Extensive, standards based approach to HTML, XHTML and related technologies such as CSS, ECMAScript/JavaScript, DOM. REST design pattern for web sites and applications. Use of XML for document data representation and (reluctantly) for structured representation and RPC. XSLT for markup transformation and XSL-FO for markup based formatting. Familiar with other main XML technologies such as XSchema, RELAX, XLink/XPointer, and so on.
Systems and Networking
Strong FreeBSD and Linux systems background, familiar with Solaris and IRIX. Familiar with installation and maintenance of common UNIX services such as Apache, MySQL, PostgreSQL, Sendmail, BIND, and Cyrus. Extensive use of Bourne shell scripting. Strong working knowledge TCP/IP based networks, protocols and issues relating to them. Swings both ways: Emacs and vi.

Additional Skills

Java Micro Edition
J2ME CLDC/MIDP application development for phone and PDA form-factor devices.
Other languages and toolkits
C, C++ software development. GTK+, XUL, WxWidgets user interface toolkits.
Scripting languages
PHP, Perl, Ruby, AppleScript.

Fin