Skip to content

Grinding Gears

Tales of code crunching from the FreeAgent Engineering team

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

The five stages of AI tool adoption: a developer’s journey

Posted by John Fredrickson on 19 December 2024

Do you remember the first time you opened Excel and discovered pivot tables? Or perhaps that moment when you first held a digital camera after years of developing 35mm film? Maybe it was when you wrote your first SQL query and watched data magically arrange itself exactly as you needed it. These technological transitions in our lives often follow a strikingly similar emotional pattern. The initial rush of discovering something… Continue reading

➼ Read other posts about AI or general

Breaking the coding doom loop: lessons from my intern project

Posted by Fiona McLaren on 6 August 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

How the Ruby Interpreter Creates Methods on the Fly

Posted by Matthew O'Donnell on 28 February 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

The architecture of FreeStyle, our design system

Posted by Anda Popovici on 23 October 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 1 September 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 29 August 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

My internship project: from ideation to implementation

Posted by Stefi Curson on 21 August 2023

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

➼ Read other posts about documentation or internship or software engineering

The web application brand refresh journey

Posted by Lea Bialachowski on 26 July 2023

At the beginning of this year the Design System team took on the work of updating the FreeAgent brand, focusing on the web application’s typography, colours and logos (and a few extra bits). You can read more about the new look in Roan’s post. I want to take you on a journey of what updating a 10+ year old codebase was like and the challenges it brought with it. The… Continue reading

➼ Read other posts about brand or frontend or project management or software engineering

Readable Dates in Rails

Posted by Matthew O'Donnell on 12 June 2023

I was playing around in Swift recently, and wanted a reference to 'one day ago'. This is simple enough in human terms: if it's 9:30 on the 18th of September, 'one day ago' means 9:30 on the 17th of September. The Swift code to do this looks like this: Calendar.current.date( byAdding: .day, value: -1, to: Date.now ) ...and that's just a bit much, isn't it? First we need to access Calendar.current, a singleton… Continue reading

➼ Read other posts about active support or deep dive or ruby or ruby on rails

Type checking in Ruby – Part 1

Posted by Paul Hendrick on 9 September 2022

Over the course of a career in software engineering, we learn to love elements of our tooling and dislike others - that’s perfectly natural.  As requirements change, including our own need to improve as engineers, so does what appeals to us when reaching for a new framework, language or library.  A common path for lots of engineers will have been to learn something like C or C++, both strongly typed… Continue reading

➼ Read other posts about ruby

Posts navigation

« Older posts
Newer posts »

We're totally hiring!

See our current engineering vacancies

Built with ❤️ by the FreeAgent team.