in Business

A summer internship with GoCardless

It's a rainy day in my beloved Scotland and I’m writing these lines from a library cafe. Almost a week has passed since I last paced the floor of the GoCardless office in London. It feels strange to think that my internship has already come to an end. When I applied to GoCardless last winter, it wasn’t the result of an epiphany. I didn’t wake up one morning with the striking realisation that working in fintech would make for an exciting summer. Instead I wanted to learn about maintaining high availability on critical systems, and about the security intricacies involved in handling payments, while getting my hands on Ruby again and doing some Javascript. In short, I wanted to boldly go where I hadn’t gone before.

Diving in

Fast forward a few months to the third of June, a Friday, my first day at GoCardless. I was impressed by how quickly I managed to get some work done. I spent the first few weeks (well, the whole summer really) asking countless questions of my colleagues about the general structure of the codebase, but it was fairly evident that our policy of code review and extensive testing made the code itself very clean and easy to modify. I must admit, I still don’t enjoy writing tests, but if this summer has taught me anything it’s that tests are a wonderful safety net when an undergraduate student like me is pushing code to production. Thanks to our platform team we also have a great docker-based deploy workflow, which was an absolute pleasure to use.

Full stack experience

Over the course of the summer I worked on various projects, both as a backend and as a frontend engineer. The largest one was likely our revamp of CSV exports, which my colleague Tim has written about in detail here. Towards the end of August we organised an office hackathon, two week-days where the whole engineering department worked on various ideas that could be beneficial to the company. Some of us worked on improving the speed of our test suite (for which they got “make tests fast again” baseball caps!!!), while others investigated how we could migrate our dashboard to Typescript and Angular 2. I worked on developing a GraphQL endpoint for our API.

One thing I haven’t yet mentioned is that we use JSON Schema to specify our public and our internal APIs. This is extremely useful: we can automatically generate documentation, REST clients (our PHP client, for example, is auto-generated from that schema).I thought it would be interesting to try to generate a GraphQL schema, which would call our API under the hood and return data in a Relay-compliant format. It was a really interesting experience, and hopefully it will be useful one way or another!

People power

On a lighter note, let me say a few words about the environment. I clearly remember myself looking through our internal team page during my first week. We have a picture, a short biography and an answer to a few questions for each employee (extremely useful for someone as bad with names as I am). One of those questions was “What do you like the most about GoCardless?”, and the number of answers boiling down to “the people” made me chuckle. I do have a slightly misanthropic side, but really, the people? How uninspired. How cliche.

As weeks went by, however, I realised what they all meant. Every single person I worked with was incredibly smart, patient and kind. I cannot emphasise enough how lucky I have been to work in such an environment. It pushes you to go the extra mile, to learn more, with the confidence that if you stumble someone will be there to catch you. Oh and, we’ve got free snacks and drinks.

There are so many more things I would have liked to say but this blog post would quickly turn into my autobiography. I will leave it there. If you have any questions please don’t hesitate to contact; ask to be put in touch with me if you would like to know more about interning at GoCardless.

Interested in joining the GoCardless team?
We're hiring