Software Development Engineer Interviewing Process at GoCardless

Jorja Hung
Tech @ GoCardless
7 min readSep 1, 2022

--

Interviewing can be a stressful time, and balancing processes with your personal responsibilities isn’t always easy. At GoCardless, we really appreciate the time you take getting to know us, as well as the effort and energy you put into preparation.

We feel that one of the (many!) ways we can help an interview experience be as frictionless as possible is not only designing a process that’s respectful of your time, whilst giving both yourself and us a chance to decide if we could work well together, but also helping you know upfront what we look for in each interview and how you can best prepare.

Our interviews are currently being held remotely, and this will likely stay the same for the foreseeable future. We suggest making sure you’re set up with a good enough internet connection to have your camera on and in a quiet place with as little distraction as possible. If you have connectivity issues or similar, then don’t worry, we’ll always do our best to rearrange for a more suitable time. We want to set you up for success and aim to provide reasonable adjustments to make our recruitment processes as accessible as possible. Please let your Talent Partner know directly if there is anything we can do to support you.

At GoCardless we look for pragmatic, well-rounded, curious engineers. We have a polyglot mentality and are completely aware that technology ebbs, flows, and changes over time. If you’ve not used something in our stack before, that’s fine! Technology for us is a means to an end of solving a problem. The most important thing for us is being able to solve fuzzy, novel, ambiguous problems and communicate those with others, as well as core engineering concepts i.e. reliability, scalability, testing, performance, and the like.

This post will cover the process we use for the Software Development Engineer processes, but will likely hold useful context and information for anyone interviewing for an engineering role at GoCardless.

The Preliminary Call — 30–45 minutes
The first step in the interview process at GoCardless is to talk to a member of our Talent team. This is a chat for them to tell you more about us and what we’re looking to do as a business, as well as answer any questions you might have about the role, the engineering organisation, and so on.

They’ll likely have some questions for you as well, primarily just to make sure that we have roles available that are a good fit for what you’re looking for. It’s great to have a few examples of projects you’ve worked on, the types of challenges you’re interested in solving, as well as letting us know what motivates you — this means that if all goes well and we proceed to an offer, we have a better idea of which team might interest you the most.

The Coding Interview — 60 minutes
If there seems to be a good match at this stage and you’re keen to progress, then the next stage is a Coding interview. This is by no means a leetcode, algorithm, hackerrank type session, and more of a pair-programming exercise working alongside one of our engineers on a problem we face on a day-to-day here at GoCardless.

We highly recommend using the language you feel most comfortable with but also appreciate that some candidates might read the problem and determine which language to use from there. Either way, please come prepared with an environment where you can write and run your code, as well as test it. You’re certainly free to use Google, Stack, or any other resources you might use to solve problems in your day-to-day.

We’re not just looking for someone who can get through the task as quickly as possible. We love to see a good balance of planning a solution, and putting it into action while showing awareness for technical tradeoffs and writing testable code. We’ll have some follow-up questions as well, mainly to probe around yourdepth of knowledge on some of the non-functional requirements.

We suggest thinking out-loud in this interview. Ask any clarifying questions on the problem with the interviewer, make sure they understand your direction and make them aware of when you’re making technical analysis decisions. The interviewers in turn will help nudge you in case you start veering off in the wrong direction — they’re here to help you succeed and see how you can take on feedback too.

You’ll have 10–15 minutes or so at the end of this interview, and all the following interviews, to ask any questions you might have about the working life, the engineering set-up, or anything you might want to know about GoCardless.

To determine whether we move forward at this stage, we use our leveling framework, which is mapped to the competencies expected of an engineer at each level. Should your performance in the Coding interview align with your expectations, or come close to them, we will then proceed to the final loop of interviews.

The Final Loop
We generally book these all in one go after asking for a spread of availability. These interviews don’t need to be back-to-back or on the same day at all, and most candidates will typically spread these over two or three days within a week.

Technical Interview — 60 minutes
This interview is to help us understand how you solve problems outside of writing code.

In the first portion of the interview, you’ll be provided with some pseudo-code to review and analyse, and determine whether this code could be improved or fixed. We might ask about scaling, testability, edge cases, and the like, to see how well you understand the code.

It’s best to treat this session much like a code-review pairing session with a colleague, so continue to think out loud and help them understand where and when you’re weighing up decisions, and why!

For the second part of this interview, we’ll be asking you to design a large-scale system. Make sure first and foremost to scope out the problem, understand it, and clarify the requirements necessary.

It’s great to see people drive this interview when possible, and communicate your thought process and tradeoffs as you go, as well as justify those decisions. As much as we like it when people make decisions with conviction — as long as they share good reasons for it! — make sure to listen to the interviewer’s nudges and feedback. Much like other interviews, they’re here to help and stop you from falling down rabbit holes. Be prepared to be able to back up why you’re making decisions and why you’re making certain technology choices.

As you might expect, be prepared to use a tool to help you draw out this system, whether that’s using Excalidraw, Zoom’s whiteboard tool, or Google Drawings. Use whichever tool you find most comfortable for purpose. Some people prefer just to talk through a solution, or use pen and paper; this is also fine, but make sure you’re really able to get across your design and choices to the interviewer.

Foundational Skills Interview — 60 minutes
The Foundational Skills interview is here to see how you work with others. At GoCardless, the ability to communicate effectively, work collaboratively in a team, as well as prioritise, adapt to change, and take on feedback are all super important. In other contexts, people might refer to these as ‘soft skills’, but we wanted people to appreciate that in our environment these skills are not just extremely important and anticipated, but foundational to building great products together.

This is also an opportunity for you to show how you make an impact outside of just the technical side of the role. We’d love to hear how you might have led initiatives, scope problems alongside Product (or other relevant cross-function work), and how the work you and your team completed made a wider impact on the business outcomes.

At more senior levels, we might expect more concrete examples of working across multiple teams, creating influence, and driving buy-in from stakeholders, and where you might have a tool-kit for dealing with these scenarios.

What’s Next?
The member of the Talent team you’ve been working with will collate the interview feedback in a meeting where they can hear any observations holistically, with a member of the senior leadership team to adjudicate the discussion to make sure the feedback is unbiased and fair.

From there, the Talent team member will give your full feedback (regardless of the outcome). We appreciate any feedback at this stage too, as we’re always looking to improve our own processes as best as possible. A few days after you finish our process you’ll receive a feedback form, where you can detail where you think we do a good job, and where you think we could do with some improvement.

Hopefully, with all that info you’ll be in good stead to tackle our process with your best foot forward. If you haven’t applied or started interviewing with us just yet, please do check out our available roles to see if we haven’t anything that might interest you.

--

--