Name:Nathan Keynes


Fluent in: Java, C, C++, Smalltalk, Perl, Python, PHP, WebMacro (external link), PL/SQL, Assembly (x86, Super-H, ARM)
Platforms: Linux, Solaris, OS X, FreeBSD, OpenBSD, DOS/Windows
Modelling/Spec Languages: XML Schema, UML, Fusion, ORM/NIAM, ER, Z, Object-Z


2008-Parfait (external link)Sun Microsystems Laboratories (external link)
Parfait is a static bug checking tool for C/C++ code, designed for scalability and precision. I have been responsible for much of the project framework and infrastructure, for developing algorithms for memory leak and null-pointer dereference detection, and for continuously improving project quality.
2007-2008MILXTM View (external link)CSIRO (external link)
MILXTM View is a cross-platform medical image viewer, supporting image registration, visualization, and the host for a number of research applications. My role has been to drive the product from research prototype stage through to product release, as architect and lead developer.
2006-2007Health Data Integration (external link)CSIRO (external link)
The Health Data Integration (HDI) project is a research commercialization effort based on an earlier prototype. It is designed to enable health researchers to collaborate and share data stored in disparate databases, while preserving patient confidentiality and privacy through anonymization. The project is being maintained and enhanced by a small team at the e-Health research centre, and has a number of active customers.

My role has included architecture, design, and implementation across the entire codebase, including server and client components

2005Velocity Rewards (external link)Virgin Blue (external link)
Design and implementation of the backend systems supporting the web-site including reservations, third-party systems integration, and database logic (the majority of which was rolled into the API, below), as well as responsibilty for security of the front-end logic.

The system was delivered on time, has had minimal post-launch issues, and exceeded management expectations in terms of customer enrollments.

2004-2005Virgin Blue API (external link)Virgin Blue (external link)
Design and implementation of the Virgin Blue API, which is best described as a piece of middleware between reservation clients and the reservation system. It is responsible for abstraction, security, enforcement of policy and business rules, and provides a convenient single point of access to all (required) reservation functions via a web-service interface.

The system is currently in day-to-day use by a number of travel agencies, in additional to several internal clients (eg Blue Holidays, Velocity Rewards)

2004Blue Holidays (external link)Virgin Blue (external link)
Design and implementation of the backend systems supporting the web-site (Reservations system integration, database logic (roughly 2000 lines of PL/SQL), and a substantial proportion of the front-end logic. The system as a whole was primarily developed by a team of 4 including 3 developers and 1 web-designer.

The system was delivered on time, on budget, with minimal post-launch issues, and is considered a significant commercial success.

2004Payment gatewayVirgin Blue (external link)
Design and implementation of a payments processing gateway, also implemented as a web-service. The system is responsible for processing payments through one or more available credit card handling systems (eg Dialect (external link)), tracking the transactions reliably, and maintaining a database for reporting purposes. The system was delivered on time and budget and has proved to be highly robust.
2003 Q1Virgin Blue Flight information display system (FIDS)Virgin Blue (external link)
Design, implementation, project management, and deployment into two airports of the Virgin Blue FIDS system. The system provides information to guests at the airports regarding arrival and departure times, gates, and related data from a mainframe data-feed, and was required to be both highly available and visually attractive.

Initial development was concluded within roughly a month, deployed into Hobart and Launceston within 3 months, and has been operating trouble-free since.

2003-2005Calico Web-application frameworkVirgin Blue (external link)
Primary designer and developer. Calico is an Java application framework developed internally, primarily to support web-application development (although certainly not limited to such). It includes authentication/access control, centralized configuration, a saner database layer, database caching, background task queues, an XML-schema based data-model, and a variety of web support tools.

While hardly perfect, the results tend to speak for themselves - development productivity with the framework improved by easily 3-10 times over the previous methodologies

Employment History

2008-Research EngineerSun Microsystems Laboratories (external link)
Software design and implementation on the Parfait bug checking project. Additional duties also include system administration, setup, and maintenance of project systems (Solaris, Linux, OS X, OpenBSD, FreeBSD) and tools (bug tracker, regression suites, continuous integration, wiki, etc).
2006-2008Senior Software EngineerCSIRO (external link) (e-Health Research Centre (external link))
Software architecture, design, and implementation, on the HDI and MILXView projects. Duties also include software process maintenance and some system administration.

2003-2006Software DeveloperVirgin Blue (external link)
General software design, development, and implementation of a wide range of software projects, with a focus on system integration, web services, airline systems, and internal development and language support. Additional duties include project deployments, some system administration and general IT troubleshooting. See above for a few notable projects.

2001Intern (6 Mth)Sun Labs (Sun Microsystems)
Based 3 months in Mountain View, CA, extended for a further 3 months in Brisbane. Worked on the Walkabout project, developing a system to produce generic emulators from existing machine specifications, as well as preparing the overall project source for release.

1999-2000Research AssistantUniversity of Queensland
I was employed over the summer vacation in 1999-2000 to convert the CS324 course material from Ada to Java. This involved both the rewriting of the three Ada-based compilers in Java, and extending the code-generation tools used (the GMD Cocktail Compiler Toolbox ) with a Java back-end. The modified GMD code is available here for the curious.

1998-2003CSEE TutoringUniversity of Queensland
Between 1998 and 2003 I tutored a variety of subjects for the CSEE Department, including CS106/180B Intro to Software Engineering (Smalltalk & programming principles), CS107 Software Engineering I (Continuation of CS106, more advanced subject matter), CS181/CS803 Intro to Software Engineering (Java & general programming principles), CS228 Systems Programming (C Programming & Shell scripting), CS324 Language Processing (Compilers) and CS233/CS831 Intro to Computer Networks. In 2001-2002 I was head tutor for COMS3200.

I was also involved as a tutor in the department's QUITS program, which is an annual short school run to introduce high-school students to information technology in general and the UQ CSEE courses in particular.

1995Work Experience StudentTelecom (Network Products Division)
Help desk support, network and system troubleshooting. Windows and Novell based networks.

1994Work Experience StudentParaplegic & Quadraplegic Assoc. of Qld
Data entry, database design and construction, graphic design, general tutoring and system troubleshooting


Dec 2002Japanese Language Proficiency (JLPT) Level 4The Japan Foundation (external link)

2001-Doctor of Philosophy in Computer Science (not completed)University of Queensland
Developing a generic system for software adaptation in a distributed system.

1997-2000Bachelor of Information Technology (Hons Class I)University of Queensland
GPA 6.5. My honours project dealt with lexical conflict resolution in an LALR(1) parser/scanner generator, more details are available here

1996Bachelor of EngineeringUniversity of Queensland
Transferred to IT after first year

1991-1995Secondary SchoolCannon Hill (Anglican) College
Graduated OP 2, Math B & Math C prizes
Subjects: Physics, Graphics, Tech.Studies, Math B, Math C, English

About me

Nathan is a full-time software engineer and part-time maintainer of several pieces of open-source software that noone has even heard of (most notably lxdream and elr). His interests include programming language design, distributed systems, emulation, Japanese, and go.