Employment History:

2002 - present Object Craft Pty Ltd - programmer

Specific projects that I've worked on are:

Task: Programmer.

Skills: Python, C, Objective C, Java, HTML, MacOS X, Unix, Linux, Open Solaris, Solaris, internet application design.


2002 - Pacific Access/Sensis - contractor

I was engaged as a sub-contractor, by my future employer Object Craft, to develop a web based application for Pacific Access (now Sensis). The application was used in house by developers and testers of the various websites hosted by Pacific Access including the White Pages and Yellow Pages sites.

These websites were developed in Java and hosted using the ATG Dynamo J2EE server. Installation and configuration of a test server was complicated and time consuming.

The application I developed automated the process. It presented a simple interface allowing the user to administer private instances of multiple J2EE applications. It handled the CVS checkout of the source, installation of the application, creation of the correct Dynamo configuration and starting and stopping of the Dynamo server for each application.

I also rewrote the international dialing codes and calling times section of the WhitePages website, replacing the original C++ program with a Python program using the Free zoneinfo timezone database to replace an out of date and unsupported custom database.

Task: Programmer.

Skills: Python, C, Java, HTML, CVS


2001 Clyrus - programmer

Clyrus designed an embedded engine management system for standing engines. Huge 10 to 16 cylinder, turbo charged, diesel motors burning methane and other waste gases from land fill sites, mines, etc. which generate electricity which is fed on to the grid.

The device used a PC104 form factor computer running Linux to read the output of sensors attached to the engine. The sensors monitored knock, temperature and observed the rotation of the flywheel.

Samples of the flywheel were taken often enough that the acceleration and deceleration of the flywheel on each ingition and compression stroke could be detected. By comparing a map of a healthy engine to samples taken from a running engine the onboard software could detect loss of compression, misfire or failure to fire of one or more cylinders.

I developed software for the system which logged all the sensor readings and continuously checked the flywheel timing. Status and logs were reported via ethernet using a web application served using thttpd. Live graphs of the running state of the engine were provided using a Java applet.

Task: Programmer.

Skills: Python, C, Java, HTML


2001 Bank Brussels Lambert Fund Management/ING Index Fund Management - contractor

Bank Brussels Lambert was an index fund management company. I was contracted to redesign the company's website. They were interested in a cleaner, simpler design using CSS rather than style embedded in the HTML. As was the style of the time they also wanted plenty of JavaScript/DHTML animated content like drop down menus and tabs.

In the course of redesigning the website I was asked to assist in implementing a web application to offer customers access to their accounts.

It had already been decided that the system was to be written in Python using a web framework called Python Fusion. It would connect to SQLServer and would interface with a number of existing Microsoft COM Objects, written in Delphi and Fortran, which implemented business logic used by existing in-house tools.

Not knowing anything about web application development, Python, SQLServer or COM I immediately accepted the job.

I had a really good time learning Python and getting a much better grounding in object oriented programming which I had not really been exposed to previously. I learned a huge amount about Apache, CGI, HTTP and HTTPS, SQL, COM and Windows NT, which was the server platform chosen for the application.

During the course of development Dave Cole and Ben Golding of Object Craft (creators of Python Fusion, a pre cursor to the Albatross web framework) were engaged to perform a code review. They had plenty of very helpful suggestions.

Most notably the code was put under version control (CVS) and refactored to more closely follow the Model View Controller (MVC) pattern.

During the course of the project BBLFM was aquired by ING, renamed ING Index Funds and eventually absorbed into the parent organization. Staff left or were moved to other departments and the office was closed. The project was terminated unfinished.

I learned so much about Windows NT during the course of this job that I bought a Macintosh. I have since recovered.

Task: Programmer.

Skills:Python, C, Java, HTML


1996 - 1999 Nomadic Communications

Nomadic designed and manufactured Mobitex packet radio modems. Mobitex is a two way digital packet radio standard developed by Televerket and Ericsson. It is used for two way pagers, taxi, breakdown and emergency services dispatch and even found its way into vending machines allowing the machines to send stock level notifications to distributors.

I worked on manual assembly of small prototype runs, product testing, administered the office network of two GNU/Linux servers (RedHat 7?) and Windows 98/NT clients and developed a small database application system used to track the history of all devices manufactured and to allocate the UUID assigned to each device.

Wrote a VB/Access app to track the extensive electronic component store because previously nobody had any idea what was in stock or where it was.

This was my first exposure to Linux and to *nix in general. Through poking around the internet and reading a lot of man pages I eventually figured out how to install the operating system, connect to the internet (a single dialup connection shared by a network of around 50 PCs), configure mail, DHCP, DNS, share part of the filesystem of one of the servers via Samba for use by the Windows users and a daily file-server backup to SCSI tape drive.

Task: Programmer, network admin, product assembly and testing

Skills:Visual Basic, Access, C


1995 Boolean Engineering - contractor

