Are you about to interview for a Full Stack or Backend Engineer position at TransferWise? If yes, you’re reading the right blog. Here’s a handy guide to help you prepare for our technical interview.
Hi, I’m Andrew, an engineering Tech Lead here at TransferWise. I joined because of the engineering culture and the opportunity to contribute towards building a really great product that impacts millions of people. In this blog, I’ll tell you more about our technical interview, what it is and how to prepare for it.
What’s the technical interview all about?
The TransferWise technical interview dives deep into who you are as a developer and your technical skills that are relevant to the role.
The interview has a few different parts: a chat about your experience; a series of technical questions and a technical task. The technical task requires you to write some code to solve a problem. Don’t worry, it’s not a puzzle or anything confusing. The interview roughly takes an hour and a half, with the technical task taking about half this time.
Before the interview
You’ll receive an email from TransferWise containing the details of the interview: when it’ll happen, who’ll be the two engineers who will interview you, and how it’ll be conducted. It can be an onsite interview where you get the opportunity to visit one of our offices (depending on your location), or a video interview via Zoom or Google Hangouts.
At the start of the interview
We’ll tell you a bit about TransferWise - what we do and how we work. We’ll also ask a bit about you - your projects and technical achievements and what you like to work on.
To prepare for the interview, we recommend that you:
- Have some examples of recent bugs you’ve fixed, problems you’ve solved and tech you’ve contributed towards
- Be prepared to talk about projects you’ve worked on (especially the technical details of them!)
- Be ready to use a whiteboard to communicate your thoughts effectively
- For some engineering positions, we ask candidates to do a take-home coding problem prior to the interview. If this is the case, be prepared to walk us through your solution and thought process
How to prepare for the technical task
The main part of any technical interview at TransferWise is a technical task. This part might seem daunting - you’re probably wondering what to expect and how to prepare, but don’t worry. The technical task is designed for us to see how you work and gather insights into your style and proficiency at coding. We encourage you to talk through your thought process as you work through the task.
Before the interview
We encourage you to brush up on the following technical topics:
- Understanding of SOLID principles and how to apply them
- Common algorithms and data structures - how and when to use them, their complexity and roughly how they work. We’re not going to ask you how to implement a red black tree for instance, but it’s helpful to know about inserting into, or traversing trees
- REST and an understanding of message passing concepts. We use REST and Kafka, along with a variety of other tech to build our product so we’d like to hear about your relevant skills!
- If you’re interviewing as a Full Stack or Backend Engineer, we’ll also ask you a few database questions. It’ll be helpful to review topics such as table joins, indexing best practice and transactions
You may also wish to go over these additional topics:
- We don’t have a dedicated QA team at TransferWise, but expect our engineers to be responsible for and thoroughly test all the code they’ve written. So bring your testing A-game to the interview!
- There may be elements of system design in the technical task. For instance, we might ask you how you might make your code scale, or where you might deploy your piece of functionality in a larger system. We recommend understanding microservice architecture when preparing for your interview
- If you’ve applied for a specific role, we tend to ask a few role-specific questions. For instance, If you’ve applied to work on our security team, you might want to cover security related topics in your preparation
During the technical task
As with any programming task, we also recommend that you:
- Make sure to understand the question. Ask us questions to clarify what we’re asking if you’re unsure
- Start with a simple solution and then improve it. If you run out of time, you can just explain to us how you would have improved it
- Talk us through your thought process and your assumptions while you work on the problem
- Always feel free to ask us for help if you don’t know something, and we can help you out so you can continue with the task and show us what parts of the problem you can do
Other tips and tricks
Interviewing in our office?
- It’s a good idea to arrive slightly earlier than the scheduled start time to settle yourself down and grab a coffee!
- When signing in, please use one of the interviewers as your contact and they’ll be notified of your arrival
Interviewing via video call?
- For a remote interview, a good internet connection and a quiet room are very important
- Consider using a headset for better audio quality for both sides
- As you’ll be asked to undertake a technical task, having access to a computer is a must!
- Be prepared to use an online collaborative code editor such as the one HackerRank provides
- Definitely avoid attending via your phone
Finally, at the end of any technical interview at TransferWise, it’s your turn to ask us questions.You might want to know more about life working at TransferWise, how we send money all around the world or more about what tech we use here. If there’s any questions you have, this is the time to ask!
Good luck with your interview!
P.S. If you haven’t already read Tony’s guide on the TransferWise interview process for Software Engineers, jump on over to this post. He’s covered useful information on what interviews we put candidates through, and roughly what’s involved in each.