GoCardless launches in France

Since 2011 we've been helping UK companies improve the way they collect recurring payments. Today we're very excited to announce that we're launching in France and Belgium to do the same, and will be launching in Germany, Spain and the Netherlands soon.

Direct Debit offers French and Belgian businesses lower failure rates, lower transaction fees and increased flexibility. By putting the company in control of when payments are taken it also improves cash-flow and drastically reduces the time spent chasing late payments. However, just like in the UK, Direct Debit is difficult to access, hard to use, and full of hidden fees. We're fixing that:

  • Access to Direct Debit : in Europe it can take months to get started, with a lot of paperwork and setup fees. It takes a couple of days with GoCardless and we take care of setting you up on the SEPA Direct Debit scheme (for free).
  • Manual processes : companies are spending hours each week setting up customers, creating and exchanging files with their bank or provider, and manually reconciling the payments that succeeded or failed. We automate everything, whether you use our API or our online dashboards.
  • Hidden fees : we don't think anyone should pay €16 each time a payment fails, so we only charge on successful transactions - nothing else.

We've already launched with 1001menus, who now automate their Direct Debit collections, and The French Talents, who no longer need to chase late payments via bank transfers and cheques. We've also been covered in the national and business press: Le Figaro, Les Echos, Challenges, La Tribune, Journal du Net and l'AGEFI have all written about us.

To learn more, visit our French or English website.

in Business, Hiring

The Business Development Interview Process

Interview

Image courtesy of XKCD, via a Creative Commons license

GoCardless is poised for global success, and we need people to help us achieve our vision of building a payment network that makes it simple to move money across the globe. To help us grow, we're looking for systematic problem-solvers to join our business development team. This post is a guide to the application process for the business development position. Above all, we want you to succeed, which is why we’re going to explain in detail how the process works and what we’re looking for.

At GoCardless, the business development team is responsible for projects that are crucial to the future growth of the company, and that do not fit neatly into the ‘marketing’ or ‘sales’ categories. Recent BD projects have included: developing European launch plans; assessing which geographies to expand into next; working with engineers to prioritise product features for multinational companies; improving the onboarding process for customers; and reaching out to potential partners.

Because the role encompasses so many different possible projects, we’re looking for people who are analytically smart, adaptable, get things done fast, and can come up with creative solutions to problems. You do not have to be technical to apply (none of the team has a technical background). The role is particularly great for people who want to start their own company in the future and want to get hands-on experience of different projects at a startup.

How the process works

  1. Phone Screen
  2. Analytical challenge
  3. Onsite interview - Round One
  4. Onsite interview - Round Two

1. The Phone Screen

This interview lasts 10-15 minutes. You will speak to a member of our business development team. The interview will focus primarily on your motivations for applying to GoCardless, what you’re hoping to get out of the job, and how you make decisions.

To do well in this interview:

  • Find a comfortable place with no background noise. Environments with lots of noise will distract you and make it difficult for your interviewer to understand you.
  • Ensure your phone, or internet connection (for Skype), work. You’d be surprised at how many people get this wrong!
  • Be on time. First impressions matter.
  • Be prepared. Do your research on GoCardless - what problems are we solving for businesses? What have you learned about our company culture? What attracts you to the company?
  • Be structured. Try and give your answers in a structured manner, so that the interviewer can understand your central points easily.
  • Be concise. Don’t ramble; we want to give you the chance to answer as many questions as possible, so spending 10 minutes on introducing yourself won’t work in your favour.
  • Be enthusiastic. We love people who are excited about the mission and are interested in what we do.

After the interview, we will get back to you fairly quickly - within a week at most.

2. Analytical challenge

If you’re successful in the phone round, we will send you an analytical challenge to complete, using real data (sanitised, of course!) from GoCardless. This challenge is intended to assess your ability to draw insights from data, as well as your prioritisation and communication skills. It should take no more than 2.5 hours to complete.

In your first on-site interview with us, we'll discuss your approach to the problem, the reasoning behind your recommendations, and how you would go about prioritising and implementing them.

