Skip to content

Grinding Gears

Tales of code crunching from the FreeAgent Engineering team

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

We're hiring! Check out our vacancies 👈

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

Switching to Swift: The iOS Migration

Posted by Orlena Currie on 14 August 2025

Apple released the SwiftUI framework at their Worldwide Developers Conference (WWDC) 2019. The new framework was a significant shift in iOS app development, promising faster development and more reactive user interfaces (UI). At the time, the FreeAgent iOS codebase was in much the same state as other iOS apps - using UIKit, an entirely different framework that had been in existence since 2008. Whilst UIKit was, and still is, a… Continue reading

➼ Read other posts about internship or ios or swift

We're hiring! Check out our vacancies 👈

Building the bridge from education to real-world application

Posted by Owen Harrison on 13 August 2025

You’ve just hung up the phone and you’ve received an offer for an internship. The excitement is overwhelming as the countless months of applications, assessment centres, interviews and rejections become obsolete. You’ve done it! This is your first step gaining valuable experience about being a software engineer and bridging the gap from theoretical university to real-world application. You’re faced with excitement and questions. What is it like to work on… Continue reading

➼ Read other posts about career progression or internship or software engineering

Building the building blocks: My summer on FreeAgent’s Design System Team

Posted by Jessica Petherbridge on 13 August 2025

As someone hoping to find a job within the UI/UX field of computer science, I was amazed at how little I knew about how a design system team works. My classmates at university were the same. They too didn’t realise the scale of these teams and had never come across the phrase “design system”. This internship has been a crash course in why design systems are so important. I think… Continue reading

➼ Read other posts about career progression or design system or internship

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

Creating re-usable descriptions in dbt with Jinja docs

Posted by Rob Brown on 11 August 2025

If you're working with dbt and find yourself copying the same column descriptions across multiple models, this post is for you. We'll show you how to eliminate that repetition using the Jinja doc function! Continue reading

➼ Read other posts about analytics engineering or dbt or documentation or etl

The Engineering Behind Salesforce at FreeAgent

Posted by John Tsang on 28 July 2025

For nearly 15 years, Salesforce has been the engine room for our customer data here at FreeAgent. Since we first brought it on board in 2011, it has grown from a straightforward CRM into a complex, deeply integrated platform. While one blog post cannot cover every detail, we hope this gives you a better understanding of how we leverage Salesforce and the engineering approach we use to maximise its impact.… Continue reading

➼ Read other posts about salesforce

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 Other Copilot: Coding with AI

Posted by Simon Fish on 26 June 2025

It seems Copilots are ten a penny these days. While our CoPilot accountant partners are a human way to support you using FreeAgent, the flight term has really taken off(!) as branding for AI tools, GitHub’s Copilot being just one of them. The rise of AI tooling for developers has sparked a lot of discussion and controversy as of late. It’s also seen rapid development and innovation, with several code… Continue reading

➼ Read other posts about AI or GenAI or LLM or ruby or ruby on rails or testing

Posts navigation

ÂŤ Older posts

We're totally hiring!

See our current engineering vacancies

Built with ❤️ by the FreeAgent team.