~ Available for work ~
A talented developer and key team member on significant projects for some of Storm's highest profile clients, demonstrating strong core frontend competencies and an appetite for personal growth and skill development..
Mick Perkins - Technical Lead, Storm ID
Nick is a great developer. He is not only technically proficient but also very creative and has a solutions orientated approach.
Adam Graham - Managing Partner, Saint London
A true wizard at using code and maths to create the most amazing visual animations and experiences. Honestly, look him up on CodePen.
David Storey - Head of web development, AmazeRealise
~ Available for work ~
Senior Front End Developer
10.2021 - 10.2024
Working primarily on government and public sector websites, with a focus on clear UX and accessibility.
Projects generally involved JSX prototyping within a Preact framework and subsequently working with the .Net or Umbraco teams to realise the final build.
Sometimes rapid prototyping was required, for example exploring charting libraries, the OpenSystemsLab geo-data mapping API, or creating bespoke JS/SVG tools. Where these moved into production, I managed the integration, produced documentation and provided training as required.
Internal / Scottish Government
AI Dynamic Forms
Storm ID
03.2024 - 07.2024
Building on a long-term understanding of Scot.Gov requirements, Storm undertook a project to use AI to auto-generate forms from a variety of sources.
As the lead front end developer my primary role was to ensure a coherent front end design, and provide any DOM manipulation JavaScript. In addition, throughout the project daily stand-ups provided the space for me to reflect on the UI, UX and accessibility directions the (backend driven) build was taking, and keeping it honest!
A small UX discussion about visual representaions of a user's journey through a complex chart led to me implimenting the Mermaid charting library which swiftly become a central pillar of the projects UI.
JS, Mermaid, CSS, .Net Razor template integration
Implementations are not currently public.
Scottish Government
Smart Apps - Planning and Payments
Storm ID
03.2022
A large scale Scot.Gov project to review the existing online planning permission process.
As the lead front end developer on the project I implementated the Scot.Gov design system, integrated with Storm's own design agnostic scaffold. I was responsible for ensuring that during the process of .Net implementation WCAG 2.2 accessibility standards were maintained, and providing any DOM manipulation or forms related JavaScript as required.
One such custom element was a tool for accurately mapping the boundaries of a property. For this we used the OpenSystemsLab geo-data mapping API, and you can see a test implementation via the link below.
The project is not yet live, but the Scot.Gov Digital Planning team intends to take the alpha service prototypes forward to beta and live, in line with its digital strategy.
JSX, JS, CSS, .Net Razor template integration
Implementations are not currently public.
Glasgow Life
Glasgow Club website
Storm ID
08.2023
Following the Glasgow Life transformation, Storm was tasked with a similar overhaul of the sister site, Glasgow Club.
Glasgow Club has a distinct design language from other sites in the group, so whilst the underlying scaffold is largely shared across the estate, as lead front end developer on the project, I needed to take care that all details of their design were implemented correctly.
Whilst many of the challanges from Glasgow Life had been solved for this build, the scale of tablular data presented for venues and activities proved an issue. Smaller tables (opening times) maintained visual structure and only changed width responsively. Larger tables required a visual collapsing of <td>
elements, whilst maintaining DOM structure and coherance for keyboard users.
JS, CSS, .Net Razor template integration
Glasgow Life
Glasgow Life website
Storm ID
04.2022
Storm took Glasgow Life through a complete digital transformation programme, redeveloping their main web portal, and dedicated venue and event sites.
As the lead front end developer on the project I ensured the design was faithfully implimented, and ensured accessibility standards were maintained.
Interesting challanges included the map view for the venue finder, bespoke Swiper carousel conflicts, and much longer than expected horizontal in-page navigations. However, working closely with the design, UX, and testing teams, all issues were resolved to the client's satisfaction.
JS, CSS, .Net Razor template integration
Historic Environment Scotland
Full estate cookie banner update
Storm ID
05.2023 - 11.2023
The Historic Environment Scotland (HES) estate comprises some 30+ separately maintained websites, build over many years with multiple technologies. And they all needed to have their cookie banner updated and WCAG 2.2 compliant.
My role was to adapt their existing cookie banner code for compliance (specifically ensuring no interactive elements are obscured), to be standardised for all sites, with configuration options, but without the need for an implementing developer to customise the JavaScript.
Final delivery was with a .umd
JavaScript bundle with a configuration object in a <script>
tag. I provided extensive documentation for HES developers to use, and was available for support when some implementations where less straightforward and the HES developer needed assistance.
JS, CSS, Markdown (for documentation)
Crown Office and Procurator Fiscal
Desktop booking app
Storm ID
03.2022
When the COPFS started to return to office work after lockdown, they needed a tool to allow staff to book desk space. I converted paper office layout charts into data, in JSON format, which allowed all offices / desks to be dynamically drawn and interacted with. Booking data was submitted to their existing SharePoint intranet.
JS, SVG, JSON, CSS
As the full application is an intranet, there is no public URL.
Senior Front End Developer
06.2020 - 09.2021
My role was to enhance the Secureworks Client Portal, both through conversion of elements to the React framework, and extending existing Backbone elements.
I developed a number of features through to production, leveraging Material-UI, Formik (+Yup), Axios and Redux, as well as native JavaScript.
React, Backbone, JS, Material-UI, Formik (+Yup), Axios and Redux
Senior Front End Developer
04.2014 - 03.2020
I first approached Realise as a Flash/actionscript developer looking to transition into HTML5 work. I had a little JS / CSS / HTML experience, and although I had 14 years Flash experience I was wet behind my HTML5 ears.
However, Realise had a few banner clients which needed to be transitioned to HTML5 builds, and I had made a lot of banners at Wunderman and Saint (RKCR/y&r), and the deal was struck.
I made a build pipeline in Gulp, set guides and processes, and arranged training so other team members could join the fun.
Banners production sat in Support, so I also worked on (amongst others) Standard Life Investments and Lloyds Banking Group CMS sites, using Teamsite and Ektron.
In addition I helped in development teams for multiple smaller projects, and championed team learning through skill share excercises and addressing topics like Imposter Syndrome and general mental health.
Standard Life Investments
British and Irish Lions: Game
Realise
06.2017
Drone Kick game.
Part of the "One Team. One Standard." British and Irish Lions tour sponsorship campaign.
Written with vanilla JavaScript, this is a simple target shoot game. Gameplay needed to be the same on mobile and desktop so the interaction is necessarily simple: automatic missle direction control and one click to fire.
The game can work in a standalone configuration for conferences, with a leaderboard mode to display the top ten scores on a separate sceen.
Over 64,500 plays in a month, with an average 44 plays per person.
The campaign, for which I also created display ads, was awarded BT Sport Industry Award. Best Ambassador, Influencer or Partnership of the Year.
HTML, JavaScript, GSAP-js, CSS
Sunlife
Funeral Song Generator
Realise
09.2019
A quiz that selects your funeral song, embedded as a standalone tool within the main Sunlife site.
I include this project not for it's scale or technical merit, but rather because it casts a fun light on a can-be dark subject.
It was a quick and enjoyable project which is still alive on the client site 5 years later. Now that's something to sing about!
HTML, JavaScript, CSS
Heathrow
Display banners
Realise
01.2017
At Realise I built 10s of campaigns (each with 10-14 individually sized units) for Heathrow. I really enjoy the specific challenges of making banners work. They must be lightweight, and the design and animation immediately engaging. It looks easy but it needs a fine eye for detail and a high level of trust between designer and developer.
These campaigns saw very high engagement, and presented a clean design in a very lightweight package.
I even saved enough filesize to be able to include a subtle particle system in their Christmas campaign to add movement and sparkle.
HTML, JavaScript, GSAP-js, CSS, DoubleClick with dynamic feed
Various client
Display banners
Realise
Whilst at Realise I made probably hundreds of banners for clients like Not on the High Street, Forza Racing, Channel 4, Heathrow, Standard Life, Sun Life... All fun and unique.
Some were simple image and text; there were several with videos, and a few exciting ones where I could get interactive, add particle sparkles or even dynamically create Delaunay triangles in the background. One of my favourites (sadly now lost without trace) was for Channel 4 and had a washing machine with a spinning drum, served under their strict 55kb size limit.
Mostly served through DoubleClick, but also via FlashTalking.
HTML, JavaScript, CSS, DoubleClick / FlashTalking with dynamic feed
C4 MPU XBox One Forza Racing 7. Coded venetian blind (?!) image transition
Skills development
DoubleClick Studio Certification
Realise
02.2017
I am now a certified developer for DoubleClick banners.
This means I have demonstrated my knowledge and skills to build high quality rich media ads within DoubleClick Studio, with particular knowledge regarding the development of dynamic content creatives.
In addition, I am QA certified for DoubleClick banners, so my builds are more likely to pass their audits first time, and be ready to publish more quickly.
HTML banners
Brompton
Interactive folding Brompton
AmazeRealise
05.2019
I am a huge Brompton bike fanboy, so when I heard AmazeRealise was pitching to them I had butt in, and quickly knocked up this responsively animated, interactive Brompton bike banner.
Moving through the three main steps in the bike's amazing fold, the user can also customize the paint, just like ordering the real thing (used to be).
Born out of personal passion, whilst the pitch wasn't sucessful, this illustrates how all parts of a team can pull together and produce something unexpected.
SVG, CSS, JavaScript
A small selection of the games, tools, and experiements I've made in my own time.
Visit my CodePen for more.
Skills development
Josh Comeau - The Joy of React
Personal professional development
07.2024
I took this React course to refresh and deepen my understanding of the framework. It was super interesting and great fun.
React, a little bit of Next
Wolsey Hall Oxford
Dyslexia alphabet learning tool
Personal project
07.2022
When the application my dyslexic son's learning support teacher used was closed down, I remade it for her and her colleagues.
Free to use.
JS, Canvas
Secureworks / 2022 JS13K Games
Death's Hand
Personal project
09.2021
Made during a hack week at Secureworks, with an idea that it could be an easter egg on a 404 page.
A horizontal scolling invaders game, with handrawn graphics. Vanilla JavaScript, using ES6 modules. The first two waves of invaders are hand coded to spell a message (originally relevant as a 404), then afterwards we fall back to an endless random enemy pattern generator.
I revisted this to make a JS13K Games entry. I managed to keep it hand-drawn, although I did need to cut the parallax environment layers.
JavaScript, HTML audio
2017 JS13K Games
Lost Love
Personal project
09.2017
My first entry for the JS13KGames competition.
The challenge was to write a JavaScript game in no more than 13k, all in.
I created a shadowy maze which you have to navigate against the clock to find a heart.
JavaScript, HTML audio
Oscilloscope Music
Stereo audio visualisation
Personal project
10.2019
The sound artist Jerobeam Fenderson (oscilloscopemusic.com) creates music that can be visualised through an oscilloscope. I don't have an oscilloscope, so I wrote a JavaScript player that does the same thing.
This is not an animation.
The graphics are the visual output of specially created music, produced by combining the stereo waveforms.
Featured in Steve Gardner's Tiny Web Animation Newsletter.
JavaScript, Audio API
Team skills development project
3D Easter Egg Painter
AmazeRealise side project
01.2020
I co-ran a team building challenge, to paint 3D Easter Eggs, then create a game or interface to use the resultant images.
My primary role was creating the initial paint application, using canvas for the main painting app, and live rendering the result onto an interactive 3D egg.
I also took responsibility for encouraging colleagues to contribue to the project, helping with the egg API.
JS, Three.js, Canvas, SVG
Paint an Egg - No instructions, but you'll work it out!