We’re looking for people who can make sense of lots of data, develop hypotheses and test them, make data-driven recommendations, and be flexible when challenged or confronted with new information.

3. Onsite interview, Round One

You should expect to be on site for about an hour and a half. At this stage, we’ll be looking to dig into your problem solving ability, chat more about your background, and find out more about who you are and what you’re looking for. You’ll get the chance to meet several members of our business development team, ask questions, and get a feel for our office and what it’s like to work with us.

Some tips for your onsite interview:

  • Be honest. People join a startup for a variety of reasons; tell us what you’re really looking for and what you want to do in your career. The purpose of the interview should be to get to a really good understanding of whether the company would be a good fit for you, and vice versa - so feel free to be open with your interviewers.
  • Be concise. We’re keen to get as much information from the interviews as possible so that you have the best chance to show us who you are. Don’t spend too long talking about things that are irrelevant, and answer the questions directly.
  • Give some structure to your answers. Look up the ‘Pyramid Principle’ and similar communication tactics, and use them; being great at communication is an important part of doing well in a non-technical role, so we will be looking for people who can communicate in a compelling, easy-to-understand way.
  • Think through problems aloud. If you get stuck, clarify the question and tell us what you’re thinking about. The discussion should be a collaborative one, and you won’t be penalised for changing your mind or taking the time to think through your solutions.
  • Think hard about what would make you want to work here. Are you interested in the company culture? Our growth? The projects we work on? Be as inquisitive as you want to be - we’re keen to share how GoCardless works with you and make sure that it would be the right fit.

After the interview, we will get back to you fairly quickly - within a week at most.

4. Onsite interview, Round Two

This is the final round of interviews and your opportunity to meet with people across the business. At GoCardless, we tend to work cross-functionally, so it’s important that you meet people from other parts of the business. Every interviewee also gets the chance to interview with our CEO.

The first part of the day consists of a practical exercise with a member of the business development team, which takes around 3 hours. The aim of the exercise is to work with you on a small project and see how far you get, i.e. to test your skills in a real working environment. You’ll also get a sense of what kind of work we do here. We’re looking to test your ability to execute in a real world environment; you should feel free to ask your interviewers as many questions as you want, and aim to make as much progress as you can in the allotted time.

To succeed in this part of the interview:

  • Ask clarifying questions. Be really clear with your interviewer what outputs are expected of you and what problems you are expected to solve during the interview.
  • Think of all the possibilities. In solving a problem, it helps to consider all possibilities first and then choose the one that will accomplish the goal the best. Make sure you don’t prematurely latch onto a single strategy and then pursue it without considering alternatives.
  • Keep the time limit in mind. You want to make as much progress as possible within the time limit; make sure you consider the information to time ratio of each strategy.
  • Stay calm and focussed. Self-explanatory - we solve hard and ambiguous problems in team BD, and this requires the ability to stay focussed under pressure. Don’t worry if something you tried didn’t work - you should take stock and iterate on your strategy to win.

In the second part of the day, you will chat to our CEO and another member of GoCardless, usually someone from the engineering team. The chat will mainly focus on your motivations and we’ll be looking to ensure that you'd thrive here and share the same values as GoCardless.

After you’re done, we will get back to you very quickly; if you don’t hear from us, don’t hesitate to reach out. Good luck and we look forward to meeting you!

We're hiring
See job listing
in Engineering

GoCardless Basic API v2 Beta

We’re releasing a new system that promises a better integration experience for developers. Following the launch of our Pro API in December 2014, we've been working hard to extend some of the new Pro features to our Basic platform. In particular, we now provide better development tooling and the option to seamlessly transition your payments to your own SUN if the need arises.

We're looking for developers to beta test this new system. Do you meet the following criteria?

  • Do you plan to collect recurring / multiple payments from your customers?
  • Are you currently looking to integrate with the GoCardless Basic API?
  • Do you have the technical expertise required to perform such an integration? Our client libraries are also in development so you will be able to beta test these too.

As well as a better overall experience, we can offer the following:

  • No fees for 6 months
  • Additional support from our developers

If you match this profile or have any questions about the beta, get in touch at help@gocardless.com!

