Here’s a rundown of our software engineering interview, and some tips to help you ace it!
Fivetran is quickly becoming the default choice for companies looking to build modern data stacks that empower analysts to focus on analytics, not ETL. Our product is a bit like an iceberg: simple and clean above the water, with a mass of engineering effort and innovation below the surface to keep everything afloat.
Our main engineering challenge revolves around building powerful abstractions for data manipulation and processing, so that we can correctly model and adapt to hundreds of ever-changing sources of data. We are relentless in finding the simplest and most intuitive user interfaces for our customers, and we tackle a number of problems related to scaling a high-volume data platform and security-critical product.
We take great pride in crafting a simple, widely used piece of data infrastructure that improves decisions across thousands of companies. If you’d like to join our team, read on to understand how our interviews work!
We are constantly iterating on our interview process, and part of that is accepting that at any given moment, our process is imperfect. Despite that reality, here are two principles that guide our process:
The best interviews directly simulate skills you will use on the job. While it’s impossible to perfectly simulate on-the-job performance in a few hours, we try to evaluate candidates on the sorts of activities they would be using day to day at Fivetran. Therefore, we will sometimes design mock simulations of a skill set, rather than asking about your knowledge or experience. We also like to focus on specific examples, rather than generalities.
Technical communication and organization of ideas. All of the roles within engineering involve regularly communicating your ideas to your peers. We focus on this communication heavily during the interview process, because we believe it’s required for success. In each of the interviews, you are expected to have a two-way conversation with the interviewer — asking questions is encouraged!
Recruiter screen – 30 minutes, phone call
During this call, you’ll hear an overview of Fivetran technology and learn about our rocketship growth (including numbers), team structure and company goals for the year. Pay close attention to what you learn here — especially insights about our culture — and ask yourself: What resonates with and excites me the most?
On your end, be candid. Share what truly motivates you, how you like to work, and how Fivetran can support you in your career goal. Your recruiter will look out for you and let you know if Fivetran is a company you’ll thrive in and enjoy.
Talk with the hiring manager – 30 minutes, video
Be prepared to speak in detail about your job history, including the scope of your responsibilities, your foundational knowledge of a specific technology, your contributions both to code and to your team’s culture, and what guides you as an engineer. Pick a project you’ve participated in and be prepared to dive in. Make sure you touch on three dimensions: scope, contribution and justification for your decisions.
You’ll hear about our engineering focus — simplicity and practical approaches — and how it works in practice. Prepare for this and ask yourself: How do I align with this focus? When have I showcased it through my work?
Be exceptionally curious and ask insightful questions. Even if you already have assumptions, be bold: This is your chance to confirm them.
Coding challenges – 60/90 minutes, video or in person
We have two coding challenges that we use, designed to evaluate different aspects of your software engineering abilities.
C1) Problem solving. This first problem is a fairly standard coding question, designed to determine a base level of problem-solving ability in the software language of your choice. We currently use HackerRank for this problem, although we are evaluating alternatives.
C2) Coding structure and data processing. This is a more focused coding problem that we have designed to evaluate your ability to interact with a codebase, think about code structurally, and perform some basic data manipulation work. We give this as part of our on-site interview.
Due to limited test development bandwidth, this is given in the Java programming language, although there are very few advanced aspects of the language included, and the interviewer is instructed to assist with any minor language difficulties or translation issues (i.e., a Python engineer ought to be able to pass this interview with a fairly quick review of Java language fundamentals).
Design interview – 60 minutes, video or in person
The design interview is intended to simulate a conversation between two colleagues. Don't expect to have to find a needle-like correct answer in a haystack of wrong ones. Instead, be prepared to talk about the pros and cons of your choices, and why they might work better in certain situations and worse in others.
You're encouraged to ask questions about the question, and about the merits of different options. Does your interviewer have a unique perspective on how to tackle the problem? You won’t know unless you ask. This interview works best for both participants if it's a conversation.
We hope that you'll find this section of the interview to be a lot of fun! One of the most enjoyable parts of the development process for many engineers is the sense of discovery and creativity that comes along with planning out something new, and we want to get as close to that as we can in the context of an interview.
Teamwork and culture fit – 30 minutes, video or in person
We always have a dedicated interview for evaluating candidates on their approach to teamwork and collaboration. This is not a generic Is this person the same as every other person we’ve hired? interview. We are specifically evaluating whether we can see you integrating with our company values:
Integrity. We do the right thing, even when it's harder in the short run. We challenge the status quo by reasoning from first principles.
Initiative. Fivetran belongs to all of us. We take ownership and are accountable for getting things done. Through curiosity, learning and coaching, we grow as individuals and teams.
One team, one dream. We share the pains and successes of our customers, partners and colleagues. We seek, gather and trust a diverse group of teammates with different perspectives to guide our progress. We go above and beyond for each other.
Hiring manager interview – 30 minutes, video or in person
Your hiring manager is looking to assess how you will integrate with the norms of the team. They will dig into things such as your understanding of technologies relevant to the job, your ability to plan, organize and execute on your work tasks, and your motivations for joining.
Most of the conversation will be about your understanding of Fivetran, and also fill in any gaps with an overview of the company, product, engineering teams and tech stack.
We love to hear your questions throughout the conversation, and you should feel free to ask questions at the beginning, in the middle or at the end of the interview. Each interview is as much a chance to learn about the company and interviewer as about the interviewee.