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 👈

Castles, canals and coffee: my first week as a FreeAgent data science intern

Posted by Charlotte Wooley on July 19, 2018

My regular job is as a PhD student specialising in veterinary biology but this summer I have an amazing opportunity to be a data science intern at FreeAgent. If you are wondering why a biologist came to work at an accountancy software company, this is because of the particular branch of biology that I study: ‘epidemiology’. An epidemiologist typically uses data to understand ‘the distribution and determinants of health-related states… Continue reading

➼ Read other posts about analytics or data science or internship

Rails migration aliases with fzf

Posted by Matt Hutchinson on June 12, 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

Remote Desks (Revisited!)

Posted by Caius Durling on May 18, 2018

Back in 2015 we joined in with an internet custom by posting pictures of our desks in all their glorious variety. Now that it's 2018, National Work from Home Day and a few years since that post, a followup is in order. Some folks have moved, others have joined and we don't often get to look at one another's desks—usually we get to see what's behind them on video calls!… Continue reading

➼ Read other posts about desks

We're hiring! Check out our vacancies 👈

Ruby 2.5: How’s That Backtrace looking?

Posted by James Bell on December 21, 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 December 20, 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

Ruby 2.5: yield_self

Posted by James Bell on December 19, 2017

yield_self is coming to Ruby 2.5. What is this long requested feature, and how does it work? Some features take a while to get into a Ruby release. As you can see from the original request on Ruby’s Redmine issue tracker, yield_self has been brewing for 5 years. It has been waiting on a good name, and the Ruby team has settled on one. But what is it? To understand… Continue reading

➼ Read other posts about ruby

Ruby 2.5: The Christmas Present

Posted by James Bell on December 18, 2017

Let's talk a wee bit about Ruby 2.5. This starts a week of looking at upcoming features in the language. Here at FreeAgent Towers, we use a lot of Ruby. The application itself is written in Rails, and our website is static HTML, CSS and JS, but is generated with Middleman. We love it, and so we follow its development closely. One of the exciting points in the Ruby year… Continue reading

➼ Read other posts about ruby

FreeAgent Testermonials: Getting rid of ‘QA’ and why what we call things matters

Posted by Matt Dekenah on May 29, 2017

In this Testermonial post, FreeAgent's resident test engineer describes why we've rebranded 'QA' and why what we call things matters. As mentioned in my previous Testermonial, my only gripe when starting at FreeAgent — and a very minor one at that — was the rather entrenched use of the term quality assurance or QA in the development and release process to describe the pre-release testing phase which occurs before deploying… Continue reading

➼ Read other posts about testing

External authentication scripts in OpenVPN the right way

Posted by Caius Durling on May 22, 2017

OpenVPN is a wonderfully flexible piece of software in anyone's toolkit, but recently we found a sharp edge that wasn't the most obvious thing to work around. After spinning up a new VPN server we wanted to add username/password authentication against an external source. Looking at the OpenVPN documentation, the --auth-user-pass-verify <script> flag provides this functionality. Writing the script for this was easy enough — read the credentials from a… Continue reading

➼ Read other posts about openvpn

Running a high-availability SaaS infrastructure without breaking the bank

Posted by Olly Headey on February 6, 2017

The cloud is commoditising web application hosting but at FreeAgent we continue to build and manage our own infrastructure, using hand-picked servers, switches and elbow grease. Why we do this is a question I commonly get asked. In this article I'll share our hosting history, how it has evolved over the last ten years, and how we now operate a high-availability SaaS infrastructure on our own hardware without breaking the… Continue reading

➼ Read other posts about cloud or hosting or infrastructure

Posts navigation

« Older posts
Newer posts »

We're totally hiring!

See our current engineering vacancies

Built with ❤️ by the FreeAgent team.