in Engineering

Our 2017 internal hackathon: what we built

GoCardless Internal Hackathon 2017

On Friday 25th July, we held 2017’s annual GoCardless internal hackathon.

In a hackathon, a small team comes together for a short period of intense work to solve a problem, complete a challenge or build something new.

We brought together everyone from across our cross-functional Product Development team, including everyone from product managers to designers to systems reliability engineers (SREs).

This carries on a proud GoCardless tradition, starting with the pool ball tracker we blogged about in 2012 and have continued since - one of our interns last year, Henri, highlighted 2016’s hackathon as one of the highlights of his internship.

We think our internal hackathons are super valuable because they give us a chance to try out new ideas, learn new skills and technologies and work with people we wouldn’t usually get to work with.

In this post, we’ll look at three of the projects that came out of the day:

Trying out new ideas: the churn calculator

Churn calculator

Juliet, one of our Product Managers, worked with Ben and Joe from the Design team to build a churn calculator.

At GoCardless, we know that one of our greatest selling points is our fantastically low failure rate for payments. Where credit and debit card payments experience failure rates of 10-30% a month due to expired or cancelled cards, bank accounts don’t expire!

The team wanted find a way to help users understand the tangible difference cutting churn can make to their bottom line, so they put together a brand new churn calculator.

On the calculator, a potential user of GoCardless can input their total numbers of customers, the average value of each payment they collect and the number of payments they expect to collect per month for customer.

They’ll get back a beautiful graphical view, showing how much they can expect to lose to failed payments over the next 12 months for cards, standard Direct Debit and GoCardless.

Having experimented and built something awesome in less than a day, the team will move forward with their project, aiming to get it released onto our website soon.

Juliet said "It was amazing to have the chance to experiment and build something completely new in less than a day. We can't wait to move forward with what we've started and bring it to the GoCardless website soon".

Learning new skills: visualising GoCardless’s payment volumes

João, one of our interns worked with Pete, one of our Technical Leads, to resurrect a classic GoCardless hackathon project from a bygone era: the 'make it rain' dashboard. This tool shows each payment being collected through our infrastructure over the course of a day as a coin falling from the sky, each one labelled with its payment amount.

They kicked off the project with another key goal: to work on something fun and learn something new.

They wrote the backend in Go, which neither of them had used before, to handle real-time data on payments as they were processed. They then refactored the old frontend code of 2015 to make the most of new JavaScript features introduced in ES6.

"By the end of the hackathon, we were pretty happy with the result and what we learnt in such a short period of time. It was a really fun day!" said João.

Working with different people: bringing the noughties MSN Messenger experience to Slack

Chris, one of our System Reliability Engineers, worked with Marco, one of our interns, to build a new tool called Slackify, aiming to bring one of the best features of MSN Messenger from the 2000s to Slack: showing what music you’re listening to in your status.

Experimenting with the Elixir programming language, they got to work together for the first time, and finished the day with a working prototype (albeit having spent much of the day fighting with Spotify and Slack’s OAuth APIs!).

Marco said "The hackathon was a blast! It gave me the opportunity to work with Chris, who I don't usually work with, and to get to know him better -- and also to learn Elixir!".

Interested in joining GoCardless?
We're hiring

Collecting recurring payments in .NET

GoCardless .NET guides

.NET has been our most frequently-requested client library, and today we're excited to announce that we've released our first version of a .NET library for the new GoCardless API!

This new library means it will be faster and easier than ever to build robust integrations with our API if you're using the .NET framework - you can focus on building your business instead of building the integration from scratch.

Continue reading...

Build better, smarter, faster with our API
Learn more
in Engineering

All fun and games until you start with GameDays

As a payments company, our APIs need to have as close to 100% availability as possible. We therefore need to ensure we’re ready for whatever comes our way: from losing a server without bringing the API down, to knowing how to react if a company laptop is compromised.

To accomplish this we run GameDay exercises. What you will read below is our version of a GameDay. We hope that by sharing how we do GameDays we can give you a starting point for running your first GameDay.

Continue reading...

Want to help build reliable systems?
Join our team

What keeps the GoCardless engineering team motivated?

The UK tech scene is becoming increasingly competitive, with companies constantly on the hunt for great developers to join their ranks. With so much choice out there, developers can afford to be ultra-picky when choosing a job.

