Many bloggers round off the year with a retrospective of what they learned, achieved or experienced. For me personally, 2015 marked the 25th anniversary of my first professional programming job, which seems insane considering I still think of myself as in my late 20s, rather than my early 40s.
Anyway, I thought it might be fun to look back over all 25 of those years; what follows is obviously going to be mildly self-indulgent, so feel free to stop reading now.
I'd decided I wanted to be a programmer when I was nine years old, and I got a Sinclair ZX81 for my birthday. I wrote this program:
10 PRINT "WHAT IS YOUR NAME?" 20 INPUT A$ 30 PRINT "HELLO, "; A$
and I was completely smitten. Over the next few years, I learned BASIC, Z80 and 6502 assembler, Amiga C, and even made some extra pocket money writing Superbase reports for my uncle.
My first actual job, which I started in March 1990, was with a company called Mountfield Software (which lives on today as the M in FDM), down in Hastings where I grew up. They ran a training program, basically an apprenticeship, and I got onto it at the tender age of 17 (higher education being unavailable to me for various reasons).
The Unix years
When I started, we had six to eight developers and apprentices working in-house, writing character-based Unix applications in C and Informix ESQL/C (which actually still exists). We all worked on the same Tandon 286 running SCO Xenix, using Wyse dumb terminals connected to the server via RS-232 serial cables, the manufacture and maintenance of which was part of my job description and I still have the soldering scar to prove it.
Running "the build" of a large C application on that hardware was a non-trival process, and it took ages. We had a table tennis table downstairs, and after linting the code, we'd head down and play a tournament for the two or so hours that the server was busy compiling and linking. If your code broke the build, you were the one who stayed late to fix it for the next day.
We had one in-house product that we worked on, a code generator for Informix 4GL called Informate. That was great fun, and ever since I've enjoyed creating tools, libraries and frameworks for other developers to use.
In 1991 I went out on contract for the company, with a CV that maybe exaggerated my age a little. Put it this way: I had three 22nd birthday parties before my actual 21st.
The client/server years
When I went back in-house in 1994, I was given an actual PC and told to figure out this new Windows, Novell Netware, client/server stuff. I picked Gupta SQLWindows as the best of the available tools (Visual Basic 3.0 wouldn't talk to network database servers at all, if I recall correctly), and promptly wrote a huge framework for it that generated SQL for CRUD operations and all sorts of stuff. Then I spent a bunch of time helping customers build applications with it.
It was around this time that something called "The World Wide Web" got invented. The office got a 56k dial-up modem, but we weren't really that impressed with the Internet in 1994.
My glorious stand-up career
For my actual 21st birthday, the people I was working with took me to the Comedy Store in London on a Thursday night. That was the night the Store had open spots. One of them was good, one was awful. We were drunk. The people I was with said "you're funnier than that guy, you should do one." I mean, really, really drunk. So I went and found the manager, Kim Kinney, and said "can I have an open spot?" and he got his book out and found the next spot, six months hence, and put my name down.
A sensible person would have phoned the next day, hangover and all, and cancelled it, but I told everyone I knew I was doing it, and I did it, and I don't think I was awful; I got some laughs. So I got Time Out and started booking open spots and after a year or so I started getting paid spots, and in 1999 I won the Jongleurs New Act of the Year competition and they signed me and I spent two years making my living by making people laugh.
During that time, I was lucky enough to work on a show at the BBC, The Recommended Daily Allowance, which was an awesome experience, but not a great show. Two best bits: performing a sketch I wrote reviewing books based on weight, size, longest sentence; and walking past an old TARDIS every day on the way up to the production office at Television Centre.
After two years full-time touring the circuit and doing the very-well-paid but soulless corporate gigs, I basically hated comedy. I was good at it, but I wasn't great. It wasn't what I felt I had been born to do. That still was (as it always had been) programming. I'd been hacking in my spare time instead of writing new material, making Flash games and playing with the C# beta. So, in 2001, I quit, called up one of my old contract customers, and got a full time job.
The Lost Years
I spent eight years working for that company, which had been acquired by a larger, VC-backed company, and was later merged with an even bigger, more VC-backed company.
I convinced them that we needed to migrate away from SQL Windows (which had become Centura Team Developer), so they let me start a project to rewrite the whole thing in C#, WPF and ASP.NET. They gave me one developer to work on it with me, while a team of four worked on adding new features to what I thought of as the "legacy" product. I worked harder and harder, longer and longer hours, trying to catch up. I think I ended up pulling 100-hour weeks for almost six months before I finally broke myself. I had to take three months medical leave to recover. When I got back to the company, they gave me a bad performance review because of that time off. So I quit.
A New Hope
I was extremely lucky to land a new job at a Windsor-based company, Dot Net Solutions, who were working on cutting edge technology, using proper agile methodology, and just doing amazingly cool stuff. I got to work in Microsoft's Technology Centre on prototypes and showcases. The company threw itself into Microsoft Azure, and I got my first MVP Award. They encouraged me to try new things, blog, and speak at user groups, and let me work on Simple.Data in my 10% time. It was an awesome place, and I'm forever grateful to everyone I worked with there.
I started speaking at the DDD events, first at DDD South West, and then one weekend at the main event at Microsoft's campus, where I presented a talk on what I considered to be some pretty neat functional C#. Turned out a certain Jon Skeet was in the audience. He managed to keep quiet for about 10 minutes before joining in, and then we paired on some things he'd suggested afterwards. Jon recommended me to some organisers of bigger, "proper" conferences, and I found myself speaking all around Europe and the United States.
Suddenly, I was able to combine the skills I'd acquired playing to large rooms full of drunk people with the thing I truly loved. I don't particularly set out to make my talks funny, but I certainly don't take them too seriously, and I still like it when people laugh. (A lot of people dread public speaking, but when you've faced down the late show crowd at Jongleurs Camden Lock, a few hundred eager-to-learn developers aren't really that scary.)