Work Experience
This is a summary of my professional work experience, and the projects I have worked on.
The Guardian
Senior Software Developer | April 2022 - Present | London, UK
Full Stack Software Engineer | September 2019 - April 2022 | London, UK
Identity Team
About
Technical lead on the Identity & Trust team within the Product and Engineering department at the Guardian. The team manages the authentication and identity systems at the Guardian, which includes sign in, account creation, account recover, and user data management.
The team is responsible for the health and performance of the identity system, ensuring that it is secure, scalable, and reliable. We work closely with the editorial and commercial teams to provide a seamless experience for our users to help them get the most out of what the Guardian offers.
During my time on the team, I have worked on a large scale migration from our in-house legacy identity platform to a hybrid model where the backend services and data store is provided by a third party identity-as-a-service provider, while keeping the user interfaces and interactions between the reader and the Guardian in house. This work is being done to modernise the identity platform, improve security around reader data, and enhance the reader experience for our readers.
I've also helped to implement key identity standards with Guardian systems which include OAuth 2.0, and OpenID Connect, migrating our user facing applications away from a legacy in-house non-standard authentication system to these industry standards. This allows us to provide a more secure and reliable authentication system for our readers, and improving the developer experience for our internal teams when building new applications.
I also am the top contributor to the Gateway project, which is the full-stack identity portal that facilitates user authentication and identity interactions between the reader and the Guardian, and allows applications to authenticate and authorise users using the OpenID Connect standard. Gateway is primarily a TypeScript, React, and Express.js application, utilising the Guardian Source Design System components, and Emotion CSS-in-JS library for UI/design. We use Jest for unit testing, and Cypress for integration tests and E2E tests.
Alongside Identity related projects, I have also worked on the main Guardian website, the discussion platform, and contributed to numerous libraries and services that are used across the Guardian's digital products.
I featured in an 2021 engineering blog post where I reflected on my career and experience at the Guardian.
Technologies/Platforms
TypeScript, React.js,
Node.js, Scala,
PostgreSQL,
VCL
AWS, Fastly
Net Natives
Software Developer | September 2015 - September 2019 | Brighton/Portsmouth, UK
Edurank
About
Edurank was the source for social media analytics in the education sector. Institutions use Edurank to view their social activity as well as their competitors’ to benchmark themselves against the sector. The paid for Enterprise SaaS version allows institutions to get a deep dive into their data by comparing their social media metrics down to an hours granularity against any number of competitors and sectors.
The client side uses Angular JS to build the application which connects to an API server built using Express.js with a MongoDB database. I am the lead software developer on Edurank, and worked on the full stack, developing much of the client and server side, as well as any backend applications such as workers and databases.
Technologies/Platforms
AngularJs (1.X), Node.js,
MongoDB, Express.js,
Redis
Heroku, AWS
Other Work
Alongside leading the development of Edurank, I’ve worked on a number of projects within Natives. Some notable projects are described below.
Akero
Akero is used by education marketers to convert more student enquires into enrollments. A unique combination of features that creates the perfect advertising infrastructure. So we can track and report on all the data that matters, from impressions to the individual whilst improving conversions through personalisation and A/B testing.
One of the main components I've contributed to the product is a “Social Performance Analytic” feature, allowing our users to compare social media statistics from Facebook, Twitter, Instagram, and YouTube for themselves and their competitors.
Netsuite (SuiteScript)
Extending functionality of the NetSuite CRM using it’s SuiteScript platform and integrating that within internal processes.
Google Apps Script & AdWords Script
I used Google Adwords Scripting to improve the workflows of, and provide more information to, our Paid Media Specialists and Advertising Technicians within our company.
Working with Google Apps Scripts to again integrate internal workflows with the Google cloud infrastructure (Google Drive/Sheets/Docs etc.), such as creating an app which syncs data between our CRM and Google Drive.