25+ years experience building web apps

I built my first commercial web application in 1996 using Perl and have building web applications ever since

These web apps have served thousands of users and generated billions of hits

Over the years, as client apps were slowly separated from backend servers, I have gotten to use numerous frameworks - including Dojo, JQuery, React, Angular, Vue and Polymer to name a few

Nowadays, my weapon of choice is React - mostly because of its dominance in the resource pool

14 years experience building mobile apps

In 2010, I co-founded a mobile app development business called Genie Mobile - by the time we sold the business, in 2015, we had published over 1500 mobile apps

Back then there weren't any (good) frameworks, so we build natively for iOS, Android, Blackberry and Windows Phone

Nowadays, there are frameworks to developing cross-platform mobile apps - and I have built extensively using React Native and Flutter

In 2019, I co-founded Opsbase within which we built a comprehensive and widely used mobile app using React Native and GraphQL - though today, I'd consider Flutter as a strong candidate


From GofAI to GenAI

The AI I worked with during my BSc in the 1990s is now affectionately known as good-old-fashioned AI (GofAI for short)

In the 2000s, AI shifted to embodied robotics, Artificial Life, genetic algorithms and complex systems resource

In the 2010s, computing power breathed new life into neural networks in the form of deep learning and ML

Now though, in the 2020s, we are entering the age of generative AI (Gen AI for short) and a new paradigm development - prompt engineering

Like many, I am devouring the new tools (OpenAI's API, LangChain, AutoGPT, AutoGen and many others) as well as architecting my own agent orchestration frameworks

A truly fantastic time to be a developer

25+ years building backends

Up until around 2007, most web applications were SSR based - with no clear separation between Client and Server

Nowadays, the client app (web or mobile) tends to communicate with the server via an API tier - usually REST or GraphQL

Building and securing these APIs can be achieved in numerous ways - from monolythic Java bohemoths to serverless lambdas

For the past few years, I have chosen GraphQL served through AWS AppSync as my API framework of choice

back end

From towers in the garage to serverless clouds

Back in the day, there were no cloud providers. In fact, there weren't any kind of providers. If you wanted to host a web application back then you would have to build your own hardware and hope the internet stayed up

Quickly this matured into managed facilities with good networks - my ecommerce business, for example, was eventually housed inside a nuclear bunker in Newbury

Over the next decade, the market further matured and big tech started to offer their infrastructure as a service - this became known as the cloud

Although I have strong exposure to GCP, Azure and AWS - nowadays my provider of choice is Amazon

Environments, deployment and automated tests

Over the past decade or so - dev ops has matured into a rich field of its own right

Numerous tools and approaches are available for automatically testing and deploying changes to your web and mobile applications

Most recently I have started to adopt AWS Amplify for managing the deployment of my projects' code and infrastructural updates

This one-stop-shop allows me to spin up entire environments with a simple click of a button - a far cry from the bad old days when creating an environment would potentially take weeks.