Today’s tech companies offer a wide range of perks to attract the best developers ahead of the competition. These can range from office treats such as well-stocked beer fridges and team lunches, to joining bonuses, conference budgets, and company holidays.

It’s great having office pizza for lunch. But when considering that all-important next career move, many developers also search for more meaningful factors in their work environments.

GoCardless recently won the Techies 2017 prize for ‘Best Place for Developers to Work’. In the process of creating a great work environment for all our people, we’ve learned a few things about what developers want in a role.

We chatted to some of our engineering team to find out what they look for in a role and what attracted them to GoCardless.

Continue reading...

Interested in joining GoCardless?
We're hiring
in Engineering

Building our new developer experience: Part 1

Our API is at the heart of everything we do. Not only does it allow developers to build powerful Direct Debit solutions, but it also powers the GoCardless Dashboard along with our integrations with partners like Xero, Teamup and Zuora.

As engineers, we know firsthand the importance of having great resources at your disposal when you’re getting started with an API. So back in September we kicked off a major project to revamp our developer onboarding experience. We wanted to build something we could be really proud of and which would also delight our customers.

In this blog post, the first of a series of two, we’ll take you through the journey of building our new developer site from idea to delivery.

Continue reading...

Interested in joining GoCardless?
We're hiring
in Engineering, People

(Re)designing the DevOps interview process

Interviewing is hard. Both the company and the candidate have to make an incredibly important decision based on just a few hours’ worth of data, so it’s worth investing the time to make those precious hours as valuable as possible.

We recently made some changes to our DevOps interview process, with the aim of making it fairer, better aligned with the role requirements, and more representative of real work.

We started by defining the basics of our DevOps roles. What makes someone successful in this role and team? What are the skills and experience that we're looking for at different levels of the role?

It was important that the process would work for candidates with varying experience levels, and so it needed to be flexible and clear to assess skills at each of these levels.

The skills we’re looking for fall into three broad categories: existing technical knowledge (e.g., programming languages), competency-based skills (e.g., problem solving), and personal characteristics (e.g., passion for the role, teamwork and communication skills). After defining these skills, we mapped out how we would assess them at each stage of the interview process.

Continue reading...

in Engineering, People

A day in the life of a GoCardless software engineer

I’m Tim, and I’m a software engineer at GoCardless. I’ve been here for about four and a half years. I work on our UX team, building customer-facing bits of GoCardless, such as our dashboard and developer API. My team focuses on making them as powerful and easy to use as possible.

The early days

I first joined the team back in 2012, just a few months after GoCardless had launched into beta. I was attracted by the boldness of what the company was trying to do: making life better for small businesses and disrupting banks’ traditional monopoly. Since then I’ve worked in a variety of roles across the company, from setting up and running our customer support operation to running our partnerships team, to where I am now.

Continue reading...

Interested in joining the GoCardless team?
We're hiring
in Engineering

From idea to reality: containers in production at GoCardless

As developers, we work on features that our users interact with every day. When you're working on the infrastructure that underpins those features, success is silent to the outside world, and failure looks like this:

Recently, GoCardless moved to a container-based infrastructure. We were lucky, and did so silently. We think that our experiences, and the choices we made along the way, are worth sharing with the wider community. Today, we're going to talk about:

  • deploying software reliably
  • why you might want a container-based infrastructure
  • what it takes to reliably run containers in production

We'll wrap up with a little chat about the container ecosystem as it is today, and where it might go over the next year or two.

Continue reading...

Sound like something you'd enjoy?
Join our team

An introduction to our API

The GoCardless API allows you to manage Direct Debit payments via your own website or software. When a customer signs up for your services they can give you a Direct Debit authorisation online. Your integration can then create and manage payments and subscriptions automatically - there’s no need to manually add a new customer to GoCardless. Our API provides you with full flexibility when it comes to payment creation, and we offer it to all of our merchants at no extra cost.

In this blog post we’ll guide you through the steps needed to use our API, from customer creation to taking your first payment.

Let’s look at how Direct Debit payments work and how the GoCardless API is organised. In order to charge a customer’s bank account, you will first need their authorisation to collect payments via Direct Debit. This can be via our secure online payment pages or, if you’re using GoCardless Pro, you can take complete control of the payment process by hosting the payment pages on your own website.

Continue reading...

Interested in joining the GoCardless team?
We're hiring