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 👈

Breaking the coding doom loop: lessons from my intern project

Posted by Fiona McLaren on August 6, 2024

Tell me if this sounds familiar. You get a project idea that you’re excited about, create a new GitHub repository, and dive headfirst into coding. Instead of coming away with your new pride and joy, you end up with just another repo in your archive. Well, this has happened to me too, too many times!  With my university projects, I could always produce a good piece of work. But university… Continue reading

➼ Read other posts about career progression or experience or internship or planning or project management or software engineering

Thinking on paper the software engineering way

Posted by Jamie Kirk on July 30, 2024

Starting your first engineering job feels like a race against time. Handle coding, survive testing, run through a slew of inductions and find time somewhere in there to meet your teammates. Organisation tools are everywhere. But with a schedule spread across Google Calendar, Notion, and the odd Slack notification, nailing the daily admin can become a chore in its own right. The purpose of a planner is to break down… Continue reading

➼ Read other posts about career progression or internship or planning

Combining text with numerical and categorical features for classification

Posted by Delphine Rabiller on May 17, 2024

Classification with transformer models A common approach for classification tasks with text data is to fine-tune a pre-trained transformer model on domain-specific data. At FreeAgent we apply this approach to automatically categorise bank transactions, using raw inputs that are a mixture of text, numerical and categorical data types.    The current approach is to concatenate the input features for each transaction into a single string before passing to the model.  For… Continue reading

➼ Read other posts about AWS or BERT or data science or fine-tuning or hugging face or machine learning or NLP

We're hiring! Check out our vacancies 👈

How the Ruby Interpreter Creates Methods on the Fly

Posted by Matthew O'Donnell on February 28, 2024

(And why it matters!) I was lucky enough to attend last year's EuRuKo, the travelling European Ruby conference. A theme of the conference (for me) was Ruby's infamous embrace of metaprogramming, which I've had little exposure to in my day-to-day as a Rails dev. The approach to this discussion was inspired by this great talk by Masafumi Okura on Code Reading, and much of the detail comes from the book… Continue reading

➼ Read other posts about deep dive or ruby

Restructuring our analytics team

Posted by Jack Gladas on January 30, 2024

In late 2022, we restructured our analytics team by aligning each analyst to a different area of the business. In this blog post I’ll talk about what we changed, why we changed it, and how we feel the changes have gone so far. If you’ve been through a similar process (or even the opposite process!), are considering it, or have any other thoughts, we’d love to chat! Please drop us… Continue reading

➼ Read other posts about analytics or bi

Using API Gateway, Lambda, SageMaker and DynamoDB to build a categorisation service in AWS

Posted by Ed Berry on January 19, 2024

I’ve talked previously about the value of combining rules-based and machine learning approaches to categorisation. In short, rules-based approaches make it easy to do customer-level personalisation that complements a machine learning model trained to find patterns across customers. In this post I’ll talk about how we used AWS to build an expense categorisation service that combines machine learning with a rules-based approach. This service forms part of the Smart Capture… Continue reading

➼ Read other posts about analytics or AWS or data or data science or machine learning

Combining machine learning with rules-based personalisation

Posted by Ed Berry on November 27, 2023

One of the ways we use machine learning at FreeAgent is to help automate data entry. Keeping on top of your accounts can involve slightly tedious manual tasks like categorising bank transactions or managing your expenses. Machine learning can help here by automating aspects of these tasks so our users can nail their daily admin and focus on bigger things. Personalisation with rules In 2020 we launched our first operational… Continue reading

➼ Read other posts about data science or machine learning

The architecture of FreeStyle, our design system

Posted by Anda Popovici on October 23, 2023

We embarked on a journey to create a design system at FreeAgent over 2 years ago. In this blog post I will describe how we structure our design system code and how it’s being used across different codebases. Technologies we use Our main design system consumer is the FreeAgent web application, a Ruby on Rails application. As a result, we write our components using the Ruby on Rails ViewComponent framework… Continue reading

➼ Read other posts about architecture or design system or ruby on rails

Ease into Ruby with a Python background

Posted by Joseph Mousa on September 1, 2023

Starting your first role as a software engineer and having no knowledge of the programming language used in your organisation sounds like a nightmare at first, as thoughts of the imposter syndrome that many of us seem to suffer from these days start to take over. But worry not. At FreeAgent the environment is very friendly and relaxed, allowing you as a new joiner to focus on learning and integrating… Continue reading

➼ Read other posts about internship or python or ruby

Factories: don’t stop production!

Posted by Bernat Frangi on August 29, 2023

Why this post? Have you ever come across a situation where you need to write a test that uses some model objects, but found that those have endless dependencies on the existence of other objects, from the same model or otherwise? Have you ever come across a test where you only care about a specific attribute of a model object, but you find yourself having to populate every single one… Continue reading

➼ Read other posts about factories or internship or software engineering or testing or tools

Posts navigation

« Older posts
Newer posts »

We're totally hiring!

See our current engineering vacancies

Built with ❤️ by the FreeAgent team.