If you're currently using v1 of the Basic API, don't worry - we will continue to support the Basic API for all of our customers without you noticing the difference.

Interested in early access to the GoCardless Basic API v2?
Contact us

It's now easier to take Direct Debit globally

Taking Direct Debit payments used to mean integrating with a different payments scheme in each country you wanted to collect from. We're changing that. From today, we no longer require you to specify the Direct Debit scheme when setting up a mandate through our Pro API. We'll automatically detect the best Direct Debit scheme to use, based on your customer's bank account:

GET https://api.gocardless.com/customer_bank_accounts/BA123 HTTP/1.1
HTTP/1.1 200 (OK)
{
  "customer_bank_accounts": {
    "account_holder_name": "Edith Piaf",
    "country_code": "FR",
    "currency": "EUR",
    ...
  }
}
POST https://api.gocardless.com/mandates HTTP/1.1
{
  "mandates": {
    "links": {
      "customer_bank_account": "BA123",
      "creditor": "CR123"
    }
  }
}

HTTP/1.1 201 (Created)
Location: /mandates/MD123
{
  "mandates": {
    "id": "MD123",
    "scheme": "sepa_core",
    ...
  }
}

We're the only provider that links UK and SEPA Direct Debit in a single API, but this is just the first step in building a truly global Direct Debit network. You shouldn't need to worry where your customers are located to be able to take payments from them, and we'll be working on making this even easier over the next few months.

First we'll be making it possible to take payments in any currency from any account, without worrying about the forex, and also to receive payouts in whatever currency you prefer. This will mean you can collect £10 a month from all your customers, whether they're in London or Luxembourg. You'll also be able to collect in several currencies and receive all your payouts in one currency.

Then we'll be adding more schemes, from Swedish Autogiro to Australian BECS, so you can take Direct Debit payments from anywhere using just one API.

Wondering whether GoCardless Pro could be for you?
Find out more
in Engineering

Visualising GoCardless' UK Growth

The above animation is a time lapse of customers using GoCardless for the first time. It covers the last 3 years and only maps the UK for now, with each red dot representing a new customer joining GoCardless, then becoming a blue dot for the remainder of the clip. It works even better if you view it full-screen.

It started as just something to do for fun on the side, we've been seeing a lot of growth recently and as we move into Europe and launch our new API I was curious about what it'd be like to take a moment to look back on how far we've come. The result actually turned out to be pretty interesting and the post below explains how I generated it.

Generating the Data Set

Using street addresses would have been a little messy, but luckily UK addresses include a postal code. There are around 1.8 million postcodes, providing a good level of granularity throughout the UK and Northern Ireland for around 29 million potential addresses. Sadly, this meant that the rest of Europe wasn't plottable this time around - a challenge for another day.

Data from GoCardless
+---------------------+-------------+
|     created_at      | postal_code |
+---------------------+-------------+
| 2011-09-21 22:15:44 | EC1V 1LQ    |
| 2011-09-27 12:42:17 | TA9 3FJ     |
+---------------------+-------------+

Unfortunately, postal codes also aren't distributed throughout the country in a neat grid system. There was no easy way to translate a postcode to a location on screen. What I really needed was something uniform and regular - latitudes and longitudes.

A quick search revealed several services online which provide the latitude and longitude for a given postcode, however, with 1.8m postcodes to potentially sift through, and taking into account the rate limiting on a lot of these services, this wasn't quite going to cut it.

As is often the case, it seems I'm not the first person to come across this problem and after some more searching I discovered freemaptools.com who have compiled a database containing all the 1.8m+ UK postcodes together with their latitude and longitude!

Data from the postcode data dump
+---------+----------+--------------------+--------------------+
|   id    | postcode |      latitude      |     longitude      |
+---------+----------+--------------------+--------------------+
| 1237144 | EC1V1LQ  | 51.531058677023300 | -.100484683590648  |
|  210341 | TA93FJ   | 51.229186607412900 | -2.976539258481700 |
+---------+----------+--------------------+--------------------+

After importing all of this into SQL, a few queries later I finally had the data I needed.

