Using API Gateway, Lambda, SageMaker and DynamoDB to build a categorisation service in AWS
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
Combining machine learning with rules-based personalisation
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
The architecture of FreeStyle, our design system
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
We're hiring! Check out our vacancies 👈
Ease into Ruby with a Python background
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
Factories: don’t stop production!
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
How to survive imposter syndrome in your software engineering internship
Hi there! My name is Fiona, and I am an intern at FreeAgent. I got my offer and dodged returning to the monotony of bar work that I endured last summer. However, I was only in my second year of studying Computer Science. How was I chosen from what must have been a sea of applicants? They must have overlooked someone! Had I lucked out? In hindsight, this was a… Continue reading
My internship project: from ideation to implementation
When I started my internship at FreeAgent, I had no idea what to expect. I read previous blog posts and saw that interns get up to a wide range of things! I spent my first weeks here doing onboarding tasks and fixing small bugs. Once I’d started to get familiar with the codebase and the way FreeAgent works, it was time to start my project. 😮 My team manages Sudo,… Continue reading
Fireside chats about tech careers and automation paranoia
I read a book called Coders at Work by Peter Seibel before starting university. Inspired by the format of Jessica Livingston’s Founders at Work, each chapter features an interview with an accomplished programmer. The interview style of writing feels like a personal conversation, offering a rare look into the thought processes of some very impressive people. I'm currently in my second internship at FreeAgent. Last year, I wrote a blog… Continue reading
Combining data from different sources with SageMaker pipelines
Generating datasets for machine learning Preparing data and generating datasets is a crucial step to train a machine learning model. If you are lucky your data might come from a single .csv file. However in most cases pulling together the input features to train your machine learning model will require combining datasets from different sources. Combining data from different sources manually can be a time consuming process, prone to errors. … Continue reading
A view of technical leadership from across the industry
It has been over two years since FreeAgent introduced staff engineers into the IC track. The intention was to align ourselves with the wider industry by renaming the previous Senior II level to Staff. At the time, no changes were made to the expectations for the role. Since then, we have overhauled the expectation framework (for our learnings on how to do this, see Dave's post here), and the folks at LeadDev… Continue reading