Querying the past
Iāve been learning to love the ActiveRecord query interface over the past few months. Whilst I find it infuriating when Iām battling it to do what I actually want, I also relish the power and convenience it gives me for many simple queries. So, when it came to designing a query language for historical data in our systems, ActiveRecord was a natural choice. We can now do queries like: FA::Subscriptions.… Continue reading
How we run 4 hours of tests in under 4 minutes
Here at FreeAgent we have a test suite that contains over 21,000 individual RSpec examples. Currently it takes approximately 4 hours to run in a single process. Hereās how weāve tuned our test suite and CI system (Jenkins) to run them in under 4 minutes. 1. Parallelise The first step is to run the specs in parallel. Test queue We use test-queue, a parallel test runner by Aman Gupta. It… Continue reading
A brief history of mobile
It's been a year since we launched our mobile app! In March 2015 we launched FreeAgent Mobile for iOS. Initially limited to a small feature set, we quickly added new things over the next couple of months: expenses and mileage rebilling, updating and explaining bank transactions, and linking expenses and transactions to projects. In January 2016 we launched our Android version (with the same feature set as iOS), and more… Continue reading
We're hiring! Check out our vacancies š
Many timezones, one team – How do WE stand up?
Following the post Many timezones, one team - how do you stand up?, we received quite a bit of feedback and interesting ideas. Thanks for that! Today, we'd like to share our experience of how we addressed this particular issue, and how it's working for us so far. This isn't far from some of the feedback we got. TL;DR We created a separate Slack channel to Stand Up / Down… Continue reading
FreeAgent’s AV Adventure Continues – 12 Months On
It has been exactly a year since my first blog post about FreeAgentās AV Adventure. A lot has changed since then so Iād love to bring you up to speed. For those who havenāt read the original blog post, Iād strongly encourage you to; it outlines our business requirements and gives some background on our earlier AV experiments. When you last saw our boardroom, it was equipped with four desktop… Continue reading
Many timezones, one team – how do you stand up?
We like to keep our product teams small. A mixture of designers, engineers and product people working together to add new features and make improvements to different areas of the app. To help keep each team together, we operate with a morning stand up each day, which is designed to help keep everyone up to date. Iām not going to try to sell you on stand ups - if you… Continue reading
Being a data science intern
Fiona Christie joined us here at FreeAgent on a 3-month internship with our Data Science team this summer after completing an undergraduate degree in Mathematics and Statistics at the University of Glasgow. She impressed us so much that we offered her a full-time role and we even managed to persuade her to write this post about her experience as an intern. Condensing my time at FreeAgent into one post hasnāt… Continue reading
Engineering Desks
It's become somewhat of a custom around the internet to post pictures of your desks, especially when you're not all sat in the same office. I know I certainly enjoy looking at other people's desks & environments, so without further ado, here's our desks & views from around FreeAgent. Caius (Shropshire, UK) CĆ©dric (Lyon, France) Harry (Toronto, Canada) Nathan (Sheffield, UK) Olly (Edinburgh, UK - in our head office) Philip… Continue reading
Weak DH – Time to Level Up
SSL vulnerabilities have been big news over the last few years. We've had Heartbleed, CSS Injection, POODLE and FREAK among others. At FreeAgent we take these vulnerabilities very seriously and work to mitigate these as fast as possible. The one we will be looking at today is Weak Diffie-Hellman and the Logjam Attack and some changes we are going to be making in the coming months. SSL configuration can be… Continue reading
System hardening leads to CVE-2015-3341 and fun with DTrace
Here at FreeAgent, security is a never-ending project. We are never finished, and we are always looking for ways to harden our platform, ensuring data is kept safe. Security should not be taken for granted ā it is not just about technical mitigations or fancy enterprise firewalls, equally important is developing the right set of processes and procedures. One important aspect is testing your security controls. You need to be… Continue reading