
How To Write A Good Bug Report
Hi there! My name is Dave and, as a Support Engineer at FreeAgent, I spend a lot of my time talking to our customers, our support agents and our software developers about the behaviour (and occasional misbehaviour) of our product. Fixing a product issue is an incredible opportunity to delight your users and show that, when push comes to shove, you stand by your service and your customers. During my… Continue reading

To Error, or Not to Error, that is the Question
Setting the scene Youāve got a great new feature - youāve spent days and months testing and producing it and itās ready. Youāre ready to deploy, turn on the feature switch and GO GO GO. You know people are going to love it - and youāve thought of all the possible issues that could arise. But disaster strikes - youāre throwing exceptions and things donāt seem to be working the… Continue reading

How we make architectural decisions
"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
We're hiring! Check out our vacancies š
From Computer Science student to Software Engineering intern
Hi folks, my name's Iain, and I'm one of the few interns you haven't yet heard from this summer. In my last three months on the intern team I've embarked on a whistle stop tour around the FreeAgent application, from user facing emails to developer only APIs. In that time, I've learnt a few softer skills that I never would have had the opportunity to whilst I was at university,… Continue reading
Down the Ruby Mine, Part III: Splat and splat again
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
Down the Ruby Mine, Part II: Rubyās seemingly illogical logical operators
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
Delivering Practice Insights: My internship at FreeAgent
The phrase āpractice insightsā was something that I heard very often in my first couple of weeks at FreeAgent, between wrapping my head around the data model and trying hard to remember everyone's names. The reason I mention it in the context of the first couple of weeks is because at that point I didnāt fully know what it meant. Of course I knew what the words meant, and I… Continue reading
Down the Ruby Mine, Part I: The code insertion trinity
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
Deriving and verifying the uncertainty on conversion rate predictions
For the past few weeks Iāve been working on building a machine learning model that can estimate the probability that a customer will convert from the free trial to a paid subscriber. In practice, I combine the predictions from this model for cohorts of companies, which are defined by their acquisition channel and acquisition month, and so a method is required for calculating the conversion rate uncertainties for each cohort.… Continue reading
Being a Data Science Intern at FreeAgent: The first month
As the end of my second year at university was approaching I knew I needed to get some real-world experience to help me get a clearer vision of what career path I want to follow in the future. The best way of achieving this was getting a summer internship. After reading some blog posts of past Interns at FreeAgent (who knew I would be writing one myself a few months… Continue reading