Introduction and Background

Who am I?

This is the first time I am attempting blogging, so I figured that it would be a good idea to start out by introducing myself, and explaining the purpose of blogging for me. My name is Kevin Ashton (@AshtonKj). I am a software developer, living and working Johannesburg, South Africa. My primary programming languages are C# and F# (I exclude things like HTML – as I don’t really consider it a programming language, but rather a mark-up language - and JavaScript as I consider these to be almost mandatory these days). I am currently working at an insurance company, developing systems for both internal and external use.

I have been involved with computers and software development since I was really young. My father was (is still) a software developer working primarily in industrial automation, so I was extremely fortunate to always have computers around me when I was growing up. I think I got my first PC when I was around 5 (an old IBM XT). Of course, being young the only thing I wanted to do was play games, but as I got older I got more and more interested in how computers actually worked and started playing with Basic (vanilla Basic at first, then Visual Basic). As my father developed mostly in Delphi, I followed suit and started learning that as well. During high school they taught us Pascal, which was a breeze as I already knew most of the syntax from Delphi. After school, I started working, initially for my father’s company doing industrial automation stuff, but after that moving to a vehicle tracking company where Delphi was still the primary language. It was at this job (in around 2006) that I first started to work with C#, being one of the first to adopt .NET in the company. I have been working with .NET since then, doing software for various companies (derivatives trading, debt counselling, training management, social buying and now insurance).

I have dabbled in various other languages and frameworks (most notably Java and C++), but always find myself returning to C# or F#. I started playing with F# a few years back, but at the time there wasn’t much interest in it at the company I was working, and it was seen mostly as a niche language that wouldn’t really make the main stream. The more recent TIOBE indices seems to have put paid to that idea (with F# being only two places behind VB.NET). With this additional popularity, F# has become a viable choice of language for me, and I have begun to focus far more on it (to the point where I am using it for various parts of a major project I am busy with at work – from build automation with FAKE, to doing a lot of the backend web server code).

So, why blog?

The main purpose of this blog is going to be a place for me to share my thoughts, as well as try and clarify my own thinking. I have heard that when you write things down, you get a different perspective on things (and also that if you really want to learn something properly, then teach it). It is my hope that what I write will be of benefit to whoever reads it, but that isn’t really the primary purpose; I mainly want to improve my own understanding. I will endeavour to ensure that what I write is accurate, however it will only be my own understanding and as I am only human there are many gaps in my understanding of things.

Primarily I will be blogging on programming topics, but there may be days where I feel that there is something that isn’t programming or tech related that is of interest to me and that I require a better understanding of, and on those days I will blog about those random things.