Software Engineer
Product Designer
Working with innovative brands to prototype, refine, and ship high-performance digital products to millions.

My career in fast-moving startups has given me an all-hands-on deck approach to product. I’m part of a growing team working toward my goal of becoming an engineering lead where I can use my understanding of user experience, my love of development best practices, and my experience working with diverse teams to take on new technical challenges.

What projects have I worked on?

I've been involved with over 106 technical and design projects, 6 of which I can't talk about yet. I'm particularly proud of the following projects, which I feel represent the work I do best.

Cruise Nation DELTA Web Framework

I developed a custom JavaScript framework based on Backbone.js to modernize a legacy front-end platform. Inspired by early versions of Next.js, React and Angular, this framework enabled large pages to be segmented into smaller, more manageable components.

Tipstrr Research & Innovation Grants

During Tipstrr's acquisition period, I helped secure substantial funding for the company from UK government research and innovation grants. I compiled over a dozen detailed case studies and technical analyses, showcasing how our team successfully navigated challenging technical, experiential, and budgetary hurdles over several years.

Planet Sport Properties Auditing

I conducted detailed audits of Planet Sport platforms to pinpoint performance bottlenecks, high-cost areas, SEO weaknesses, and UX improvement opportunities.

DVLA VME Agile Nexus Ways of Working

A Developer Experience, Documentation, Mentoring project

DVLA Rails developer on-boarding

A Developer Experience, Documentation, Mentoring project

Planet Sport Bet Landing Pages

A Figma, TypeScript, Next.js, React, Design Systems project

Tipstrr Checkout Experience Redesign

A UX, Figma, Stripe API, TypeScript, Tailwind, Angular project

Tipstrr API Redevelopment

A TypeScript, C#, .Net, Node.js project

Tipstrr Tip Widget

A UX, Figma, TypeScript, Tailwind, Angular project

Tipstrr Platform Modernisation

A TypeScript, Tailwind, SASS, CSS, HTML, Angular, Node.js project

Cruise Nation Checkout Redesign

A UX, JavaScript, Backbone, React, SASS, CSS, HTML project

Cruise Nation Navigation Experience

A UX, JavaScript, Backbone, SASS, CSS, HTML, Pug project

Mitsubishi E-Bytes E-Learning

A UX, Articulate Storyline, Adobe Photoshop, Adobe Illustrator project

What skills and technologies do I use?

After what feels like a lifetime of working in technology, I have a growing list of skills I lean on to get things done. Here are the skills and technologies I feel most comfortable with.

TypeScriptUXFigmaHTMLCSSAngularSASSReactTailwindNext.jsJavaScriptNode.js

Who are the organisations I've worked with?

Senior Software Engineer

Driver & Vehicle Licensing Agency

- Current

I work on high reliability products and secure services used by millions of public customers, private businesses, and international clients, many with sensitive data requirements and time-critical workflows.

Find out how I'm adapting to enterprise work at DVLA

I develop solutions with full-stack JavaScript, Ruby on Rails, Docker, and make use of serverless step-functions on the AWS platform.

I now also support critical services in production, triaging issues as part of the on-call engineering support team and ensuring our team’s output is secure, tested, and audited to meet the high standards of the DVLA.

