Simon.Fish
Engineering and educating for a free and open web.
Ruby on
Rails developer with six years of industry experience.
Experienced with Hotwire,
ViewComponent, and more.
With over six years of professional software engineering experience, I deliver well-architected and sustainable code with efficiency, continuously refining my processes through learning. I find satisfaction in empowering others by sharing knowledge and opportunities. My deep affinity with tools like Rails, RSpec and ViewComponent enables me to architect and build clean and maintainable solutions.
Work Experience
Senior Software Engineer // Workflow // FreeAgent // February 2025-present
Seeking an opportunity to build on stakeholder management and strategy skills in a product engineering team, I took an internal move to FreeAgent's Workflow team. In this role, I have:
- continuously experimented and innovated with AI, introducing and normalising concepts within the engineering department at large including browser automation, skills, and parallelisation
- worked with leadership and key collaborators to ease use of AI, using personal experience and experimentation to consider how to use AI to support all stages of engineering
- led development on the rental statement imports feature, which quickly began to serve over 20% of our serviceable addressable market after release and integrated with an LLM service
- taken a technical lead role on the Quick Actions project, gathering technical requirements through spike work and discussion with the team, and understanding product requirements with the team's product manager and designer. My chosen architecture and technical breakdown of the work removed uncertainty and made Quick Actions easily portable to other pages in the app
- furthered use of real-time updates by applying the concept in our Quick Actions and Smart Capture features
- developed features across a breadth of projects including improvements to our Smart Capture offering, opening balances functionality, and migration to a new service for OCR
- begun to direct team technical strategy, using team exercises and research to diagnose the situation and establish our most significant risks and opportunities relative to prioritised work
Senior Software Engineer // Core Services // FreeAgent // April 2023-February 2025
Since my promotion to Senior Software Engineer almost exactly a year since joining the company, I have:
- collaborated cross-team to bring real-time updates to the platform, delivering documentation and training to ease integration
- directed technical work on billing 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 investigation, providing context, and documentation
- directed further thorough Rails upgrades and careful enablement of YJIT, and introduced improvements to secrets management across multiple apps
- built a thriving, inclusive engineering community that meets weekly to learn about the internal domain and wider field
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, which other engineers continue to build upon
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
Other
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. I want to make an ongoing effort throughout my career to support the tools and communities that enable me to make a difference.