+---------------------+--------------------+--------------------+
|      timestamp      |      latitude      |     longitude      |
+---------------------+--------------------+--------------------+
| 2011-09-21 22:15:44 | 51.531058677023300 | -.100484683590648  |
| 2011-09-27 12:42:17 | 51.229186607412900 | -2.976539258481700 |
+---------------------+--------------------+--------------------+

Plotting Locations on a Map

image

R is a language I'd been looking for an excuse to experiment with for a while. It's free, open source and and after checking out some available packages like maps and mapdata it quickly became apparent that plotting latitudes and longitudes shouldn't be too much hassle.

Sure enough, after a little playing around, it was possible to map all the customers represented by little blue dots.

Very exciting, but still some room for improvement - the points seemed a bit large and very messy. In areas of high density (for example, London) the map was solid blue. It was awesome to see how many people have used us but it didn't make for the best of visuals.

After toying with some point sizes and opacity values, things were looking much more interesting and the densities naturally emerged.

Before After
# draw.r
library(maps)
library(mapdata)

setwd("/Users/petehamilton/gocardless-maps")

# Set variables
gocardless_blue = rgb(0.31,0.57,0.85)
gocardless_blue_translucent = rgb(0.31,0.57,0.85,0.1)
par(family="Gotham-Book")

# Read data
customer_data <- read.csv("data/r-customers-export.csv", header = TRUE)

# Set output file
png("output.png", height=3000, width=2000, pointsize = 80)

map('worldHires', c('UK', 'Ireland', 'Isle of Man','Isle of Wight'), xlim=c(-11,3), ylim=c(49,60.9), fill=FALSE, col=gocardless_blue, mar=rep(1,4))
points(customer_data$lon,customer_data$lat, col=gocardless_blue_translucent, pch=20, cex=0.2)
title("GoCardless Customers", col.main=gocardless_blue)
dev.off(dev.cur())

# Execute with: R --slave -f draw.r

Where, Meet When

At this point I had plotted all the customers and made good use of the where portion of the data, but hadn't done anything with the when side of things.

The principle of animating this kind of data is generally conceptually straightforward. For each day, split the customers who were added on that day into chunks corresponding to the number of frames you want to animate per day. After rendering each chunk, output an image, then at the end, stitch them all together - you've got yourself an animation!

To better visualize the new customers I highlighted them in red to make them stand out against the previously plotted customers. I also removed the outline of the UK until the very end frames, resulting in the emergent GoCardless UK outline you see above.

Speeding Up R

Initially, the first rendering of these frames took hours and the concept of "rapid iteration" went squarely out the window. However, when you're fiddling with point sizes and opacities this doesn't really work well, there had to be a better way.

After some digging, it transpired that R was only using one of my CPUs. After looking around, it seemed that R had support for parallel operations, but in order to parallelise loops I'd need doParallel and foreach.

After altering the code to leverage these packages, I was then generating one frame on each core, in my case resulting in a 4x speed-up.

You can see the final code here. It's my first foray into R so there are doubtless improvements, in which case I'd love to hear from you at pete@gocardless.com.

Stitching it all together

The final step is to put together all the frames. Since we've named them using a %06d format, on OSX we can leverage ffmpeg to join them together.

ffmpeg -f image2 -r 60 -i output/frame_%06d.png customer-growth.mpg

If you're on linux (using AWS for example), you can also do this using avconv in a similar way.

We're gonna need a bigger boat...

At this point you may have noticed the intense heat and noise of your laptop gradually melting in a fiery blaze of screaming CPUs. Thousands of frames and video rendering don't generally agree with your average laptop. To get around this, I suggest renting time on an AWS spot instance or Digital Ocean instance. You can leverage some seriously beefy machines with a bunch of CPUs and RAM, then just SCP down the results once it's done.

Next Steps

I'm thinking of doing some more visualisations in future and there's doubtless other areas of the business I could explore, if you have any ideas, let me know. Also, if this seems like the kind of thing you'd love to do, we have plenty of other interesting challenges, we're hiring and would love to hear from you.

Sources

We’re hiring developers
See job listing