Here are some of the things I've achieved at the DVLA so far:

  • Improved legacy projects: I have been recognised with an Exceptional Contribution Award for the work I have been doing to modernise and maintain several out-of-date services, tackling reliability problems with my team and pushing to adopt industry-wide practices such as type safety and code standardisation. Utilising the expertise of long-standing staff, we’ve upgraded core libraries and gems, solved compilation problems on newer deployment targets, implemented more robust automated checks of source code on commit, and ensured thorough unit testing coverage. So far this has led to a substantial decrease in on-call support tickets for our Rails projects, has led to several underlying bugs and issues being uncovered and fixed, and has improved the security, stability, and maintainability of our codebase.
  • Provided mentoring and support: I support our lead developer and delivery manager by preparing project plans, work spikes, and documentation. I’m working on improving my mentoring skills by helping teammates through pair programming and code reviews, sharing modern best practices and innovative solutions, and ensuring our team meets our stakeholders' high standards.
  • Pushed for high quality: I have supported my squad’s ongoing efforts by documenting clear testing procedures and have worked with the SDETs to cover edge cases in our staging and test environments. I have made efforts to push back work for discussion with the business analysts when appropriate to ensure our applications maintain a high bar for quality. I have held reviews when working on large chunks of work to encourage buy-in from the squad and ensure everyone has the chance to discuss design implementations before they are finalised.
  • Contributed across squads: I stay up to date with work across the organisation by joining in the regular cross-squad discussion groups, contributing with industry insights where I can, and sharing solutions to common pain points encountered by my squad. I have begun exploring how I can contribute to the development of our common libraries, recently working with other squads to implement changes required for the Crown logo change ahead of time which freed up senior resources and made the implementation painless for all Rails apps.

Lead User Experience Engineer

Planet Sport

-

I tackled product innovation at one of the UK's top sports journalism brands, focusing on creating high-quality web experiences and mobile applications with millions of users annually.

Read about my impact on product development at Planet Sport

I developed and managed the production of new features using a range of technologies, including Next.js, Angular, TypeScript, Node.js, and WordPress.

While in this role I managed team activities, conducted reviews, led meetings, and assigned tasks while keeping stakeholders engaged and up to date. I also ensured our work met high standards and provided guidance to established projects to ensure they met business needs. For front-end and infrastructure projects, I used services like Vercel, GitHub Actions, LightSail servers, AWS S3, and CloudFlare to streamline workflows, cut costs, and enhance the performance of our web apps and sites.

Post-acquisition, I worked hard at Planet Sport to ensure business continuity while taking on demanding new workloads:

  • Planet Sport Bet Promotional Sites: In collaboration with the design team, I developed microsites for SEO and marketing, integrated with our bookmaker app to enhance its visibility and search rankings. We focused on user engagement through targeted promotions and offers. The sites were built using Next.js, with serverless functions to pull data from internal APIs for presenting promotions. This initiative resulted in a unified monorepo for future projects, sharing configuration, assets, and components, enabling our marketing team to swiftly deploy custom pages and gather insights independently.
  • Stripe Payments & Subscriptions: Post-acquisition, I collaborated with the founder and backend team to switch Tipstrr's payment system from PayPal to Stripe. I crafted the user interface for recurring payments, focusing on clear error and success notifications, and enabling users to manage their subscriptions easily. This new system resulted in significant decreases in cancellations, payment disputes, and refund actions for the support team.
  • Performance and security auditing: I conducted detailed audits of Planet Sport platforms to pinpoint performance bottlenecks, high-cost areas, SEO weaknesses, and UX improvement opportunities. To streamline this process, I created a repeatable testing plan, employing off-the-shelf automated tools like Chrome's UX Report, WebPageTest, Wave, and GTMetrix, complemented by manual testing for finer details using Chrome's Dev Tools to examine network requests and code execution. My efforts in rapidly addressing these issues led to cost savings and better search rankings for many Planet Sport properties.
  • Writing Research & Innovation grants: During Tipstrr's acquisition period, I helped secure substantial funding for the company from UK government research and innovation grants. I compiled over a dozen detailed case studies and technical analyses, showcasing how our team successfully navigated challenging technical, experiential, and budgetary hurdles over several years. These successful grant acquisitions were a major achievement, enabling continued innovation and affirming the team's skills and efforts.

What did my colleagues have to say?

Pip was a pleasure to work with for almost three years. When working together at Tipstrr and Planet Sport, he surpassed expectations on a daily basis. Having initially joining as a front-end developer, it was abundantly clear from an early stage that his understanding from a UI/UX point of view was exceptional. Pip has helped our product flourish by helping us maximise its potential, its ease of use and its front-end structure. Pip was almost always involved in the top-level discussions with product development and added real, genuine value. It was a genuine pleasure to have him on our team.

