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 šŸ‘ˆ

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

Persisting nested form attribute indexes through Turbo updates

Posted by georgebaker on 8 January 2026

Introduction We recently encountered an interesting problem when using Turbo Streams to update part of a complex nested form in FreeAgent’s main Ruby on Rails web application. For those unfamiliar, nested forms allow a user to enter data relating to both a main parent object and its associated objects. This could be, for example, a contact form which also supports creating and editing multiple associated addresses. To illustrate the problem… Continue reading

āž¼ Read other posts about ruby on rails or software engineering

How we Use Dagster Automations in our Data Pipeline

Posted by Delphine Rabiller on 10 December 2025

Introduction The heart of a reliable data platform are robust and automated data pipelines. As our team migrates our data pipelines to Dagster, re-architecting our automation logic is a crucial task. Dagster offers condition-based approaches to creating or updating a data asset (table or file), moving us toward a modern, asset-centric view of data. This post details the three primary automation strategies we considered and implemented (so far) in Dagster—Schedules,… Continue reading

āž¼ Read other posts about analytics engineering or dagster

We're hiring! Check out our vacancies šŸ‘ˆ

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

Streamlining DBT Macro Testing: A Unit Test Approach with Pytest and Jinja

Posted by Paul Barber on 30 September 2025

Introduction Data Engineering at FreeAgent has a mission to ensure our colleagues and customers have reliable, accurate, and secure access to the data they need. Our migration to Dagster, DBT, and DLT is a key part of that. However, it has raised numerous questions, including how we test DBT Macros. This post dives into how we're tackling this by leveraging pytest and Jinja for more efficient unit testing of DBT… Continue reading

āž¼ Read other posts about dagster or data or data platform or testing

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

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

Posts navigation

Ā« Older posts

We're totally hiring!

See our current engineering vacancies

Built with ā¤ļø by the FreeAgent team.