To work as a software developer, developing new technology which combines the best theory with the best practice, moving towards a lead role.
RMIT University - Applied Chemistry (2005-2006)Designed and developed firmware for Atmel microcontrollers.
Designed and developed Windows software (both MFC and Borland/VCL) in the areas of data logging and analysis.
RMIT University - Multimedia Database Systems (now SAIC Australia) (2002-2005)Developer of the TeraText Database System product, including customer support (including out-of-hours support), codebase maintenance, release/patch building and testing, manuals etc.
Responsible for several major product enhancements.
Responsible for various R&D reports for external customers.
Health Research Solutions (now Quintiles HRS) (2002)Intranet developer.
Dot C Software (2001)Visual effects R&D.
Developed plugin software for Alias|Wavefront Maya.
Some work developing the RenderMan-compliant renderer RDC.
Monash University (1999-2001)Lead developer and software architect on the "My.Monash" intranet portal project.
Developer of a fleet of 50 intranet "kiosk" machines.
Co-winner of the "best web application" award for a paper on My.Monash presented at The Perl Conference 4.0.
Member of the IT Security Working Group.
Some Solaris system administration and Oracle 8i database administration.
Office of the Commonwealth Director of Public Prosecutions (1998-1999)Windows NT 4.0 and Novell Netware 4.11 administration.
Intranet development.
Microsoft VBA macro maintenance.
Windows 95 helpdesk.
National Christian Youth Convention (1998-1999)Development, installation and maintenance of custom web-based inventory, allocation and personnel database.
House video technician/console operator.
Gaffer, rigger, other general theatre technician-type work.
Queen's College (1995-2002)Computer Science tutor.
System administrator (FreeBSD, Linux) including web proxy and firewall setup and maintenance.
Webmaster (see also Queen's College web page).
St Mary's College (1998)Computer networking contractor.The University of Melbourne (1994-1997)Computer Science laboratory demonstration.Space-Time Research Pty Ltd (1989-1994)
Computer Science tutor.Achievements include database conversion work on 1980 Great Britain census product and 1991 Australian Census product, with responsibilities including database conversion and technical writing.
Aqsis (2002-present)RenderMan-compliant rendering system.
Developed several product enhancements such as level of detail support, matte support and file format development.
slinc (1999-2000)RenderMan shading language compiler.
Completely developed from the ground up.
Mercury (1995-1998)Logic programming language.
Completely rewrote the mode analyser, developed some optimisations and provided numerous enhancements the standard library. Also wrote a new DFA compiler for Merl, the Mercury lexical analyser generator.
The University of Melbourne (1992-1998)Strong software engineering experience in a group environment as part of the project, working on a compiler for a logic programming language.Luther College (1986-1991)
Bachelor of Science (degree with honours), majoring in computer science (graduated 1996).Awards and Achievements
ACS University Programming Championship, winning team (1993)
ACM South Pacific Regionals, Achievement Award (1993)Involvement
String Orchestra (1986-1991)
School Musical Orchestra (1988-1991)
School Debating Team (1989-1991)
School House Drama (1990-1991)Awards and achievements
Westpac Mathematics Competition, Distinction (1986, 1987, 1989, 1990, 1991), Prize winner (1988)
Melbourne University Maths Competition, Merit Award (1990)
Telecom Mathematics Contest, Excellence Award (1990)
Australian Schools Science Competition, High Distinction (1986, 1987, 1988, 1989)
Australian National Chemistry Quiz, High Distinction (1988, 1989, 1990), Distinction (1991)
Australian Mathematical Olympiad Interstate Finals, Excellence Award (1990)
Goethe Institut Sprachzeugnis Deutsch (1988)
Exceptional written, verbal and public presentation skills.
Extensive application development experience on various Unix-flavoured operating systems (Solaris, SunOS, Digital Unix, Linux, BSD family, some IRIX), Windows NT family, in a variety of languages, both procedural and non-procedural (e.g. logic and functional).
Strong software architecture, design and programming experience, particularly for high-performance, high-load software. Particular skills include experience with generic and generative programming, high-level abstraction, object-oriented design and development, declarative design and development.
Extensive C++ experience, strong familiarity with the C++ standard and modern generic and generative programming techniques such as Boost.
Strong system administration experience on various Unix-flavoured operating systems (FreeBSD, Solaris, Linux, some Digital Unix) and some system administration experience with Windows NT 4.0 and Novell Netware 4.11.
Extensive experience in web-related development, such as HTML, XML, SGML, Apache 1.X API, mod_perl, SSI, CGI, FastCGI, Java, ECMAScript, PHP 3.0 and interfacing with DBMS systems in a Unix environment.
Strong knowledge of many areas of computer science (both theoretical and more practical), mathematics, and classical physics, including computer graphics, pure mathematics (e.g. algebra, combinatorics, category theory), applied mathematics and mathematical methods, physical simulation (e.g. computational fluid dynamics). Non-commercial experience in many areas of scientific computing and computer science, including analysis of algorithms, numeric analysis and numeric programming, symbolic programming, novel algorithm design, compiler design, artificial intelligence etc.
Extensive programming language experience in many different paradigms and using widely different idioms. Over 60 computer languages known to varying levels of fluency. Ability to pick up new programming languages in an extremely short time.
Ironic willingness to adhere to formal software engineering processes and methodologies.
Computer languages known:Familiar with technologies such as:
- ANSI C, C9X, ANSI C++, C++ TR1
- Perl 4 and 5
- Java 1.0, 1.1 and 2.
- ANSI SQL-2, SQL-3
- PostScript level 2
- Bourne shell and derivatives (e.g. bash)
- Common Lisp and other Lisp family
- Functional languages (e.g. Haskell/Miranda family, ML family)
- Logic languages (e.g. Prolog, Mercury, Goedel)
- Pascal and derivatives (e.g. Modula family, Oberon family, some Ada, some Delphi)
- Many domain-specific languages and specification systems (e.g. RenderMan SL, ACE scripting, ASN.1).
- Familiarity with: Intel x86 family assembly language, AWK, Erlang, Tcl/Tk, ASP, Microsoft Visual Basic and VBA
Extensive knowledge of software such as:
- TCP/IPv4 protocol suite, some IPv6
- TCP/IP application-level protocols (e.g. FTP, HTTP, SMTP, NNTP, bootp, DHCP)
- WAIS and Z39.50 protocol families
- LDAP
- ODBC/JDBC
- X Window System
Familiarity with software such as:
- Apache HTTP server
- Squid HTTP proxy
- Oracle 8i, MySQL and PostgreSQL DBMS systems
- RenderMan API, RIB protocol and shading language
- OpenGL
- Postfix mail transport agent
- BIND DNS daemon
- Version control systems such as RCS, CVS, Subversion, darcs etc.
- GUI toolkits such as MFC, Xt, Qt/KDE, some VCL, some GTK.
- TeX/LaTeX
- GNU compiler toolchain
- Sun ONE Studio development and analysis tools
- Novell Netware 4.11 administrative tools
- Microsoft Visual Studio (most recently VS 2003)
- Borland C++ Builder (most recently BCB 2006)
- Microsoft Office suite, including some macro programming
Various amateur theatre projects (2002-present)
Amateur volunteer theatre technician (1997-present)
Queen's College Music and Drama Society (1995-2002)
Ringwood Festival Orchestra (1987-1994)
Mountain District Choral Society Orchestra (1990-1994)
St John Ambulance First Aid Certificate (1990, lapsed)
References available on request.