• ASUS : In Search of Incredible

    2011

    I have only worked on one project for ASUS, but it was large enough to require every aspect of my expertise and was probably the most complicated project I've worked on to date. This content managed, Flash & HTML5 Hybrid campaign site, boasted 16 languages and allowed users to upload video, audio, photos and text into ASUS's global competition — to find the incredible.

    Due to the highly multilingual nature of this site — and choices that were made prior to me entering the fray — it was decided to use a very open source CMS called Ionize, to power the site's front-end content. Unfortunately Ionize was still in BETA, it employed some rather questionable back-end processes, and no page caching.

    So whilst it was easy to define translations for each page, when we actually came to launching, the CMS — coupled with high visitor load — almost brought the live servers down.

  • Isoi 1
  • Questionable back-end processes ... ? Well lets just say I had never, and haven't since, come across a PHP-powered CMS/Framework that passed all of its code through the PHP eval() function. Treating the code as if it were templates to be parsed??!

    This action alone circumvented a number of code caching solutions we had in place, and caused normal PHP execution to be about five times slower.

    So despite having Akamai edge-caching and a load balancer, the content part of the site just took too much processing. Thankfully (and sensibly) a group of us developers had pushed to use CodeIgniter (a much more weathered framework) to handle the media upload portion of the site, which ran in a much more sensible and predictable way.

    I solved the Ionize issue by writing a quick spider that cached the mark-up it generated. This static content was then served to the public. A poor mans Varnish, but it worked.

  • Isoi 2
  • Gap : VIP Campaign

    2009 — 2011

    I was brought in to this campaign after a few iterations, so there were a number of decisions I had no control over. I also had no control over the fact that the site itself was hosted on a Windows box, which was my first time dealing with anything so awkward.

    Thankfully I did have full control over the codebase, so I was able to build in a number of tools and systems to help me manage what was essentially a rather awkwardly designed campaign. Powered by PHP, this site was responsible for allowing an initial list of VIP users to get early access to 30% off at Gap and to then share with their friends via email.

    All I can say is I learned a lot about "user journeys" with this one... and that many users double or triple click links in emails!!

  • Gap 01
  • Gap 01
  • Gap 01
  • EMI

    2006 — 2007

    There have been a few times in my work where I've been asked to apply my web knowledge to solve offline problems. Most of these requests came from EMI, and in the shape of touch screen interfaces.

    I designed and constructed quite a few offline audio players for album launches. Most notable would be for Robbie Williams and for Iron Maiden. They were built using an animated Flash interface, a configured version of Firefox 2, and the browser-plugin version of VLC.

  • Touchscreen Emi 1
  • Touchscreen Emi 2
  • Lexus

    2009 — 2011

    For a number of years I worked on numerous projects for Lexus, far too many to recount here in any detail. The work ranged from constructing a monthly email-based newsletter, building campaign-specific emails, banners and mini sites, to data collection apps and intricate flash animations.

    During the period of 2009 to 2011 I constructed so many emails for different clients that I actually built myself a number of tools to expedite the work. This included an email test script that would warn me of common email-client specific issues. Despite my efforts however, the Lexus newsletter was a real pain to get pixel perfect, and normally went through a number of test iteration... mainly because it involved the use of one of the most complicated table layouts I had encountered for a number of years. And not to mention that all the mails had to work for Lotus Notes 6.5.4 — the most pernickety email client to have ever existed on the planet.

  • Waitrose Christmas Pud

    2010

    I have worked on a number of mini-sites, emails, banners and apps for Waitrose. However one of the most visually interesting and code-involved was for the Heston's prize pudding campaign.

    My work on this project involved creating a Flash-based app — that sat within the main Facebook app (coded by a third party) — which allowed a user to choose a slice of Christmas Pudding.
    A bit of a random request really...

    This was probably my first "Flash Movie" that was destined to be integrated by a remote third-party, which meant there was particular focus on providing an easy to use API to control the pudding's behaviour and animation.

    There was also a fun side in trying to get a "realistic" christmas pudding working, from only a few photographs, whilst at the same time keeping bandwidth usage to a minimum.

  • 01 Landingpage
  • 02 Pickaslice
  • Interesting side-story

    On day one of going live I was asked for help by those managing this Facebook app, because a number of errors and odd happenings were occurring with their site.

    This led to a rather hurried live debugging of completely unfamiliar third-party PHP code. A hectic thirty minutes later and I identified and fixed a rather significant database concurrency bug.

    Moral of this story, everyone should always run multiple concurrent user testing!

  • 03 Share
  • 04 Runner Up
  • Unilever : Touch Screens

    2006, 2007

    For a few years running I was in the position to construct a number of touchscreen interfaces for various companies. The most interesting of these projects was definitely building some interactive displays for a number of Unilever's AGMs.

    The first four screenshots here are some examples plucked from a number of design options, all constructed in multilayered Photoshop files. This allowed the client to narrow down the styles they preferred. Once the better options were chosen I moved on to a second design iteration, and from this Unilever chose the final template.

    I think Unilever were the only client to ever ask me to make the logo smaller.

  • Unilever Touchscreen 1
  • Unilever Touchscreen 2
  • Unilever Touchscreen 3
  • Unilever Touchscreen 4
  • <<<  These four screenshots are taken from one of the final systems, and they show one particular user journey.

    The system had to run on a standard offline Windows XP install so I opted to build it using Flash and to run it locally in a slightly modified version of Firefox 1.5/2.

    What I was most please about with this project, was that I didn't just hardcode the required elements directly into the Flash stage. Instead I built a recursive template parser in AS2, and used XML files to describe how each page would appear. The parser then created MovieClips, Groups and Text dynamically whilst loading any assets that were required.

    Basically it was a simplistic offline browser, with the power of animations and vector graphics.

  • Unilever Touchscreen 9
  • Unilever Touchscreen 8
  • Unilever Touchscreen 7
  • Unilever Touchscreen 6
  • Tate

    2011, 2012, 2013, 2014

    Back in 2011 I took on a very interesting two month contract, to help the one and only Tate to revamp their website. Now we're nearing the end of 2014 and I'm still there, still helping to enhance their online presence.

    The core site was constructed from scratch in Drupal 7 (PHP/MySQL), which has steadily been upgraded over the years with a number of useful bespoke features (minisite capability, social sign in, audio and video groups, improved landing page support, mobile tours). I have also been involved in a number of sibling projects like Turbine Generation, and just recently Art & Artists.

    Art & Artists was singularly interesting because the project involved replacing the existing java-powered tate.org.uk/art with a completely new Django/Python back-end. This actually gave me the chance to delve into Python, a language I have always found intriguing... and if I'm honest, I definitely prefer it to PHP (esp. the way PHP is going).

  • Tate Visit
  • Tate Slidebook
  • Tate Albums Drupal

