Curriculum Vitae



Sails Science Ltd. is a company that creates software for use by the sailmaking industry. It has many customers throughout Europe, and a handful of customers in Australia, and America. Its products include 3D CAD software for designing sails, software for running plotters, software for analysing sails, and quoting software.

For the first half of my time in this job, I was the sole employee. For the other half of my time there I supervised another employee, in addition to my normal duties.

My duties covered most aspects of the business. I was responsible for designing and developing software, customer support (via email and telephone), sales, and advising the owner regarding computer-related decisions.

When the company hired a second developer, I was responsible for short-listing candidates, and was involved with interviewing and selecting the final candidate.

In late 2005 I drafted Sails Science's new licence agreement and price list.

The software development work involved both updating the existing software (CodeWarrior Pascal for Apple Mac), and working on rewriting the software in Java (to improve usability, and maintainability). I also introduced the use of new tools and procedures (source control, continuous integration, etc.).

The new Java software I wrote used Swing and OpenGL for its user interface, with heavy use of the observer pattern. Its file formats used XML. It made heavy use of code generation to create the source for its document model (the tree structure representing its file contents). I designed it to be easily expandable using the Service Provider Interface pattern.

In this part-scholarship/job I taught computer science tutorials, and marked tests and assignments.

In this summer job, I worked on two things. One was a 3D visualiser for captured network traffic. The other was working on a data model for compressing network traffic captured by the WAND group's 'DAG cards'.

This contract job was only a couple of weeks long. I wrote a C program that interfaced the input and output of two of their other programs.

In this job I taught students one-on-one during scheduled computer labs. I also was responsible for marking assignments and tests.



My long term goal is to find a career in teaching or research.

A list of referees can be provided on request.