— Damien Fearn, Tipstrr Founder via LinkedIn

I have found Pip to be a standout talent in both his approach and execution as a front-end developer. Pip is a cordial, multi-talented nice guy who can juggle various complex projects with aplomb. Pip made a dramatic impact in the productivity level of our team when I had the pleasure of working with him at Planet Sport. As a team member or a leader, Pip earns my highest recommendation.

— Nik Keene, Chief Product Officer at Planet Sport via LinkedIn

Senior Front-End Engineer

Tipstrr

-

I led front-end development of this data-heavy real-time sports tipping platform, collaborating with leadership and power-users to design new features and prototypes, create back-office tools, and improve the product experience for thousands of users.

You can bet that I improved the Tipstrr customer experience

I improved account management and checkout processes, brought stats and insights to life with intuitive designs, and boosted sign-up and partner click-through rates with engaging advertising techniques.

I embraced brand new web technologies and engineering architectures, gaining expertise in TypeScript, Angular, and Next.js. I enhanced platform performance and reduced operating costs by implementing bespoke solutions using edge functions, middleware, caching layers, and other backend-for-frontend techniques.

Innovation at Tipstrr happened in incremental sprints, but here are some of the significant projects:

  • Tipstrr Add-Tips Workflow Enhancement: To improve the betting process on our platform, I led a redesign of our platform's betting process, drawing insights from our sports-betting staff and power users, and focusing on user-friendly design and efficient event discovery. By streamlining client-side data management and implementing a CloudFlare-backed caching system for our odds, I improved performance for thousands of users and saved costs on our primary servers by handling millions of monthly odds requests with no round-trip. Altogether this feature overhaul transformed the user experience and significantly boosted user engagement, quickly became the most-used section of Tipstrr.
  • Tipstrr Competitions App Revamp: I replaced an outdated competitions feature with a flexible, Next.js-based white-label app, usable for both B2B and internal purposes. I oversaw everything from architecture to the design and implementation of front-end components and serverless data functions. Using TypeScript, React, and Tailwind, I created features including secure authentication, leaderboards, timetables, and a competition management dashboard. I integrated additional authentication options, including oAuth and a Web3 token system for NFT-based entries. Later enhancements included real-time odds, diverse scoring methods, a custom event results dashboard, and user-focused features like an avatar generator and personalized messaging. This app has had successful entries from thousands of users in various competitions over the last few years.
  • Tipstrr Alerts app: I created a mobile app for Tipstrr using Flutter and Dart, enabling real-time push notifications on iOS and Android via Firebase Cloud Messaging. The app allowed users to sign up, manage their account, view their feed, and get instant notifications. Feedback from power users, gathered through TestFlight and Google Play beta releases, led to many app features being integrated into the main Tipstrr web app. The web app was later converted into a standard Progressive Web App (PWA) when Safari caught up to modern web standards, avoiding further costly app development while still giving power-users a great notifications experience.

What did my colleagues have to say?

I hired Pip as a front-end developer in October 2020 and I would highly recommend him to any organisation looking to greatly enhance their development team. Since day one he has shown a high level of work ethic and technical expertise which has been demonstrated in his productivity and quality of work. He has proven himself to be a vital member of the company, and his passion for learning has regularly resulted in new ideas being translated into a final successful product of work. In my experience it is very rare that you come across someone with his level of expertise on the both the UX side and the coding side of front-end development.

— Mark Rees, CTO at Tipstrr via LinkedIn

Front-End Engineer

Cruise Nation

-

I’ve designed and developed key features for an award-winning cruise travel e-commerce site.

Explore how I shipped great experiences at Cruise Nation

Building visually appealing and user-friendly checkout and marketing experiences, my work allowed Cruise Nation to retain an edge against well-funded competitors, winning Best Cruise Holiday Retailer at the 2019 British Travel Awards for the second year running.

In-between my UI work, I developed automations for end-to-end testing, built a staging preview system to give leadership a better way to sign-off on UI changes, and found innovative ways to improve the performance of our legacy platform and optimise the user experience for mobile users. These efforts dovetailed with my work to improve deployments processes and significantly automate repetitive tasks, saving valuable time for the web and digital team.

