A Life in Code
— 1978 —
My mum worked at a tiny company that made kitchens. One day, they got a mini-computer for the office, and Mum took me to work to show it off. It was the first computer I ever saw, and she left me on my own with it for hours.
It had a really primitive version of 20 Questions that I played over and over, fascinated that this chunk of metal could figure out what I was thinking. The highlight came when it didn’t guess my animal, and asked me to provide a new question that would distinguish apes from monkeys. My first computer instruction!
— 1980 —
A couple of years later, I won a prize at school for coming first in maths, and I received a book voucher and bought a copy of Programming in BASIC (Beginners All-Purpose Symbolic Instruction Code) in the bookshop on the way home.
I didn’t have a computer, though, so I had to write my programs on paper and imagine them running.
— 1981 —
A year went by before Sir Clive Sinclair released the first computer for under £100. I saved up my earnings from my paper round and bought myself a ZX81.
The ZX81 came without a monitor, so I plugged it into the tiny black and white telly that my mum gave me, and I was hooked.
You programmed the ZX81 in BASIC, so that book I’d bought the year before came in handy. I wrote some games. I wrote some code to do maths. I drew my own ASCII art. Computer magazines back then had little programs you could type in to play games or do maths. Lots of fun and I learnt a ton.
The ZX81 only had 1k of memory, but Sinclair released a 16k RAM pack to give us more. Writing code in 1k was a struggle because just filling the screen took up about 600 bytes. I saved my programs on a cassette tape — beeeee-ooop-dip-dip-dip-ooooo.
10 PRINT “HELLO WORLD”
20 GOTO 10
In addition to BASIC, the adventurous could hack into the underlying Zilog Z80a processor and write programs in Z80 machine code. Z80 was the primitive machine language underlying everything, and I learned that too.
Here’s Hello, World in Z80 machine code.
ld bc, MY_STRING
MY_LOOP:
ld a, (bc)
cp 0
jr z, END_PROGRAM
rst $10
inc bc
jr MY_LOOP
END_PROGRAM:
ret
MY_STRING:
defb "Hello, World!"
defb 13, 0
Sensible people bought an assembler to turn assembly code into machine code, but I translateD it, byte by byte, using the lookup table in the back of the book.
Here’s the same Hello, World program translated into op-code.
01 0D 00
0A
FE 00
28 04
D7
03
18 F7
C9
48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 0D 00
Imagine writing a programs to play draughts in machine code. I shudder at the memory.
— 1984 —
A couple of years later, Sinclair brought out the ZX Spectrum, which was essentially a souped-up ZX81 with colour and more memory. I bought one to take with me on my ship to the Falklands, and by the time I got home, I was pretty good at programming and had written some proper code, including some Fourier analysis and a game of Monopoly.
I was doing my engineering apprenticeship at the time, and my classes in BASIC and Z80 were easy after all this practice.
— 1990 —
After I left the Navy, I got a job fixing radios on aircraft at Heathrow. I hated it and quit after a few months. I didn’t know what to do next until…
“Hmmm…”, I thought.
“I used to enjoy coding.”
I found an adult education class in software engineering, but if you know anything about adult education from that period, you know that most people were only there because their benefits would be stopped if they weren’t. Even worse, our instructor was an idiot and a drunk who didn’t really know how to program. He stopped coming anyway after the first few days.
A week or two went by with no instructor, and I got really good at pool in the pub across the road. The company responsible eventually said they were sorry, and they’d find someone else to teach us. In the meantime, they left a book for us to learn from until the new bloke showed up.
Luckily for me, The C Programming Language is the most important book on computer programming ever written, and I read it cover to cover. When the new instructor showed up, he tried to teach us ADA, but I was having none of it. I was hooked on C.
main( ) {
printf("hello, world");
}
My first proper program was an editor for sheet music that would play the music you typed into a score. It was pretty cool, if I say so myself.
After a few months of this, our instructor said he knew a software company in the City of London that was hiring, and I got my first programming job.
The first thing they did was teach me COBOL, which is the worst programming language ever invented. But there was a sudden emergency in the middle of my COBOL lessons, and a senior programmer took me down to Reuters on Fleet Street to fix the problem.
There was a C program responsible for gathering stock exchange data from around the world, converting it, and loading it into an IBM mainframe. Two people had tried fixing it before me, but it kept crashing and they kept calling us back. I was the only one who knew C, so they left me alone to fix it.
The person who wrote the program didn’t really know C, and it was a mess. I tried fixing the code, but it crashed again the next day, and they called me back. Two more days of this, and I decided it would be easier to just rewrite it from scratch. It never crashed again, and I had written my first grown-up program.
I never told a soul that I had rewritten it, and I never had to go back to Reuters.
Fourth-generation languages (4GLs) were all the rage at the time, and my next adventure was another language, Progress. Progress was a database-y language like SQL, but it was procedural, like C. The idea was that code should look more like a natural language. You’d grab records from the database one at a time and then display them or whatever. Everything was in Progress, so you didn’t have to learn one language for the database, another language for processing and another for the user interface.
FOR EACH customer WHERE status = “active”:
DISPLAY customer.name.
END.
Progress was really cool and one of my favourite languages. It’s a shame it didn’t catch on, because it was about ten times more powerful than SQL, and a lot more fun.
— 1993 —
After we got married, we moved down to Plymouth and I got another job writing C. I had to learn SQL for this one.
I built the messaging system for the soon-to-be-launched Czechoslovakian cable TV system. My tiny little company designed everything — the electronics, the cable TV boxes and all the code, but the Czechoslovakian cable TV company that hired us stole everything when we were finished and didn’t pay us for it. Boo!
Also, SQL. Boo!
— 1994 —
My next job was on Wall Street, in New York. Most of my job was in C & SQL, but I had to learn a bunch of minor languages like Visual Basic and AWK to get things done.
I got my first web browser, Mosaic, and learned to write HTML, too.
— 1995 —
My workmate Chris and I decided we should learn C++, so we got a book and started learning it in our spare time. After a few days of this, we decided that we hated C++ and didn’t want to learn any more. But, just then, a dude in the next aisle said,
“Have you heard of Java?”
Java was still in Beta, and there was no documentation and no books yet.
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
That night, I went home and wrote my first Java Applet. I took a photo of my baby son’s xylophone and loaded it into the browser, where you could play music on it.
I showed the applet to my boss, and we decided to build a credit system in Java for our derivatives traders. Great success!
It was one of the first commercial Java programs in the world.
— 1996 —
I was probably one of about only twelve people in the world who knew Java, so it was easy to get a job in Silicon Valley, where Java was the hot new thing. Sun Microsystems was just around the corner, and they invited us down to help design the next version. Netscape was right across the street, and we helped them design their new programming language, JavaScript.
— 2002 —
I quit my job in 2002 to try my own startup, building project management software for eXtreme Programming. Microsoft had just released their new language C#, a contender for Best Language Ever, and I wanted to give it a try.
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
Unlucky for me, there was a huge recession in 2002 which wiped out half the companies in Silicon Valley — including mine.
— 2009 —
When the iPhone started getting popular, WebMD wanted a fitness app, and I built it in Objective-C, which I love about as much as I love COBOL.
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Hello, World!");
[pool drain];
return 0;
}
If I ever build another iPhone app, I won’t be using Objective-C.
— 2014 —
At my final startup, none of us knew the same language. We tried PHP because Allen knew it, but PHP is another contender for Worst Language Ever. Facebook is built in PHP, which explains a lot.
We switched to Python because Gilles knew it. Python is a beautiful language, but the framework it used for web development was horrible, so we switched to Ruby. Ruby is the best language ever.
puts “Hello, World”
I’ve written more code in Ruby now than I have in any other language. I love it.
— 2025 —
I accidentally retired last year, and this is the first year in forty that I haven’t written any code. I had big plans to write some apps when I stopped working. Most of them were AI-related, but that’s a stupid idea now. I was gonna write a quiz program for the web, but that’s a stupid idea too, when everyone has ChatGPT to answer all the questions.
Maybe I am done.

— A Life in Code —
People who don’t code don’t understand what a creative activity coding is — they think we are all ones and zeros. But I can’t think of anything more creative. It has filled my life with wonder.
It’s truly liberating to create something out of nothing except the thoughts in your head. Perhaps people who are gifted at painting or music get a hint of this, but to imagine something and then go build it! It makes you feel superhuman.
I started programming just as it was taking off and lived through its heyday. I wonder what will come next for programmers.
Perhaps it is over.
I’m writing my memoirs on Substack.
Lots of stories over there.
Come check ‘em out. Maybe you get a mention!