
Experience
Developer Advocate
Community/Codegarden site
A complete overhaul of the platform behind both the Codegarden site and the Community site
Using Umbraco 17 to create a multi-tenant Umbraco installation that allows editors to update and create new content.
Umbraco Kent Meet-up Organiser
Umbraco Kent Meet-ups
Co-organise the Umbraco Kent Meet-up with Mike Masey and Justin Neville.
Our past and upcoming events can be seen on Meetup: https://www.meetup.com/Kent-Umbraco-Meetup/
Candid Contributions Podcast Host
Candid Contributions Podcast
This is a podcast discussing the world of Open-Source with a strong .NET/Umbraco CMS flavour. As four experienced developers occupying different roles within the technical space - Contract, Tech Lead, Company Director and Dev Advocate Director - we enjoy talking about the various experiences we have in common, the latest technologies that we want to play with, the conferences we attend and many, many more things!
Candid Contributions x Umbraco Hackathons
To date we have been involved in/organised three hackathons: CodePatch, Autumn 2020 Umbrackathon for Hacktoberfest, Autumn 2022 Umbrackathon for Hacktoberfest
Founder
.NET Core based utilities application for managing subscriptions
Simplified subscription management web app built using .NET Core and Vue
CV site built using NextJs and Contentful
Short proof of concept CV site to store a "living CV" of contract, freelance and open source roles using NextJS (React). Contentful is utilised to easily update and manage content and deliver to the NextJS site using GraphQL
React Developer
Adding interactive React elements to existing site
This project involved the consumption of complex data from a pre-existing API and the display of stacked filtering and comparison metrics through React components.
Contract full stack .NET developer
Umbraco headless solution with personalised content and a NuxtJs front-end
Creating a headless Umbraco platform that is able to deliver content to multiple front-ends in a dynamic personalised format.
My role was as a lead server-side developer specialising in API and Umbraco development, and working closely with the Front-end to ensure appropriate data architecture.
This project was nominated for an Umbraco award at Codegarden 2024
Rebuilding a Wordpress site using NextJS and GraphQL
A straight rebuild of an existing knowledge-base type site using NextJS as the new platform and GraphQL to deliver the content from the client.
My role was as lead developer on the new solution including architecture, scoping, proof of concept and production.
Extending existing Umbraco site with personalised content and multi-lingual site search
Extending an existing Umbraco 9 site with new functionality to enable personalisation of content delivery (using the fantastic Personalisation Groups package from Andy Butland)
My role also included building a generic site search package designed to support general and faceted search functionality on both multi-lingual variants and single language sites, as well as contributing to a VueJS consumer of this search data.
Maintaining brownfield site built using Angular 11 and SignalR
My role included maintaining and updating an existing site that had been built using Angular 11 on and Umbraco 8 site and SignalR hosted in a .NET Core project.
Greenfield Umbraco 8 site with Personalisation Groups and VueJS
Creation and architecture for a new Umbraco 8 site based in existing designs. This project included the implementation and support for relatively complex personalisation of content for visitors from different countries or regions, this was supported with a bespoke implementation of the Personalisation Groups package from Andy Butland.
Contract senior full-stack .NET developer
v8 to v10 migration
Migration of a large multi-tenant Umbraco site from version 8 to version 10. There were a number of custom property editors the increased the complexity of this migration as well as a custom Examine Lucene implementation and a number of third-party API integrations that required porting from Framework to Core.
Contract full-stack .NET developer
Migration from Umbraco v8 to v10
Aims of the project were to move a complex e-commerce user journey from an Umbraco v8 site to a brand new v10 site. This included recreating data types with newer paradigms, improving technical quality and reducing technical debt.
Multi-lingual and localisation features
Extended an existing Umbraco 7 travel site with new localisation and multi-lingual functionality to allow for access from countries across the world with configurable options.
Future of the Back-Office Community Team Member
Moving the Umbraco Back-Office from AngularJS to Web Components
Part of the community team used as a sounding-board for the next major update of the Umbraco Back-Office technology. The Back-Office has used AngularJS since Umbraco v7 and work has begun to strip away AngularJS in favour of moving to a more agnostic implementation of Web Components; this is currently slated for a major release in late 2023.
Core Collaborators Team Member
Manage and triage PRs for large open-source project
As part of the Core Collaborator's Umbraco community team, my role was to assist new and experienced contributors to the large Umbraco open-source eco-system by feeding back on their PRs and merging to the contrib branch where appropriate
Freelance .NET Developer
Extending existing B2B site with new features
My role included working with an existing team to extend a large Business-to-Business commercial site with new features and supporting existing functionality. Server side was supported by .NET Core and the front-end was a complex VueJS implementation.
Full-Stack .NET Developer
Porting static .NET site to be a functional ReactJS app
This project involved an existing site with a large number of complex search documents (including geolocational and personalisation data) which has been previously built using .NET Framework with post backs between search pages and complex querystrings to keep track of user journeys. We rebuilt the site in a more up-to-date version of Umbraco and rebuilt the search to use ReactJs complete with complex state management in Redux.
Contract Full-Stack .NET Angular Developer
Maintained and extended a large-scale commercial AngularJS web application
Worked on a large-scale commercial AngularJS driven web application for enterprise level facilities management. Functionality operates across multiple web platforms, iOS apps and a VB desktop app – current integrations bring these disparate areas together to create a coherent structure for business requirements and future customers.
Worked as part of multi-disciplinary 25-strong team of developers to create business value and improve existing functionality in an Agile environment using SCRUM methodologies and 2 week sprints.
Contract Front-End Developer
Porting an extensive static desktop app to a responsive mobile-friendly design
Worked in both a supporting role to the team in terms of existing development and as a standalone developer working on new pages and components.
.NET Application Developer
Umbraco upgrade from v4.8 to v6.2
Umbraco upgrade that deviated into an almost full site rebuild including tidying/fixing existing issues such as memory usage and performance
Laura Weatherhead
Developer Advocate
Community/Codegarden site
A complete overhaul of the platform behind both the Codegarden site and the Community site
Using Umbraco 17 to create a multi-tenant Umbraco installation that allows editors to update and create new content.
Umbraco Kent Meet-up Organiser
Umbraco Kent Meet-ups
Co-organise the Umbraco Kent Meet-up with Mike Masey and Justin Neville.
Our past and upcoming events can be seen on Meetup: https://www.meetup.com/Kent-Umbraco-Meetup/
Founder
.NET Core based utilities application for managing subscriptions
Simplified subscription management web app built using .NET Core and Vue
CV site built using NextJs and Contentful
Short proof of concept CV site to store a "living CV" of contract, freelance and open source roles using NextJS (React). Contentful is utilised to easily update and manage content and deliver to the NextJS site using GraphQL
React Developer
Adding interactive React elements to existing site
This project involved the consumption of complex data from a pre-existing API and the display of stacked filtering and comparison metrics through React components.
Contract full stack .NET developer
Umbraco headless solution with personalised content and a NuxtJs front-end
Creating a headless Umbraco platform that is able to deliver content to multiple front-ends in a dynamic personalised format.
My role was as a lead server-side developer specialising in API and Umbraco development, and working closely with the Front-end to ensure appropriate data architecture.
This project was nominated for an Umbraco award at Codegarden 2024
Rebuilding a Wordpress site using NextJS and GraphQL
A straight rebuild of an existing knowledge-base type site using NextJS as the new platform and GraphQL to deliver the content from the client.
My role was as lead developer on the new solution including architecture, scoping, proof of concept and production.
Extending existing Umbraco site with personalised content and multi-lingual site search
Extending an existing Umbraco 9 site with new functionality to enable personalisation of content delivery (using the fantastic Personalisation Groups package from Andy Butland)
My role also included building a generic site search package designed to support general and faceted search functionality on both multi-lingual variants and single language sites, as well as contributing to a VueJS consumer of this search data.
Maintaining brownfield site built using Angular 11 and SignalR
My role included maintaining and updating an existing site that had been built using Angular 11 on and Umbraco 8 site and SignalR hosted in a .NET Core project.
Greenfield Umbraco 8 site with Personalisation Groups and VueJS
Creation and architecture for a new Umbraco 8 site based in existing designs. This project included the implementation and support for relatively complex personalisation of content for visitors from different countries or regions, this was supported with a bespoke implementation of the Personalisation Groups package from Andy Butland.
Contract senior full-stack .NET developer
v8 to v10 migration
Migration of a large multi-tenant Umbraco site from version 8 to version 10. There were a number of custom property editors the increased the complexity of this migration as well as a custom Examine Lucene implementation and a number of third-party API integrations that required porting from Framework to Core.
Contract full-stack .NET developer
Migration from Umbraco v8 to v10
Aims of the project were to move a complex e-commerce user journey from an Umbraco v8 site to a brand new v10 site. This included recreating data types with newer paradigms, improving technical quality and reducing technical debt.
Multi-lingual and localisation features
Extended an existing Umbraco 7 travel site with new localisation and multi-lingual functionality to allow for access from countries across the world with configurable options.
Future of the Back-Office Community Team Member
Moving the Umbraco Back-Office from AngularJS to Web Components
Part of the community team used as a sounding-board for the next major update of the Umbraco Back-Office technology. The Back-Office has used AngularJS since Umbraco v7 and work has begun to strip away AngularJS in favour of moving to a more agnostic implementation of Web Components; this is currently slated for a major release in late 2023.
Core Collaborators Team Member
Manage and triage PRs for large open-source project
As part of the Core Collaborator's Umbraco community team, my role was to assist new and experienced contributors to the large Umbraco open-source eco-system by feeding back on their PRs and merging to the contrib branch where appropriate
Freelance .NET Developer
Extending existing B2B site with new features
My role included working with an existing team to extend a large Business-to-Business commercial site with new features and supporting existing functionality. Server side was supported by .NET Core and the front-end was a complex VueJS implementation.
Full-Stack .NET Developer
Porting static .NET site to be a functional ReactJS app
This project involved an existing site with a large number of complex search documents (including geolocational and personalisation data) which has been previously built using .NET Framework with post backs between search pages and complex querystrings to keep track of user journeys. We rebuilt the site in a more up-to-date version of Umbraco and rebuilt the search to use ReactJs complete with complex state management in Redux.
Contract Full-Stack .NET Angular Developer
Maintained and extended a large-scale commercial AngularJS web application
Worked on a large-scale commercial AngularJS driven web application for enterprise level facilities management. Functionality operates across multiple web platforms, iOS apps and a VB desktop app – current integrations bring these disparate areas together to create a coherent structure for business requirements and future customers.
Worked as part of multi-disciplinary 25-strong team of developers to create business value and improve existing functionality in an Agile environment using SCRUM methodologies and 2 week sprints.
Articles
Umbraco: The Next Chapter
Or, an open love letter to the Umbraco community of tomorrow…
With 100 issues in the back catalogue, it would be remiss not to look to the future and the next 100 issues. Or more to say – what might the Umbraco ecosystem look like over the next 10 years or so?
Using coding errors to inspire learning
So you want to pick up a new programming language, a new technology, or even just adapt to a new paradigm within a language you already know? Or better still, you have someone in your team who needs to do these things and you want to help them, where do you start?
Prototyping in the Umbraco Backoffice
Why would I want to prototype?
You’re working on a fantastic Umbraco project. The front-end is an intuitive work of art, full of carefully designed user journeys and easy to understand processes. It’s been a dream, and the client has taken to content management like a duck to water.
Now, for your next trick, they want you to add a custom section to the Umbraco backoffice.
Is it a Dark Pattern or is it just me?
It's Friday. It's been a long week at the end of a seemingly endless project sprint, and you are weary from demos and catching production bugs to hotfix on the fly. Scrolling through your emails, you see a new message pop up in your inbox. "Thank you for your purchase" says Company X, and you feel your heart sink impossibly far down.
"Didn't I cancel that trial?" you ponder (with additional expletives) as you access their site.
Setting the stage
An empty stage. A flickering screen. A hundred eyes fixed on you. Waiting. Wondering. Sweaty palms. You open your mouth to speak; how do you start?
Public speaking can be a daunting experience, even in front of half a dozen people let alone a round century of them. Rationally, you know there is no physical danger - you will not be chased or hurt or injured, there is no reason for your heart to drum in your throat or anxiety to tremble in your fingertips - but knowing it is so, does not necessarily solve the problem.
Saving the world with Umbraco and GraphQL
"Saving the world?" I hear you ask, with a slight lilt of incredulity in your voice. "Seems unlikely."
Usually, I would agree with you. Web development is rarely life and death, and on the odd occasion you do have the opportunity to make a genuine difference to people's lives there are often so many hoops to jump through and red tape that it can feel insurmountable. However, we also have a unique platform that is wide-reaching, with a vast audience and a utility of skills that have the potential to build things as yet unimagined. This is one of those occasions where there appears to be a niche and a general lack of understanding that could be filled with helpful data and, if there's one true love for me, it's a well-ordered dataset.
Talks
Building Accessible Component Libraries
DUUG Fest 2019
Progressive Web Apps in the Real World
NDC Oslo 2018
CSS Grid: The Future of Layout
Front-End North 2018