About Me

I am a CIO working for a FTSE 100 insurance company. I studied at Aberystwth University where I gained my Masters in Software Engineering, and then went on to complete an MBA at Cardiff University. I live in Wales, UK, with my wife, daughter and son, and spend most of my time either at work, with my family, or working on one of my many personal projects.

As for hobbies, although I love sport and try to watch a bit now and then, I rarely get time to play these days! The sports and hobbies I most enjoy include:

  • Coding
  • Reading
  • Golf
  • Football
  • Badminton
  • Snooker and Pool
  • Boardgaming (Puerto Rico and Caylus style boardgames)

Side-Projects

As mentioned, I am passionate about technology. I explore this passion and learn new technologies through personal projects.
Below is a list of different projects I have worked on, or am currently working on.

Play! Book

I was very much an early adopter of the Play!Framework and became an evangelist of the technology. I wrote many blogs and became top StackOverflow contributor for Play! After several months, I decided to write a book which I published on Lulu.com.

Read The Book

Property Tracker

Property Tracker is a simple Chrome Extension that tracks property prices on the RightMove website. I created it when I first started using the Chrome browser, and the PropertyBee Firefox extension author was not intending to build one for Chrome.

Visit Chrome Store

DevMap

DevMap was a Christmas break project, playing around with Play! plus Google Maps. I decided to create a simple web application that would allow developers etc to pin their position on the map against technologies they are interested in.

Turbo Trainer App

This is probably my most enjoyable, and definitely most challenging side project. It is a desktop web app, that connects to an ANT+ enabled Smart Trainer, for cycling GPX routes with simulated gradient.

See a Screenshot Here

WODRoom

WODRoom stands for Workout Of the Day Room. It was a prototype site I put together for a friend who wanted better information about workouts at hotels that standard hotel sites don't cover, such as nearby external facilities and food options.

Facebook Apps

I have written 5 Facebook applications since Facebook open up the API for developers to integrate into the platform. Most of these I ended up selling on to larger US companies, but a couple I have held onto.

Achievements

Many years ago, a mentor of mine suggested I do two things to help keep my focus on success. He said to keep a list of things you want to achieve, and always keep your eye on the goal. Set achievable, but challenging targets and always aim to complete those goals. Secondly, keep a list of all the achievements you have met, both on and off the former list. Use this list to remind yourself of how capable you actually are, especially during the tough time, to encourage you to continue to push to achieving your goals. This is my done list.

  • Published my first book 'Introducing the Play Framework'.
  • Developed 2 Facebook applications with over 1 million users, one of which peaked at 5million page views per day
  • WDA Technology Prize Winner 2004 Software & IT Category
  • Invited Keynote Speaker at a Computer Assisted Assessment Conference
  • Graduated top in class
  • First undergraduate in Computer Science at Aberystwyth to become published (totalled 5 papers in my undergraduate final year).

Blogs

Below is a selection of my most recent, and my most popular blogs and vlogs. Most are now present on Medium.com, but some of my older ones are available on DZone or Wordpress.

Kotlin ToDo List App

After good reviews from my Kotlin WebSockets blog, I decided to go more mainstream, and created a series of posts creating a ToDo List WebApp using Kotlin, VueJS and SparkJava (plus SpringBoot example).

Read on Medium

Kotlin WebSockets

Having found a potential successor to Play, in Kotlin and SparkJava, I tried a more complex example, by using WebSockets to create a simple vanilla javascript chat application with Kotlin/SparkJava backend.

Read on Medium

PhaserJS

Taking a bit of a break from Play, I started learning some JavaScript game engines, including PixiJS and PhaserJS. I decided to write a getting started post, based on my own learning experience.

Read on Medium

My Journey Away from Play...

When PlayFramework became Play2, with its emphasis on Scala, I felt like the magic of Play 1 was lost in Play 2. I began searching for a new (or at least maintained) project that could replace Play. This blog post described that search.

Read on Medium

Hidden Features of Play Routes File

As I got more experienced with the Play source code, and answering questions on StackOverflow I began to discover hidden features. This blog post was an investigation into some hidden features of the Routes file.

Read on DZone

Web Services using Play

This was one of my most popular posts on Play Framework, with over 30K views between DZone and Wordpress. This post was also what began my writing about PlayFramework.

Read on DZone

About This Site

It has been a while since I have refreshed my homepage, and now seems an appropriate time to do so. Each previous incarnations of this homepage was written in a different backing technology, and this incarnation is no different.

  • First it was written in PHP. Even though I am a JVM experienced developer, in the early days of website hosting, PHP was cheap or free, whereas Java was prohibitively expensive for simple solutions. Whilst the content was largely static, HTML and JS frameworks were not what they are today, and the idea of repeating header and footer content on each HTML page did not sit well with the DRY (do not repeat yourself) principle that I felt strongly about. Hence the need for server side processing.
  • I then transitioned to Java using the PlayFramework. For two main reasons; 1, it allowed very fast development, and not the usual boilerplate that came with normal Java Web projects, making it a perfect fit for both simple and complex projects; 2, Heroku supported Play! on it's free tier, making Java a contender for homepage projects for the first time. Play moved on quite a bit, but at the same time, so did JS technologies.
  • I now find myself in a position where static content is entirely feasible with many decent front end javascript template engines, or even single page application frameworks, plus mobile first pushing toward single fluid pages, and that is where GitHub Pages comes in. A simple place where I can share my static content, with a perfectly suitable deployment pipeline, and if I ever do need serverside processing...then I can make simple REST calls to something like Google Cloud Functions, or AWS lambda. Perfect. Let's see if the next iteration of this site stays with the same stack.