About Me

An informal page to learn more about me and my professional journey.

My Professional Journey

My story of falling in love with programming comes a long time after my story of falling in love with data analysis. During my school years, I was very good at maths and solving problems with logic. I was using computers from an early age having an Atari 820ST. Yeah, you know the ones, the top-loader cassettes that take a noisy forever to load a primitive game. Later, I had a Pentium 75 which got me through my sixth form years.

Fortunately for me, my mum had secretarial skills and thought it would be a good idea for me to learn to type, which is of course a skill that has naturally stood me in good stead for a career in using computers. To this day, I cannot touch type in the tradional way and typing with my little fingers just seems totally alien. We can all be thankful for Intellisense! I can type at a fair pace without looking at the keyboard though and know so many keyboard shortcuts that I can be extremely efficient.

Following using spreadsheets and extensive use of Microsoft Word to produce assignments within my sixth form years, I thought that it would be very useful if I were able to predict just how much money I would have at a given point in the future given certain assumptions around income and expenditure. I proceeded to lay out what I would later discover was called a Cash Flow Forecast. Week-on-week, it would have my earnings given the hours I was working as a Team Leader at a Stir Fry production company in addition to my expenses.

It was a spreadsheet with many COUNTIFs, SUMIFs, VLOOKUPs which I had taught myself in order to be able to make the spreadsheet. With my background in computing and maths, I noticed that I was finding this extremely easy and just felt at ease and in flow with it.

I was able to see the power of spreadsheets for "what-if" analysis and I was hooked. If I were to work an extra 5 hours per week, then in 3 months I would have x number of pounds more in additional savings! Wow! Mind blown!

Of course, such analysis has become run of the mill having done it for so many years now.

My Introduction to Programming

After working for many years delivering Management Information and Business Intelligence dashboards to senior managers and executive committees, I was tasked with building a database that could automatically take input from users to be able to monitor KPI performance of an HR administration team. I developed a Microsoft Access database with advanced functionality using VBA code to accomplish this.

The database was a massive success in fulfilling the manager's objectives and they were extremely happy with it. I now look back on it and view the code in there as rather primitive.

It was this blend of creating an intuitive user interface and a robust and efficient application that had me completely hooked! I studied several books and courses on VBA development and had used it to build a lot of applications across the department.

My VBA code went from strength to strength until, before I knew it, I was building robust dashboards and applications that was saving users across the business time previously taking hundreds of man-hours worth of laborious manual effort to accomplish.

The Self Taught Programmer

From then, I read a book called 'The Self-Taught Programmer' by Cory Althoff which advocated the use of Python. I noticed that the language was written in an expressive and intuitive way that I considered would be the way that I would write a programming language.

It was around May 2018 when I encountered Python and have studied it avidly ever since.

One of the big stories in the Python community shortly after getting started was Guido Van Rossum (the inventor of the language and known in the community as the Benevolent Dictator For Life) was stepping down from being Python's leader.

A bit of further research led me to realise its popularity as a language for scripting, web development, and data analysis. I started learning the Data Science libraries first which seemed incredibly intuitive to me invariably due to Pandas' similarities with Excel.

I continued my learning journey by studying more courses on Udemy, reading books, and writing scripts. When GitHub introduced free private repositories, I started to create more projects and push them to my remote repos.

After feeling more confident with my code, I started using public repositories too and finally building a portfolio which has grown considerably in time both in terms of the number of projects, the variety of features and the testing coverage.

10 Questions to Learn More About Me

Here are a few answers to questions to give you more of a picture about me as a person. They start with professional questions and then move onto more personal ones.

Naturally, having built a portfolio, I have some skills in other languages and/or programming constructs/disciplines. Throughout the portfolio, there is evidence of using Sass, HTML, etc. In terms of languages, I also know some JavaScript and React but I cannot say that it's at the same level as my Python/Django.

I can add sprinklings of JavaScript to my projects to augment their functionality. This is evidenced with some of the features across my portfolio.

I have extensive experience of building complex projects using VBA in Excel, Access, and Outlook. Amongst other projects, I have built applications that deliver over 10,000 emails in just over 10 minutes, an application that simulates Microsoft Outlook's rules feature, and an interactive tool to plan salary ranges for a cost catalyst programme headed up by the CFO.

Following my experience in building in VBA, I also know how to build some projects using vb.NET, however I do not wish to use these skills going forward because it's a dying language.

Naturally, having worked with various database technologies, I can free-hand write relatively complex SQL queries retrieving data from relational databases. I have used an application called Toad to retrieve query data from Oracle databases.

I have only touched on NoSQL databases as an introduction, specifically with MongoDB.

Yes, my Excel skills are very advanced having used it since being a teenager. In addition to the VBA I have already mentioned, I know over 200 different Excel functions and pretty much all of the advanced features and functionality it has.

I have taught Excel classes at two of my previous employers as management thought that if everyone had my level of Excel skills, their job would be much easier. I also enjoy training other people as I can communicate complex ideas and processes in plain language.

I have learned many Business Intelligence tools over my career to various degrees. Since I haven't used these tools for a long time, I would need just a little time to be reacquainted to become effective/efficient in them again. In 2014, I had written over 100 different SAP BusinessObjects reports during and following a large data migration programme at Admin Re UK. These reports fed multiple downstream systems including access management, master data management, Finance systems, etc.

