To be honest, I've been writing code for more years than I really like to remember. Like many kids back in the day I started my coding career by writing games in assembly language on the good old Sinclair ZX Spectrum and Commodore 64.


Back then we didn't have the internet or even any decent development tools, just a bunch of oddball bespoke utilities and text editors. Learning programming mostly meant studying badly printed magazine listings and scanning through well-thumbed library books for enlightening snippets of code.


Being the eighties it was of course obligatory to sport a mullet haircut, and as you can see being a mere teenager I also felt the need to grow a wispy moustache. Don't judge me, I was a mere boy.


From school I went straight to college to study programming, but soon got bored as the course was made up of pretty simple BASIC programming on a Commodore PET. In my mind BASIC was what kids used when they wanted to annoy staff working in a computer store on Saturday.


10 Print "Dave smells ";
20 Goto 10

Obviously now as an adult I can see that there's a little more to BASIC than that and that seeing the course through to get the qualification would have been beneficial, but I was young and naive so I dropped out.


Jump forward a few years, after spending some time working in a design studio (amongst other things), I decided to delve back into programming by shelling out a wedge of cash and learning C through a City & Guilds home study course. I did this using a second-hand Amstrad PCW 9512 running CP/M. That was 1994.


Whilst finishing the course I worked for an electrial retailer selling PCs. All whizz-bang 486DX2 machines running Microsoft Windows 3.1. This was my first experience of an IBM PC. Oh the power. Microsoft Windows 95 and the Intel Pentium processor were both just on the horizon.


I got my first developer role shortly afterwards at a company developing bespoke videoconferencing systems. As well as writing applications in C, I also learnt an embedded programming language called AMX Axcess which is used in control and automation applications. We used it to control video codecs, ISDN dialling, video switching and camera movements.


After a year or so there I moved to a large manufacturing company where I was part of a very small team of IT people responsible for pretty much everything, although officially I was actually an analyst/programmer. These were the days of Windows NT 3.51, Microsoft SQL Server 6.5 and Microsoft Visual Basic 5. I did three years there learning everything from Visual Basic and Transact SQL programming through to being a network and database administrator in a large organisation, all from official Microsoft training courses backed up with a huge chunk of hands-on experience.


Whilst there I rewrote the main sales application suite onto a Microsoft platform from a mixed platform of UNIX and DOS machines running a range of Ingres and dBase systems, and developed a bespoke three-way replication system to enable a smooth and staggered transition between the systems.


With the internet building in power and popularity around this time I started putting together websites for myself and for friends, fairly simple stuff mostly but that's where the base of my HTML knowledge started. Also building on my core C skills I joined a Sony developer programme to inject some new blood into the games industry. The project was called Net Yaroze and basically consisted of a community of developers connected via the internet developing games for the Sony Playstation using a special black Playstation.


Using either a range of development tools supplied by Sony or the third-party Metrowerks Codewarrior IDE you could develop games on your PC, or Apple Macintosh, which you could then upload to the black Playstation via an RS232 connection and play till the cows came home.


I wrote a handful of games and demos for the Net Yaroze the most popular of which, A Dog Tale, was picked up by Sony for inclusion on the coverdisc of Official UK Playstation Magazine to help promote the Net Yaroze project. I even wrote an article for the magazine as well. It wasn't an easy game to play, and I think you either loved it or hated it. You can see somebody playing the game in this video posted onto YouTube.


After briefly toying with the idea of moving into games programming as a career I ended up working as an analyst/programmer for a large financial organisation in a client server development team. Here I worked on a whole range of applications from data warehouses, web-based support systems, document management systems and I even developed an SDK for other developers to gain simple access to mainframe data using automation.


During my seven years working there I went on an long stream of training courses picking up new skills and updating existing ones. I worked primarily with Visual Basic (3/5/6) and SQL Server (6.5/7/2000), but noteworthy new skills I gained were ASP using VBScript, Business Objects universe development, and Lotus Notes LotusScript, which is another dialect of BASIC.


Redundancy struck in 2005 and forced my hand to make a change. I then moved to a very small software house where I went in as the senior developer taking charge of not just the Visual Basic 6 and Microsoft Access systems, but also by default the planning of the core products' redevelopment into Visual Basic .NET and Microsoft SQL Server 2005. I also revamped their internet-based real-time booking system to make it more robust and enable a much larger throughput of business.


Then at the end of 2007 as my odd jobs on the side started to take over my spare time I decided to walk away from the steady paycheck and into the uncertain world of freelancing. I now work as a full-time freelancer doing development work, web design, IT consultancy and even where required a bit of hands on dirty IT support.


As I always have done whilst actively employed, I keep my skillset current and am always learning new techniques, processes and languages to ensure my developments are carried out in the best way possible and using the best technology available.


Why do I do it? Well I guess it's the excitement. That and because I just love coding.