This is a selection of the high-impact projects that I led while at Cruise Nation:

  • Automated deployment processes: Initially set up to help convert CoffeeScript into compiled JavaScript, I developed a Gulp and Browserify based workflow that enabled the use of SCSS, Pug, and many other convenient front-end technologies in production. This build process was eventually automated with BitBucket pipelines and converted to Webpack, deploying the resulting static files to the CDN. By incorporating backups and updates to the legacy system within the build process, I was able to implement advanced framework features like build-time pre-processing, hashed filenames, and modern JavaScript syntax with automatic polyfills. After automating what was an error-prone deployment process, I later implemented checks of key pages and site features using Cypress to ensure each deployment had gone smoothly.
  • Custom SPA framework: I developed a custom JavaScript framework based on Backbone.js to modernize a legacy front-end platform. Inspired by early versions of Next.js and Angular, this framework enabled large pages to be segmented into smaller, more manageable components. It supported lazy loading of JavaScript, JSON, and SCSS, activating as users interact or when content updated, and included a data handling layer for on-demand loading and caching of extensive ship and regional descriptions, boosting performance. Additionally, I took advantage of the underlying platform's capabilities for A/B testing to provide live developer previews. Its continued use to the present day can be attributed to broad browser compatibility, great end-user experience, and developer-friendly design.
  • Cruise Nation checkout redesign: I redeveloped the process using React within the established SPA framework. This approach allowed for the clear display of error states and created a predictable, testable user experience. To integrate with the underlying platform, I transformed proprietary template tag output into a JSON-like script available to the data-layer, a method similar to that used by many modern server-side rendering (SSR) solutions. The new checkout included various custom components, such as hotel and flight details, animated price calculators, and an interactive cruise itinerary map. This redesign effectively worked around the underlying platform’s limits and resulted in more users checking out online.

What did my colleagues have to say?

I started working with Pip in 2018 when he joined my team at Cruise Nation. I became clear very quickly that Pip would be an asset to us and whilst he was employed by Cruise Nation he took a leading role in developing many aspects of the business's online presence. Pip has a thirst for emerging technology and enjoys learning new skills. He's driven, hard-working, reliable, and will always offer a valued opinion on any given situation. I have absolutely no hesitation in recommending Pip. He's a great guy to have around and will never let you down.

— Neil Page, Head of Digital at Cruise Nation via LinkedIn

Junior Front-End Engineer

Thinqi, formerly CDSM Interactive Solutions Ltd

-

I prototyped interactive content and designed graphics for high-engagement, fully interactive e-learning experiences used to train the staff of global brand names like Boots, Honda, and Mitsubishi.

Learn how I helped improve student outcomes at Thinqi

I then got involved with the core Thinqi web application and its related projects as a developer, joining the agile team and developing responsive, accessible components used by students, teachers, and administrators.

I worked closely with product managers and designers to adapt to evolving business requirements and contribute to the specs for the RESTful APIs developed by backend developers, always ensuring a consistent, well-tested user experience.

These projects helped me grow as a designer and kicked-off my career in digital engineering:

  • Mitsubishi E-Bytes Courseware: While not a strictly front-end web development project, the Mitsubishi E-Bytes project was still challenging from a technology perspective. Utilising the primitive scripting system in Articulate Storyline, I took care of implementing complex state-driven animations, quizzes, and interactive presentations designed to engage the learner and break the mould of stuffy, powerpoint-esque learning experiences, which resulted in being brought into the development team as a developer and Mitsubishi Japan complimenting the UK team on their exemplary e-learning.
  • Standardised E-learning design system: I collaborated with the other graphic and senior instructional designers to develop a design system for rapidly building E-Learning products in Articulate Storyline, basing the design system on a mixture of Google's early Material Design Guidelines, Microsoft's Metro design system, in-house pedagogical theory, and user experience research from past products. The result was a shareable design document and accompanying Storybook file, including a library of fully interactive quiz components, UI elements, and composed pages which could be styled quickly to match a specific brand's identity. Using the system, the team decreased the number of designers needed for each project and still reduced the time taken to deliver exceptional learning experiences from several months to just a couple of weeks.
  • Thinqi Tag Search Component: Based on UX team designs, I headed up development of a new search component that would be used across all Thinqi powered sites. The search was built around the idea of filters-as-tags, allowing learners to quickly build up and change complex search queries which fetched results from .NET APIs. Built in CoffeeScript, jQuery, and Backbone, the experience taught me a lot about object-oriented programming techniques and required a lot of communication with the UX and senior development team to accomplish.