Since then, I have learned both Tableau and, to a lesser degree, Microsoft Power BI.

Many years ago, I learned to use AutoCAD and to this day have a portfolio of A0 sized drawings printed on one of the old AutoCad plotting machines. As a draughtsman, I designed the layout plans and cross-section drawings for cladding and decking for numerous industrial buildings.

I first tinkered with simple static web pages using Microsoft FrontPage in the late 90s and eventually started using Adobe DreamWeaver. I never really deployed any of these projects because I didn't have anything that was really going to help the world. It was purely my fascination with being able to use my logical mind to be creative. It was my avenue for creative expression since I'm so bad at art. I mean that I'm so bad that I struggle to draw a stickman!

In 2008, I designed a few WordPress websites which was hosted on Linux servers for the purpose of online marketing so that I could sell affiliate products. In the context of an individual's website, my main site generated quite a lot of traffic sometimes achieving almost a thousand visits in a day. If you've ever put your own website online, you'll know just how difficult it is to achieve that. For over a year, it was tracking in the top 60,000 Alexa ranked websites. In 2024, this would be more even more difficult to achieve.

The problem was that the website was built with the objective of making some sideline money, however, what I ended up finding was that I enjoyed the creation of the website tinkering with the HTML, PHP code and MySQL database on Bluehost more than I actually did the marketing. I was supposed to be focused on the marketing but I was getting pulled into the coding and technical aspects.

During that period, I learned a lot about SEO, split testing, affiliate marketing, production of media using tools like Camtasia and SnagIt. To this day, I use SnagIt as my preferred screen capturing and image manipulation software. I never really have got my head around PhotoShop.

Since the age of about 25, I have focused on perpetual growth and learning, especially with the emergence of online tools that make this easily accessible.

I started learning about many things by going to seminars up and down the country, listening to audio books on my daily commute and avidly reading personal development books. I read and listened to hundreds of books in the field of personal development with Tony Robbins being be the most household name. I learned about sales, marketing, online marketing, finance, politics and pretty much anything that could help me to understand the world that bit better.

Most of this was produced by American authors/speakers since the personal development market is more mature over there. I studied authors/speakers such as Brian Tracy, Zig Ziglar, Dan Kennedy, Robert Kiyosaki, and others.

I'd like to continue my journey of learning to build React applications as I believe with my current level of Django skills together with building a responsive front-end application with React, some very powerful modern web applications could be built.

I wouldn't really call myself a DevOps kind of a guy, although I can manage a Linux server and know my way around Docker. I think GitHub Actions is going to be a very powerful player in DevOps in the future since GitHub has such a mindshare of the developer market and it integrates seamlessly with the rest of the platform. I use GitHub Actions for quite a few things including automated repo maintenance and continuous integration within my portfolio and other projects.

With the impending arrival of VS Code being built into GitHub itself (Codespaces), it will make it easier than ever to contribute to open source projects and deliver them using a CI/CD workstream.

I also have some experience with Tox and Travis CI from my open source contributions to a couple of Python packages.

If there's anything that I love more than programming, then it's travel. I'm fortunate to have travelled to many different countries and have never considered money spent on travelling as a waste.

Each time that I've travelled, I feel as though my mind has almost tangibly been stretched. I'm fascinated by geography and other cultures.

Nelson Mandela was a great person as his achievements in my formative years were incredible. I remember my parents recording the Nelson Mandela concerts on VHS video tapes and them telling me about why the concerts existed and why he was serving time in prison for his beliefs. I found it incredible that one person could mobilise such a huge change in society. He could be considered as a modern day Gandhi.

In this regard, I respect people that achieve again and again often in different disciplines. Arnold Schwarznegger is another example of this. Not content with being Mr. Universe in his younger years, he also went on to become a successful Hollywood actor and then the Governor of California.

Absolutely! Actually playing the sports belongs in my past now. I watch sports occasionally, however, I usually find that I'm too busy to watch sport all of the time. Although football is my favourite sport, I can happily watch one-day or T20 cricket, tennis, rugby union, Formula 1, golf, or snooker. I love the Olympics and Commonwealth Games when they're on and definitely look forward to Birmingham hosting the Commonwealth Games in 2022.

As with any football team, it's a contentious choice invoking lively debate and tribal banter but I support Chelsea FC and England.

I mainly like action, drama, and comedy films. Amongst others, I think films like The Shawshank Redemption, Seven, Point Break, Man on Fire, Enemy of the State, The Negotiator, Shooter, Taken, and the Bourne films franchise are all fantastic.

I think that Top Gun may well be my favourite film of all time though as it had everything in the movie. I had a massive interest in airplanes when I was in primary school and the film came along at the right time to capture my imagination.

I often listen to Ibiza sunset/lounge music when programming as it helps my mind to flow. Having no words, or even some foreign language words means I don't engage with the music and sing. Instead I can concentrate on the programming tasks at hand.

In my early years, I loved Dire Straits and still do to this day. They have had a lasting impression on the sort of music that I like. My teenage years was captured with the many great Oasis hits so I love them too and have been fortunate enough to see them twice in concert.

Although I wouldn't consider myself an avid concert-goer, I have been to a fair few watching the likes of Oasis, Bon Jovi, U2, Rod Stewart, Coldplay, and Ed Sheeran.