Skip to content

Grinding Gears

Tales of code crunching from the FreeAgent Engineering team

  • Development
  • Data & ML
  • Infrastructure
  • Mobile
  • Tooling
  • Security
  • Culture
  • Careers

Naming Things Is Hard

Posted by Simon Fish on 2 February 2026

Choosing good names for objects and methods in code is one of the toughest things to do as a software engineer. It comes with the great and invisible reward of simplicity – second only to having less code in the first place, having code that’s easy to reason with makes extending it and debugging it in incident scenarios all the easier. Of course, the opposite is true as well – code that… Continue reading

➼ Read other posts about general or ruby or ruby on rails or software engineering

Open laptop with book and a coffee mug.

Two Engineers, One Mentoring Story: Why Both Sides Win

Posted by Mila Kirova on 27 January 2026

We are Carme and Mila, both software engineers at FreeAgent, where we collaborate as mentee and mentor. In this blog we interview each other about our mentoring relationship. We’re hoping that our experience is universal and sharing our insights will be useful to anyone who is interested in mentoring. If you like what you read, why not give it a try! The mentee’s perspective - Carme When did you reach… Continue reading

➼ Read other posts about career progression or mentoring

A refreshing take: using serverside rendering to reduce fragile DOM state

Posted by Simon Fish on 17 October 2025

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. Continue reading

➼ Read other posts about hotwire or ruby on rails

Waiting for it with Capybara’s synchronize method

Posted by Simon Fish on 26 August 2025

Feature specs are notorious for their potential to flake. It’s possible for the results of feature specs to be inconsistent because they have to deal with asynchronous state. In a typical test environment, there’s a single Ruby process at play, so test code will be executed in order as written – we can reasonably expect one line to complete before the next is executed. But when it comes to feature specs… Continue reading

➼ Read other posts about capybara or feature specs or feature testing or rspec or ruby or ruby on rails or testing

Gummy worms wiggling around

Wiggling my way to a win

Posted by Akarsh Choudhary on 14 August 2025

The work calendar At FreeAgent, we work in intervals of sprints (2 weeks) and cycles (which are made up of 4 sprints – adding up to roughly 2 months total). In a cycle a team typically aims to complete 1 larger project, and during a sprint a team aims to complete sub-tasks of that larger project. This helps construct timelines and structure for product managers and engineers to work within. … Continue reading

➼ Read other posts about internship or ruby on rails or software engineering or testing

Uncharted Waters: a guide to exploring unfamiliar codebases

Posted by Fabricio Mougou on 12 August 2025

Some companies' codebases are massive. FreeAgent’s, with its monolith Rails application, certainly is no exception. The first time you clone one of these codebases onto your machine and see the sheer number of folders, files and complexity, your eyes might just widen and your jaw may just drop - letting out a yelp. As you click through the first few random files, noticing that you don’t understand a thing and… Continue reading

➼ Read other posts about codebase or confidence or IDE or internship or software engineering

View specs: rendering templates that are nested within a view component

Posted by georgebaker on 30 June 2025

FreeAgent makes use of the RSpec and ViewComponent frameworks for unit testing and reusable front-end components respectively. Since FreeAgent is a Ruby on Rails application, we’ll often want to write unit tests for our Rails view templates, using RSpec, i.e., a view spec. When rendering our reusable view components in our view templates, especially complex ones, testing can get a bit confusing, especially if the template is dependent on being… Continue reading

➼ Read other posts about rspec or testing or view component

The Barbican conservatory where State of the Browser is held with tropical planting growing over the balconies

State of the browser 2025

Posted by Sacha Harmsworth on 16 April 2025

State of the Browser is a small, single-track conference in London. I'd been before, and while it always has a great list of speakers, what I'd forgotten was the extremely welcoming and inclusive atmosphere. For example, it's the first conference I've been to with live captioning, and almost every talk had an accessibility section or angle. Additionally, their business model is built on sponsorship, so they're able to give away… Continue reading

➼ Read other posts about accessibility or conferences or css or design system or frontend

Mission jQuery Zero: How FreeAgent removed jQuery from our application

Posted by Colin Gemmell on 24 March 2025

Just over 3 years ago FreeAgent was running with 4 front-end frameworks, Stimulus, React with Redux, Rails UJS and jQuery and we were about to start adding Turbo to the stack. Running all these different frameworks was not sustainable and we chose to reduce our number of dependencies and first up was jQuery. We called this our legendary jQuery code, code that had helped us grow a business and provide… Continue reading

➼ Read other posts about hotwire or javascript or jquery or ruby on rails

A case of missing validation messages

Posted by James Shadwell on 13 March 2025

I’ve recently worked on two very similar issues within the FreeAgent app, which is a Rails web application. The problem that was reported in both cases was that when a user tried to submit invalid data they didn’t get any kind of message indicating what went wrong. In case it helps someone else (and let’s be honest to remind myself when I undoubtedly come across it again) I thought I’d… Continue reading

➼ Read other posts about ruby on rails

Posts navigation

« Older posts

We're totally hiring!

See our current engineering vacancies

Built with ❤️ by the FreeAgent team.