In the early 90's a new tourist development was approved at the Seal Rocks site on Phillip Island, Victoria. The site was to include cafes, a restaurant, extensive viewing platforms to enable visitors to view the seals frollicking off the coast of the island on the nearby rocks, a theater for multimedia presentations of the history of the region which could also show a live panoramic video feed from the rocks and, best of all, an educational theme park style boat ride in a massive canal in the basement.

I was hired to assist with the implementation and installation of the computer control system for the ride. The ride ran through several hundred metres of twisting, turning canal. Visitors rode in groups of four in floating dingies which followed the slowly moving, pump driven current in the water. The twists in the canal intentionally limited the view ahead to only a couple of metres.

The boats stopped at regular intervals, restrained by hooks under the water which could be activated and released by the computer control system. At each stop a display beside the canal was illuminated and sound, video projection and a light show were triggered. Each show ran for a minute or two and explained something of the history of the discovery and exploration of the area.

The control system we installed used fourteen custom made computers, each with a 68hc11 processor. The computers were linked on a multi-drop RS485 serial network and connected to a collection of sensors and relays.

The sensors were infra red beams which were used to detect the position of boats in the canal. The relays were used to activate the boat hooks which retained and released the boats to avoid collisions and keep the boats in sync with the sound and light show around them and to trigger the audio/video devices and the light show.

We hand wired a control booth at the entrance to the ride with controls hooked to the master control computer. Its job was to track the state of all the computers on the network, tell them when to start/stop shows, release/retain boats and what language to play for the soundtrack for each boat. The system supported a number of European and Asian languages.

The operator was notified of the state of each of the boats in the ride using a sequence of steady or flashing lights. As a rule, if every was flashing then all hands had been lost, turn out the lights, go home, lock the door on the way out and never come back.

Very few boats sank. It could have been really good.

Task: Programmer

Skills:6811 assembly code


1993 - 1994 Amitron

Amitron designed and built embedded hardware for ???. The boards used Z80 with code written in a combination of assembly code and C using the Hi-tech C compiler/assembler.

We had a small assembly line and wave soldering machine suitable for prototype runs of hardware. I spent a lot of time building and testing boards including manual assembly of small prototype runs of new hardware designs. I wrote some C and Z80 assembly code programs to test the hardware and wrote the program we used to write binaries to the on board flash ROM on the Z80 boards.

I first came across Visual Basic here when we developed a Windows application for keeping track of production using VB and and an Access database.

Task:

Skills:Z80 assembly code, Visual Basic, Access


1991 - 1992 TCI

TCI was a printed circuit board manufactrer based in Braeside specialising in small volume rapid turn-around production of circuit boards. Initially single sided and double sided boards though later they expanded to handle more complex multi-layer designs.

I programmed and operated the NC drilling and routing machines which are used to drill the through holes in circuit boards and to route the finished boards from the larger panels in which they are manafactured.

The NC drill programs were long lists of x,y coordinates interspersed with tool selection commands and special commands to perform tasks like repeating a block with an offset, useful when drilling multiple copies of a small board on a large panel.

I wrote several utility programs in Microsoft QuickBasic to allow us to graphically view, examine and edit the drill files before sending them to the drills. We saved a lot of material that way.

I also ran the photo plotting equipment. The circuit layout is printed directly to a photo sensitive film using a vector plotting machine which uses a narrow beam of light rather than the pen of a conventional plotter. The developed film creates a positive image of the circuit layout which is then used to prepare screen printing screens which print the layout to the board in preparation for subsequent plating and etching processes.


1989 - 1991 Eagle Technologies

Eagle designed and manufactured PC peripherals, initially video adapters (CGA, EGA, VGA and even monochrome Hercules compatible adapters which were popular for desktop publishing at the time).

The product range grew to include drive controllers, serial and parallel cards, ethernet cards and even motherboards.

Competition from cheap Asian imports was fierce but for awhile local manufactures of IT hardware enjoyed a modicum of protection with public sector and corporate customers being offered incentives to buy local products.

I worked on the assembly line, manually populating printed circuit boards with components, overseeing their passage through the wave soldering machine, trimming, cleaning and inspecting and testing the finished boards.

Testing involved connecting the finished boards to a test rig (often the guts of a PC, with no case and the motherboard nailed to a piece of wood!) and firing it up to see what happened.

The test machines booted MS/DOS from harddisk or floppy. I had the chance to write some of the test software. This was my first exposure to C. I wrote some very simple C programs to perform memory tests of the onboard RAM on video cards, read and write ports and registers to check for correct response, cycle the video cards through various modes and test patterns, prompting the user to verify that image on the screen display matched the expected output.

I also wrote some graphics demos for the first VGA cards as there was very little software available at the time to demostrate what a VGA card could do. The programs drew moving patterns on screen while cycling the VGA pallette. A rather hypnotic effect which drew crowds at several trade shows.