Engineering and educating for a free and open web.
Ruby on Rails developer with four years of industry experience.
Experienced with Hotwire, ViewComponent, and more.
I am a full-stack Ruby on Rails engineer with four years of industry experience and a 2.1 degree in Computer Science at the University of Sheffield. I am a maintainer on GitHub's ViewComponent project and have used Hotwire (Turbo & Stimulus) since its release in December 2020.
Sharing knowledge, open source software, and making a positive difference all motivate me to do what I do best. Through these things, I aim to enable myself and others to see the best versions of ourselves.
Senior Software Engineer // FreeAgent // April 2023-present
Since my promotion to Senior Software Engineer almost exactly a year since joining the company, I have:
- directed technical work on infrastructure for new subscription add-ons while onboarding new members to the team
- promptly gathered input from product managers and designers, and planned out work to enable us to deliver ahead of schedule
- supported the resolution of production incidents through investigating and providing context
- represented and maintained information about project state in a way that enabled us to resolve unknowns quickly and accurately
Software Engineer // FreeAgent // April 2022-March 2023
I joined FreeAgent as a mid-level software engineer in 2022, forming part of the Core Services team alongside a staff and principal engineer. As a team, we have been responsible for the security, upkeep, and architectural direction of the app, in addition to common features such as subscriptions and billing.
In this role, I have:
- conducted a major Rails version upgrade, which required pre-production testing across the engineering department and cooperation with teams that were affected by changed upstream functionality
- implemented tools for monitoring deprecation warnings that arise with version upgrades
- led investigation and discussion around high-level architectural direction, which has kickstarted an effort to use Rails engines to break up the monolith
- developed a Slack bot adopted by seven engineering teams as part of their daily workflow
In addition, I have been a strong contributor to the internal culture. I have regularly led sessions and given talks at the weekly Engineering Forum and Dev Development meetings, and have been part of the hosting rota for both.
Lead Software Engineer // Raise.dev // June 2020-March 2021
I worked as the lead contributor for this early-stage startup's product offering from the inception of its Rails app. The platform allowed users to schedule and attend meetings with coaches, and integrated with several external APIs to assist with that. Ruby on Rails, Sidekiq, Hotwire, ViewComponent, and Tailwind.css drove the platform. I was personally responsible for:
- keeping a service with over 75% test coverage live for over 150 active users
- making key architectural decisions, and defining, upholding, and evolving internal code standards
- working closely with the founders and product lead, from specification down to implementation
- integrating with external platforms including SendGrid, Mailjet, and Timekit
- enabling team members to contribute through effective documentation and mentorship
- maintaining deployment and continuous integration platforms, and developer tooling such as Webpack
- improving dependencies, and extracting and maintaining open source libraries
Software Development Undergraduate // UKCloud // July 2018-August 2019
As part of a Scrum team of six, I was responsible for the company's software built with Ruby on Rails. This includes the customer portal, which faced over a hundred public sector companies including Genomics England. I was responsible for:
- building our Identity and Access Management API (IDAM), which was backed by a Single Sign-On (Red Hat SSO) system
- defending a proposal I devised that influenced a critical part of the design, which ensured SSO would be securely multi-tenanted through IDAM
- developing and spreading understanding of RHSSO through my team and the wider organisation
- integrating IDAM with the monolith
- developing Jenkins pipelines using Groovy and
bashthat interfaced with SSO
- collaborating with infrastructure and network teams to deploy new services and maintain the health of existing ones
I have a BSc in Computer Science with a Year in Industry (2:1) at the University of Sheffield, where I studied from 2016-2020.
I help to maintain ViewComponent alongside other developers inside and outside GitHub. I aim to support other ViewComponent users quickly and efficiently, and I am regularly consulted on its use internally at FreeAgent. I have also contributed code to Rails, Grouparoo, and
ruby-jwt. I want to make an ongoing effort throughout my career to support the tools and communities that enable me to make a difference.