
Lessons from my first software engineering internship
I started university two years ago with minimal programming knowledge and only a few lessons making Pong in Scratch under my belt. So in the beginning of my Computer Science degree, I spent a lot of time playing catch-up. My experience here at FreeAgent is what has finally caught me up. Unlike in most internships, it was business as usual from day one for me, rather than one big project.… Continue reading

Bank Transaction Entity Detection with AWS Comprehend
Introduction For the past year, FreeAgent has been running a machine learning model in production that categorises customer bank transactions. This model takes transaction descriptions and transaction amounts as inputs, and attempts to predict the corresponding accounting category. This summer, I joined the data science team with the more specific goal of increasing model generalisation, which would allow it to make predictions for a larger fraction of incoming transactions. One… Continue reading

Say hello to some of our women in engineering!
We celebrated International Women in Engineering Day earlier this week with a video featuring some of our own. This inspired a few more of us to mark the occasion and say hello. Whatās exciting is that there are many different routes to a career in engineering. Say hello to... Katrina š Who inspires you in the tech world? I think I've been genuinely lucky to start out at FreeAgent. Over… Continue reading
We're hiring! Check out our vacancies š
Titlecase, underscore and laser guns
Not so long ago, I had an opportunity to peek under the hood of titlecase and underscore methods, the tiny cogs of the āRails magicā machine. The latter turned out to be a very interesting functionāa lot of hard-to-follow transformations, secret injections and the like. All of these bits significantly contributed to an odd-looking bug Iāve been working on. Today, weāll unravel the implementation of both methods and look in… Continue reading
Engineering Principles at FreeAgent
Culture is an inherent part of every organisation. It lives and breathes. In our engineering organisation at FreeAgent there are now over 100 fabulous people. It is these people and the culture we have built that are consistently recognised as our two most important strengths. They're also what we fear losing the most. There is a natural cycle of cultural onboarding for new people joining our organisation. In their first… Continue reading
Control freaks: how we built our own version control for Matillion
Weāve all been there - itās a couple of days or even the night before an important deadline and one of the following happens: You lose your memory stick with all your work on it and scramble to recreate it but canāt get it back to the way it was.You make some more āadvancementsā to your work and suddenly everything is broken and you canāt seem to get it back… Continue reading

A day in the life of a Web Analyst
Hi, Iām Lana and Iām a Web Analyst within the Analytics team here at FreeAgent. I primarily look after our Google platform products such as Google Analytics 360, Google Optimize, Google Data Studio and Google Tag Manager. When I tell people my job title, usually the next question I get is āSo what is it you actually do then?ā To help answer this question, I decided to spend a day… Continue reading

Shopping for data: How thinking about supermarkets might help you to manage your Looker implementation
This blog makes a comparison between a well run supermarket and a well designed Looker implementation. Continue reading

Timecop vs Rails TimeHelpers
TL;DR - You probably canāt replace Timecop with Rails' built in TimeHelpers, as TimeHelpers only recreates Timecopās freeze method, and canāt handle nested travelling. Timecop is the go-to gem for testing time-dependent code, as it allows you to manipulate the current time during test runs. This is important because without control over the time, flakey tests can emerge in your codebase. A very simple example is testing the created_at attribute… Continue reading

Weāre Gonna Need a Bigger Boat
Earlier this year, the FreeAgent marketing website www.freeagent.com was the target of a volumetric Distributed Denial of Service (DDoS) HTTP flood attack. This was a relatively unsophisticated attack in that it targeted a particular static endpoint of our website with a massive number of HTTP GET requests from multiple remote IP addresses around the globe, as visualised on the map below. Predominantly serving the UK small business base, FreeAgent wouldnāt… Continue reading