I first started programming back in 1974. The computer was a mini-computer at the Birmingham education authority and we connected to it with a telephone and an acoustic-coupler. You dialled the number and when you heard the modem tones you quickly jammed the handset into the rubber cups on the acoustic coupler. Then you logged in and started to write code on the teletype. That was the only computer equipment the school had: one teletype. The computer room was a stockroom off a classroom and one long wall was a single-glazed window in a steel frame. You can imagine what the temperature was like in winter. I still spent every lunch time, every spare period and hours after school in there.
The first computer I owned was a Science of Cambridge (ie Sinclair) MK14, which I built from a kit. It had a hexadecimal keypad and a row of seven-segment LEDs. You programmed it in machine-code and it had 256 bytes of RAM. My second was an Acorn Atom, which I also built from a kit. By this time I had got to university. Unlike most universities the Computer Science course at Manchester was heavily hardware-based, which suited me down to the ground. By the time I wrote my thesis, using a text processor I had written myself on the Atom, the Atom had a 4K memory expansion I had designed and built myself.
My first job was writing educational software for schools. If anyone remembers "Mr T's Moneybox" that was one of mine. The place was a sweat-shop though, so when I landed a job at British-Leyland Systems (Soon renamed ISTEL) I left with some relief.
It was about then that I could finally afford a BBC Microcomputer, and then a disk-drive, and then a second processor. (There are very few computer games I have ever stuck with through to the end, but Elite is one of them. Thanks David.)
ISTEL employed some thousand people, but I was in the "Control Process" department, which consisted of me and my boss. We built embedded control kit based on 6502 microprocessors. One of our devices tested the Metro fascia. Another job called for a more powerful processor, so I had my first contact with Unix and C. The box was over twice the size of a modern desktop and it had 1MB of RAM and 10MB of hard-disk. I learned C from the manual on the job.
After ISTEL I took a job at a small company building SCADA systems, called AFE Displays. When I wasn't programming I was responsible for a couple of Sun Workstations running SunOS (a BSD derivative). My first introduction to open-source software came when one of the other programmers recommended Emacs. It came on quarter-inch tape, probably directly from Richard Stallman.
Somewhere around then I finally saw the writing on the wall, and rather than pauper myself for an Acorn Archimedes, I got an IBM clone with a 386SX-25MHz processor. Since then my machines have evolved piece by piece over time. These days I build them myself.
With no prospects of career progression, I jumped ship in 1995 and have been programming automotive engine test software ever since, initially in Forth and recently in C, C++ and C#. I'm still writing code; I still love it, and I know I cannot manage and would hate it.
In the past few years I have been experimenting with the Atmel AVR processor (as seen on the Arduino.) Sitting in the lounge is a half-finished table that will have five AVRs controlling 75 LEDs under-lighting the table-top. I had thought that the controller would be another AVR, but I'm now thinking it would be a good use for a Raspberry Pi.
In my other life I am also a Roleplayer (I started with the original Greyhawk rules) but this is long enough already.