Fubra is still going strong today. They now have their own offices, a huge network of popular web sites, they invest in other start-ups, and they have employees from around the world.

Whilst at Fubra I constructed a number of large-scale web projects (sites and applications) that handled high numbers of users. A typical early project for me would cover the initial logo and site design, back-end database implementation, and the server-side and client-side coding. Later projects were much more of a group effort and the tasks I would perform would be dependent on how the project had been divided and delegated.

2000 — 2007
Comedy Cafe -- 2003 Client site: Adventure Balloons Early Website : Climbing High Livetodot Orig APG Early Fubra Website 1 Troubadour Early Fubra Website 2 Early Fubra Website 3 Original OurProperty version Old Fubra Offices

That was until I got into the world of Flash and ActionScript. Flash was quite an attraction for me due to the exciting collision of coding, animation, and effects. Its close link to JavaScript to didn't hurt either. It was vector-based, so I couldn't be as precise with those pixels; But it made up for that in lots of other ways.

At the time Fubra was mainly focused on PHP, so I decided to head out on my own. This led to a number of interesting and slightly experimental projects, a favourite of which was a fully customisable touch screen CMS written in AS2. I still kept in touch with the Fubra world however, and freelanced a few projects for them. An example would be an interactive and dynamic Flash-based graph depicting house prices.

2005 — 2009
Ldparty Touchscreen Pains Optimeyesation 1 Dswood 1 Angeli Design Dswood 2 The Visualiser Dswood 3 Dswood 4 Fresh N Good 1 Fresh N Good 2 Housepricecrash

Kitcatt Nohr itself was a great place to work and learn, mainly because the place had a friendly atmosphere, but also because the work demands fluctuated between good days and "Oh my god what was <insert names of all sentient entities involved here> thinking"!

Their house website — depicted below — was constructed by myself and fellow WebDev Luke Mourino, and was powered by Drupal 6 along with a bunch of core modules, and not to mention more than a smattering of bespoke CSS, PHP and JavaScript. Unfortunately, as with everything in this temporary world, the site has now been replaced with Wordpress. It did survive for at least 3 years however, and in the world of advertising, that is quite a while!

  • Kitcatt Nohr 1
  • Kitcattnohr
  • Kitcatt Nohr 3
  • Kitcatt Nohr 2
  • Kitcatt Nohr 3
  • Kitcatt Nohr 2
  • Kitcatt Nohr 1
  • Screenshot.Kitcattnohr
  • Kitcattnohr
  • Tate

    2011 — 2015

    Back in 2011 I took on a very interesting contracting role, to help the one and only Tate to revamp their website. Now we're in 2015 and I'm still there, still helping to enhance their online presence in a multitude of different ways.

    The core site was constructed from scratch in Drupal 7 (PHP/MySQL), which has steadily been upgraded over the years with a number of useful bespoke features (minisite capability, social sign in, audio and video groups, improved landing page support, mobile tours). I have also been involved in a number of sibling projects like Turbine Generation, and just recently Art & Artists.

    Art & Artists was singularly interesting because the project involved replacing the existing java-powered tate.org.uk/art with a completely new Django/Python back-end. This actually gave me the chance to delve into Python, a language I have always found intriguing... and if I'm honest, I definitely prefer it to PHP (esp. the way PHP is going).

    Django Python Php Drupal Js
  • Tate 1b
  • Tate Albums Drupal
    1. Spoiler Clockwork Forest
    2. Gadgets
  • Paintings
  • Angeli Design
  • The Visualiser
  • Codelamp v1
  • Misted
Pebbl Canvas Old

Click to play

Canvas-ready browser Required
Pebbl Unity 0.1

Click to play

Unity WebPlayer Required
Pebbl Unity 0.2

Click to play

Unity WebPlayer Required

Click to play

Canvas/WebGL required.
Gadgets

Feasibility Test with EaselJS

Click to play!