What did my colleagues have to say?

Phillip is an extremely professional, competent and efficient individual who delivered his work to a high standard and always met the time constraints and brief. I would not hesitate to recommend him.

— Kathryn Stevenson, Project Manager at Thinqi (CDSM Interactive Solutions Ltd) via LinkedIn

I first met Phillip whilst assembling a junior team at CDSM. Straight away it was clear that he would be an asset to the team and the company. He had all the design talent we were looking for, but what really stood out was his technical mindset. This combination of creative thinking and ability to execute and develop proved to be extremely powerful. [...] Phillip had a great deal of input on processes and practices often streamlining and improving current approaches as well as creating efficient new processes for unchartered domains.

— Jay Price, Senior User Experience Designer at Thinqi (CDSM Interactive Solutions Ltd) via LinkedIn

Discover more about me and my work

Key knowledge areas and expertise

  • Advocating for excellent user experience, the benefits of design systems and engineering standards, and working towards industry best practices.
  • Accessibility & performance auditing, telemetry + observability logging, SEO, and event-driven marketing approaches.
  • Browser automation and end-to-end testing in JS with Cypress, Puppeteer and Playwright, and in Ruby with Cucumber / Selenium WebDriver
  • Cross platform and mobile-device development techniques including debugging, optimising, and modernising legacy web systems.
  • Full-Stack frameworks including Ruby on Rails, Serverless, Next.js, Angular, React, and Express.
  • Designing APIs, authentication layers, proxies, and other middleware with Node.js and Lambdas.
  • Developer CI tooling and build pipelines using Docker, Drone, Jenkins, GitHub Actions, BitBucket Pipelines, and shell scripts.
  • Styling with CSS3+, SASS, and modern technologies like CSS Modules, CSS-in-JS solutions, and Tailwind.
  • Test-driven web application development in Ruby, TypeScript, and JavaScript.
  • Workload and process management, continuous delivery using Agile, Kanban, and tools like Jira, Target Process, and Monday.

How I like to work

I value clear communication, creative problem-solving, empathic leadership, and productive teamwork. I'm deeply passionate about the web and have grown my skills in software development through a combination of self-directed learning, collaboration with colleagues, and hands-on experience in real-world scenarios. While I thrive on fast-paced efforts like greenfield projects and prototypes, I also enjoy working on and improving established sites to resolve problematic issues and bugs.

Helping the team focus on the user's needs

Specialising in front-end development and the user experience, I have worked with varied and diverse teams on every part of the product lifecycle. I’ve been in the board room advising non-technical decision makers when product requirements have been ideated, have led working groups to plan and prototype new functionality and services, have co-ordinated in-person and remotely with analysts, designers, and developers to guide the delivery of full-stack, data-rich apps, and have brought projects to life by leaning into the knowledge of my teammates and peers.

The impact of life-long learning at work

I am always seeking to learn new things, experiment with new ways of working, and to help others learn. I enjoy putting together documentation, guides, and collected insights wherever possible, and am often taking notes and sketching diagrams during meetings and conversations to aid my knowledge-gathering process and to share with the team later. I enjoy hosting meetings, presenting on behalf of my team, and bringing people together to solve problems and co-ordinate work.

How I contribute to a positive team culture

