Ever since I was five years old and we had our first home computer - a BBC - I've been programming.
No one ever taught me how, in those days I would spend hours trying to learn how the processes worked, happy to sit and debug until I understood.
At school I was no great mathematician I admit but I still spent all my time outside of school programming as much as I could, being fascinated with computer games and the internet in general. I learned that the math happened in my head, and my ability to learn new languages and read patterns was very useful. My first websites in html, and then PHP were shambolic but I persevered despite going to many schools, my parents were in the RAF so travel was a major part of my life.
At university I was unimpressed with my course - with exams on how to use Microsoft Word, I realized my potential wasn't being reached and I left with the offer of a position abroad in Cyprus on a long term contract.
When I returned I was surprised to find I was in demand and felt in the right place for the first time as a professional when I joined an advertising agency's new 'E-Communications' department as developer ahead of hundreds of other applicants with degrees and more experience in industry. Since then I've worked on websites and advertising for companies from Walmart to Sony and across many different market sectors.
In the UK, I can now go for any position I want and feel confident I'll get it, I turned down a position at a major search engine in order to take my current job. That's because they can push me and use my to my potential. In the UK there are no jobs in search related fields that aren't SEO and I don't want to sell my work to a company who won't use it effectively.
I do enjoy it, being able to work with designers and with an energetic team enables me to work as hard there as I have everywhere else. I strive for perfection in my work and enjoy the social life - I'm not a typical nerd as defined by stereotype. I'm keenly competitive as a sportsman.
I have ideas I can't implement, I write down implementations that will never be used and concepts I will never have a response on.
When people ask me; 'isn't programming boring, how do you cope', I tell them that programming is an art to me, it's not just science, with an end result that can be beautiful and stunning.
This is what I look for in my work, this is what motivates me to write, I need an output for all the ideas that may never happen. People accuse me of not knowing about search, or being too critical of search companies but understand; this is my passion.
I welcome criticism myself, it lets me grow and adjust my ideas and without it what compass would I have. Look around this blog you'll find comments calling me a f**king moron. Why would I delete a passionate response to an article that I wrote from the heart?
In the coming months, my first commerical search engine, running entirely on your own PC desktop will be released. It has features you'll have never seen before I promise you that, it may well revolutionise the way you search for documents, web pages and folders. Rather than telling me it's crap and I'm a f**king moron (if that's how you feel), it'd be great if you'd tell me why you think that - and how you'd change it. Then I promise to answer you in kind.
I have a lot of respect for the readers who don't like what they see, because I feel the same way when I write about a lack of innovation in search. If you don't criticise what you love, it'll stay the same whilst you as a human being never will. You're changed by the criticism, praise and ideas of those around you.
Please, keep trolling.
(originally posted on my other blog here)