Engineering and educating for a free and open web.
Currently at FreeAgent
Ruby on Rails developer with over two years of industry experience.
Experienced with Hotwire, ViewComponent, React, and more.
I am a full-stack Ruby on Rails engineer with over two years of industry experience and a 2.1 degree in Computer Science at the University of Sheffield. I have used Hotwire in a production environment (Turbo and Stimulus.JS) since its release in December 2020, and I am an active collaborator on GitHub's ViewComponent project.
Education, 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 change the world for the better.
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
Over time, the codebase evolved. View models and API service objects were superseded by ViewComponents and Remote Record classes. These changes influenced my opinions on software design and Rails.
working closely with the founders and product lead, from specification down to implementation
We used a variation on Shape Up methodology. I guided technical decisions with the founder and built with foresight.
integrating with external platforms including SendGrid, Mailjet, and Timekit
For this we employed webhooks and background jobs, and cached attributes locally where necessary.
enabling team members to contribute through effective documentation and mentorship
Raise.dev previously took on an early-stage designer and Rails developer, both of whom I mentored and encouraged.
maintaining deployment and continuous integration platforms, and developer tooling such as Webpack
I upgraded Webpacker and implemented CSS Modules within our Webpack setup. Our scripts linted all changed code across CI and development environments.
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:
- The Identity and Access Management API (IDAM), which is backed by a Single Sign-On (Red Hat SSO) system
- I defended a proposal I devised that influenced a critical part of the design, which ensured SSO would be securely multi-tenanted through IDAM. I quickly gained understanding of RHSSO, and passed this through my team and the wider organisation.
- IDAM was eventually integrated with the customer portal through forms that called off to the API
- Various Jenkins pipelines using Groovy and
bashthat bootstrap the necessary objects in SSO to let customers manage permissions across OpenStack, OpenShift, and the new IT Service Management product
- Collaborating with infrastructure and network teams to deploy new services and maintain the health of existing ones
Computer Science with a Year in Industry // University of Sheffield // 2016-2020
- Graduated with 2:1 honours
- Engineered a social network in Ruby on Rails with React to unify the escape room industry, based on user requirements and research
- Assisted in delivery of computer science teaching to sixth form students, and devised resources to teach Git
- Built a working simulation of the Enigma machine in Erlang
- Volunteered to support women and non-binary folk in learning web development through Code First Girls
Work in Open Source
While I was at Raise.dev, I contributed to open source regularly to improve dependencies, and maintained internal libraries. I also extracted code from Raise.dev to create projects such as
I am on the triage and commit teams for ViewComponent, and aim to support other ViewComponent users quickly and efficiently. I have contributed code to Rails, Grouparoo, and
I want to make an ongoing effort throughout my career to support the tools and communities that enable me to make a difference.