Alongside my hands-on engineering contributions, I love building lasting relationships with my peers, discussing design improvements and functionalities, reviewing code and design prototypes, and establishing best practices to help onboard new team members. I take pride in helping my team-mates succeed, and always make the effort to ensure their work is visible and their voices are heard.

My experience as a technical lead

Bringing industry best practices to work

Within my first few months at the DVLA, I worked with senior team members across the Vehicles department to learn how the organisation makes use of AWS and the Serverless Framework. There I began to overhaul a B2B project which used AWS S3 file events to drive JavaScript lambdas as part of an AWS Step Functions state machine. I identified key issues with our tooling, implementing pre-commit checks to identify quality errors earlier in the cycle and then brought in type-checking through JSDoc annotations which gave developers access to modern features like IntelliSense as a bonus.

These quick wins helped to reduce wasted builds, led to several bugs being fixed, and improved the team’s velocity. I continued to increase confidence in the codebase by improving our code coverage, sharing my knowledge of testing best practices and how to write effective JavaScript. I helped the team to get moving, pairing up with developers and SDETs to review code which took pressure off the lead engineer.

I then took the lead on investigating and migrating the app over to the AWS V3 API and updating other node dependencies to bring the project in-line with the rest of the DVLA’s serverless projects.

Rebasing our process to focus on team effort

I later investigated, planned, and co-ordinated work to bring several Ruby on Rails projects up to date, providing clear estimates and targets via stakeholder-friendly Confluence pages and splitting work up into actionable tasks for the team on Jira.

For the first of these projects, I gathered insights from other DVLA apps and their engineers to simplify our codebase, make use of new patterns available through common libraries, modernise our Drone build and local development scripts, and contributed to the maintenance and redevelopment of the automated E2E test packs. Throughout this effort, I have opened up my process by holding catchups with the squad to discuss progress, share my insights, and scheduled work to reduce the risk from releases while ensuring continuous improvement.

Following this success, I co-ordinated the uplift of another Rails project, completing the upgrade process in a fraction of the time while setting a higher bar for quality. These improvements have resulted in a drastic reduction of Pager Duty alerts and out-of-hours support requests, with many underlying issues being fixed across our project backlog, and we now have a solid template for future Rails projects.

In addition to engineering and mentoring contributions, I have contributed clear documentation for our uplifted projects, writing and editing test process and developer onboarding guides which are much used and highly praised. The improved docs include multi-platform steps, workarounds for known issues, and have already helped reduce the setup time for several contractors and senior developers to a single morning of easy-to-follow instruction.

Hands-on expertise applied at scale

While at Planet Sport I led and co-ordinated remote teams of designers and engineers across a variety of projects. I turned project plans and design mock-ups into tasks for the development team based on executive priorities and gave instruction and feedback to the design team to improve the feasibility based on data availability. We hosted Laravel and WordPress APIs on Hetzner cloud and Digital Ocean droplets as well as Vue and Next.js sites which were split between Digital Ocean and Vercel.

I helped the engineering team resolve issues with their cloud configurations to improve performance and made great use of Vercel serverless functions to bring APIs together, providing a more performant user experience and reduced costs by shortening round-trip times and caching data in their regional edge network.

Reducing cost and improving reliability in real-time

At Tipstrr I made use of effective and low-cost solutions from Cloudflare and Vercel including routing, caching, and firewall products. I was able to harden our site security configuration and reduce the load on our servers from web crawlers, improve site performance for our users and helping us avoid burst fees on our database through cheap and practical infrastructure choices.

I also maintained our front-end AWS Lightsail instances and our deployment processes, migrating from a Team City setup to a self-hosted GitHub actions system which (similar to Drone) kept the config within the codebase. I was able to remove our aging build servers altogether and further reduce our monthly overheads.

I also experimented with on-the-fly image optimisation tooling offered by Bunny CDN and Cloudflare Workers to improve the client-side performance of our AWS S3 image hosting.

©️ Phillip Rees

Built using VSCode, Monokai.pro, Next.js, Tailwind CSS, TinaCMS, and Calendly. Hosted on Vercel, versioned on GitHub.