Skip to content

Grinding Gears

Tales of code crunching from the FreeAgent Engineering team

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

What is a tech spec and why do I need one?

Posted by Brad Turner on 26 August 2022

For the past three months, I’ve been a Software Engineering Intern in the Connections & Add-ons team here at FreeAgent. We look after a number of features that allow FreeAgent to work with third-party services: if a business owner wants to get paid faster, they can add a PayPal, Stripe, GoCardless or Tyl payment link to their invoices; if they need to get their business insured, they can sign up… Continue reading

➼ Read other posts about documentation or internship or software engineering

So you’re going to be an intern

Posted by Ross Burnett on 25 August 2022

After months of nerves, interviews and one too many LeetCode questions, you’ve done it. You’ve landed an internship, you’re free from the dread of a long, empty summer and your brain is filled with vague notions of what your internship might be like. I’m here to gather up your brain clay and sculpt it into solid ideas of what things will be like. Before we start, it needs to be… Continue reading

➼ Read other posts about internship or ruby on rails or software engineering or testing

CSS Day conference, June 2022

Posted by Laurence Hughes on 24 August 2022

In early June 2022, Laurence and Ryan from our Design System team visited Amsterdam for CSS Day. Here, they reflect on an inspiring two days of learning and community. Continue reading

➼ Read other posts about conferences or css or design system or frontend

Engineering lessons from my SaaS startup

Posted by Angus Dolan on 9 August 2022

I’m now almost two months into my software engineering summer internship at FreeAgent. When I was 18, I chose to delay the start of my university course for 18 months to have a go at building a ‘Software as a Service’ (or ‘SaaS’) startup with two others. Our software, ‘trackio’, was a bring-your-own data platform that allowed sales teams to collect, connect and reconcile their disjointed data sources. It was… Continue reading

➼ Read other posts about internship or product development or SaaS or software engineering or startup or university

How to boost your confidence as a beginner software engineer

Posted by Magdalena Veleva on 8 August 2022

Every engineer has questioned at least once in their life whether they are skilled enough for their chosen field. I experienced these doubts when I started my computer science degree at university, and despite the fact that I got through the first three years successfully, I still wasn’t fully confident in my abilities when I started my internship at FreeAgent.  However, this is entirely normal. Every engineer faces challenges on… Continue reading

➼ Read other posts about career progression or confidence or experience or internship or software engineering or success or university

An introduction to object-oriented programming

Posted by Dale Molenaar on 3 August 2022

Object-oriented programming, or OOP, is a programming paradigm centred around the concept of objects. This article will aim to provide a basic understanding of objects, classes, OOP principles and various other concepts within the paradigm. Code examples will be mediated in the Ruby programming language, which is an example of an object-oriented language. In Ruby, any value is an object, even data types like String and Integer, which are often… Continue reading

➼ Read other posts about internship or object-oriented programming or OOP or ruby or software engineering

Hidden

Hiding Elements on the Web

Posted by Laurence Hughes on 18 January 2022

For many of us the word hiding has visual connotations. But remember that the web is perceived both visually and non-visually. In this talk, Laurence Hughes from our Design System team explains that hiding is a tricky front-end development technique, used for both user interface experiences and accessibility-related purposes. He also provides some tips on how we can avoid doing DIY hiding completely. https://youtu.be/AZ6uw4KCOQA Continue reading

➼ Read other posts about accessibility or css or design system or frontend or html or javascript

Titlecase, underscore and laser guns

Posted by Karolina Drobnik on 10 June 2021

Not so long ago, I had an opportunity to peek under the hood of titlecase and underscore methods, the tiny cogs of the “Rails magic” machine. The latter turned out to be a very interesting function—a lot of hard-to-follow transformations, secret injections and the like. All of these bits significantly contributed to an odd-looking bug I’ve been working on.  Today, we’ll unravel the implementation of both methods and look in… Continue reading

➼ Read other posts about debugging or regular expressions or ruby or ruby on rails

Engineering Principles at FreeAgent

Posted by Olly Headey on 14 May 2021

Culture is an inherent part of every organisation. It lives and breathes. In our engineering organisation at FreeAgent there are now over 100 fabulous people. It is these people and the culture we have built that are consistently recognised as our two most important strengths. They're also what we fear losing the most. There is a natural cycle of cultural onboarding for new people joining our organisation. In their first… Continue reading

Timecop vs Rails TimeHelpers

Posted by Matt Bearman on 25 March 2021

TL;DR - You probably can’t replace Timecop with Rails' built in TimeHelpers, as TimeHelpers only recreates Timecop’s freeze method, and can’t handle nested travelling. Timecop is the go-to gem for testing time-dependent code, as it allows you to manipulate the current time during test runs. This is important because without control over the time, flakey tests can emerge in your codebase. A very simple example is testing the created_at attribute… Continue reading

➼ Read other posts about ruby or ruby on rails or testing or timecop

Posts navigation

« Older posts
Newer posts »

We're totally hiring!

See our current engineering vacancies

Built with ❤️ by the FreeAgent team.