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.
Hi, I'm Simon.
I'm a software engineer with six years of industry experience and a Computer Science degree. I'm with FreeAgent as a Senior Engineer in the Workflow team.
I'm motivated to:
- continuously improve my use of a breadth of tooling to build robust solutions in Rails
- support free and open source software including ViewComponent
- learn new things, and use those findings to teach and empower others
I'm on the committer team for ViewComponent, and I've used Hotwire (Turbo and Stimulus) extensively. I've got a diverse array of experience and a love for the Ruby on Rails ecosystem. I've effectively integrated into a team that maintains and builds on a longstanding Rails monolith.
I'm a fast learner with an open mind, so I'm ready to learn new tools and ways of working. I've got a reputation for efficiency, which I'll always be careful to balance with thoroughness.
Blog
Check out my posts on the FreeAgent Engineering blog.
Spec-tacular: ways to think about writing expressive RSpec
I've always enjoyed the interface given to us by RSpec. RSpec, when used to its fullest, gives us ways to extract out test setup and teardown, and draw focus to how the output of the test should change given the variable we're changing.
Naming Things Is Hard
Choosing good names for objects and methods in code is one of the toughest things to do as a software engineer.
A refreshing take: using serverside rendering to reduce fragile DOM state
Hotwire is central to how we drive the frontend at FreeAgent, and Action Cable allows us to send Turbo Streams as users browse the site, adding a layer of richness to the user experience.
Waiting for it with Capybara's synchronize method
Feature specs are notorious for their potential to flake. The synchronize method is a handy tool for dealing with asynchronous state.
The Other Copilot: Coding with AI
It seems Copilots are ten a penny these days. The rise of AI tooling for developers has sparked a lot of discussion and controversy as of late.
Subject to Change: Effective Use of RSpec
I talk about how to use the `subject` helper and other RSpec goodies to improve your tests.
Simon is an extremely fast learner and a creative thinker, who has become a highly effective part of our dev team.
--Ben Saunders, Lead Software Engineer, UKCloud Ltd.
Their genuine passion to help both the local and global tech community, mixed in with their impressive technical knowledge and skills, has made it a pleasure to work with them.
--Pauline Narvas, Code First Girls course ambassador
They will be a powerful addition to any development team.
--Audrea Cook, Software Engineer, Raise.dev
Simon has an ability to take a complex task [...] and not only turn it around extremely quickly, but also to apply a level of thought and ingenuity of someone a number of years more experienced.
--Andy Sykes, Formerly of Pera Technology