Skip to content

Grinding Gears

Tales of code crunching from the FreeAgent Engineering team

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

How we make architectural decisions

Posted by Tobias Haar on 11 September 2019

"Change is the only constant in life."—Heraclitus The software we build at FreeAgent is constantly changing and evolving. The requirements of our software can change for a wide variety of reasons, including: scalability concerns, changes to the law or organisational changes. It’s impossible to list all the reasons why your software might have to change, but it’s crucial to acknowledge that it WILL change. In order to clearly communicate the… Continue reading

➼ Read other posts about architecture

Down the Ruby Mine, Part III: Splat and splat again

Posted by Samuel Knight on 29 August 2019

Hello and welcome to another Down the Ruby Mine. I’m Sam, one of the Engineering Interns working at FreeAgent over the Summer and I am here to shed some light on a Ruby language feature. If you’re out of the loop, you may have missed my previous posts which can be found here and here. Today we’ll be diving into the most questionably named Ruby feature out there: splat. Functions… Continue reading

➼ Read other posts about internship or ruby or software engineering

Down the Ruby Mine, Part II: Ruby’s seemingly illogical logical operators

Posted by Samuel Knight on 23 August 2019

Hello there, my name’s Sam and I’m one of the Summer 2019 Engineering Interns at FreeAgent. As part of my time here I’m writing a series of blog posts on Ruby language features. If you’re a first time Down the Ruby Mine reader then don’t fret, because the posts aren’t dependant on each other. However, if you are interested, you can find the first post here. Today we’ll be exploring… Continue reading

➼ Read other posts about internship or ruby or software engineering

Down the Ruby Mine, Part I: The code insertion trinity

Posted by Samuel Knight on 16 August 2019

Hey there, my name’s Sam and I am one of four software engineering interns working at FreeAgent over the summer. This is my first time writing in Ruby and I’ve had a great time exploring the language. As developers I believe it’s important to develop a fundamental understanding of the core of a language, even when its supplemented by a feature-rich framework like Rails. Over the next few weeks I’ll… Continue reading

➼ Read other posts about internship or ruby or software engineering

Why we love accessibility (and you should too!)

Posted by Anda Popovici on 13 May 2019

On 16th May it’s Global Accessibility Awareness Day, a day to “get everyone talking, thinking and learning about digital access/inclusion and people with different disabilities”. At FreeAgent, our mission is to make small businesses happier and more successful by putting them in control of their finances. A big part of that mission is building software that is accessible and inclusive, so that we can help as many people as possible,… Continue reading

➼ Read other posts about accessibility

What We Value – Writing Code At FreeAgent

Posted by Peter Singh on 30 November 2018

Writing software is hard. The problems we’re trying to solve are generally not trivial. They will have caveats and edge cases. They will rely on unreliable dependencies. The problem may evolve and the solution may need to be tweaked. The solution we’ve carefully crafted might not have taken into consideration something that later seems obvious. The problem might even change entirely. Continue reading

➼ Read other posts about ruby or software development

FreeAgent is now on Rails 5.2!

Posted by Tobias Haar on 3 October 2018

As of Monday, 24th of September 2018 FreeAgent is now running on the latest version of Rails. We were inspired by Eileen’s blog post about how GitHub upgraded from Rails 3.2 to 5.2 and we wanted to share with you the challenges we faced and how we managed to overcome them. We faced similar challenges to GitHub and we believe it is worth reiterating them to highlight their significance.  Motivation… Continue reading

➼ Read other posts about ruby on rails

Rails migration aliases with fzf

Posted by Matt Hutchinson on 12 June 2018

Ever find yourself re-running Rails migrations? Up, down, redo-ing etc. Have you forgotten that long VERSION number again? Or what the migration actually migrates? These handy aliases just might be for you. I've been running individual migrations a lot recently, so I took some time to set up these aliases with fzf (a command-line fuzzy finder). rdbm # bundle exec rake db:migrate (no auto-completion) rdbmu # bundle exec rake db:migrate:up… Continue reading

➼ Read other posts about ruby on rails

Ruby 2.5: How’s That Backtrace looking?

Posted by James Bell on 21 December 2017

It’s Christmas night, the air is cool and the stars are unseen through the heavy cloud. Children have left tablet and a nip of whisky out for Santa, and carrots out for the reindeer. One of the children wakes up! Rushing out of bed, she heads to the living room, curious to see if she can catch Santa and reindeer in the act of present delivery. When she gets there,… Continue reading

➼ Read other posts about ruby

Ruby 2.5: Not Blocking My Rescue

Posted by James Bell on 20 December 2017

Rescuing specific exceptions excessively can cause problems, but if you've ever had need to rescue within a do/end block, you might have found yourself using wordy syntax. Ruby 2.5 has a solution for you. In Ruby 2.5, we’ll get a little syntactic sugar for handling exceptions inside do/end blocks. You can see the feature discussion on Ruby’s Redmine instance. If you’ve ever used the shorthand for rescuing inside a method… 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.