Circle Image

Ivan Hawkes

Lead Programmer

"Mostly harmless. (he / him) (true neutral)"

I developed an interest in computers starting in the early 1980’s leading me to learn how to write software in BASIC for the 6502 architecture. Soon after I learnt assembler in order to push the hardware to the speeds I wanted.

It was games that drove my interest. A local corner store had a Space Invaders machine, and I had dropped far more 20 cent pieces into that machine than I had to spare. It inspired me to learn more. I was exploring and learning for the sake of learning.

I spent an astonishing number of hours programming my OSI Challenger C1P which I had purchased from money I saved washing cars at the local car yards. Seven AM is a miserable time to be covered in soap suds and freezing cold hose water, but it all paid off the day I bought my first computer.

The games were primitive since the machine only had 5KB of addressable RAM. It had no graphics beyond the ones supplied with the character set (compatible with the Commodore PET). It had no sound, no sprites, no colour. It had nothing more than a 40 x 25 character display. I had to load everything from tape and my monitor was an 11inch black and white television set.

Despite all those limitations, I managed to write a dozen or more games for myself and my brother. This included several games which both of us could play at once, using the same keyboard. I would huddle around ‘WASD’, and he would crowd around ‘UIOK’.

I was fond of the maze game I wrote, which would display the maze in “3D” using only the line drawing graphics of the character set. My brother liked the games where we would chase and catch each other, or drop bombs / etc onto subs and tanks.

I wrote a clone of “Snake Byte” for my machine based on one I’d seen on an Apple at a local Apple Store - back when they were a thing (before they became not a thing, and then a thing again).

I could never afford to upgrade or replace that first machine, so as the years past I worked on it less and less. Friends had Commodore VIC-20s, Texas Instruments TI-99/4As, Commodore 64s and eventually Commodore Amigas. Each iteration was vastly more powerful than the machine I had.

This would change when I was accepted to Queensland University of Technology for an undergraduate degree in Computer Science and Business. During that time I was exposed to a whole new world of technologies, including:

  • IBM PC / XT
  • 8080 (assembler)
  • 8086 (assembler)
  • PDP 11 (assembler)
  • SQL
  • Pascal
  • Modula II
  • C
  • DB/2
  • Data Structures
  • Compiler Design
  • OSI 7 Layer Model

NOTE: I also learnt quite a few business topics during this time, including accounting, communication and statistics, but little of that is relevant to this tale.

I took it all on-board, and studied extra topics outside of my course. Soon enough I was writing my own projects again and spending vast amounts of my time in the university library and computer labs.

Eventually I grew bored of the things I could learn on my course and dropped out. Topics were too old and stale, technologies were too ancient, and methods too rigid. It happened organically.

I was still studying when a national company needed a database system designed. My close friends were working for that company and they put my name forward. I spent the next few weeks putting together a DOS based B-TREE driven database system for them. I don’t think it survived Y2K, but to be fair, it was 1988 when I wrote it, and Y2K was still over a decade in the future and no-one was talking about it yet.

Work continued to come in from there; year after year. I created several more databases for various businesses.

Around 1991 I fell into the business of writing multi-media software. A company was writing software to present training programs combining video from laser disks and computer generated graphics which were overlayed onto the video. At the time they wrote each one by hand, which was excessively laborious and slow. They needed a programmer to design a system that would allow them to control the laser disk player and graphics presentation software using a data driven approach.

I wrote the first iteration of that software in C++ for the company contracted to the media company producing the training programs.

On request, I re-wrote all the software from scratch, and targetted Windows 3.1 - allowing our client to produce the world’s first CD-ROM based training software, including full motion video. We had to import a very expensive video capture card from China, and simply hope it could capture video we could play back. According to it’s specs it could capture Q-SIF MPEG video which was absolutely amazing for the time.

After producing about 7 CD-ROM based training programs (and 10 or so laserdisk programs) for that client, we ended the relationship.

At this point I decided to start contract work for companies. I landed a position at Suncorp Group and worked there for several years, in various capacities.

Eventually, I decided to migrate to London, England. It was time for a change.

Landing in London I took the first job I could, working in a bank. It was a terrible time, and we shall not speak of it again.

Eventually I switched to an internet services company; which I loved, and worked for them until their eventual demise.

During this time I learnt:

  • C#
  • Server Architecture and Hardware
  • XML / XSLT
  • HTML / CSS
  • Performance Tuning
  • Intrusion Detection
  • Ethical Hacking

I did not, and have not to this day spent any time to learn JavaScript.

Now I spend my days quietly working away on software for an Action RPG style of game, a return to the things I love.