Building a great interview process that gives great feedback about how well a candidate will fit your engineering team is quite tricky. There is no magic playbook, although many have covered this subject and published great resources.
In this article, rather than giving you a recipe, we will describe our process, and let the different people involved detail what they are looking for during the interviews.
An Engineering team by the sea (mostly)
Our engineering department gathers 120+ people split into feature teams. However, if you have a look at our open positions you will notice that few of them will mention a specific team.
In fact, we are not looking to fill a specific position prior to meeting someone, we try to find the best fit within our organization depending on the candidate’s wishes. This flexibility gives room for open discussions and avoids applying too many constraints.
On average we welcome 3 newcomers every month in the engineering team. It requires quite some work and we have built and refined a standardized, yet tailored workflow to accommodate different seniority profiles.
We chose to have an in-house team of recruiters which helps in keeping up with our hiring needs in a fast-paced environment. This team is based in Montpellier (south of France) but we also hire for our two other engineering hubs in Paris and Bucharest.
In this context, it’s a challenge to ensure a consistent experience considering the number of candidates we have. If you add the fact that we frequently have new opportunities it can be even harder to keep our process as short as possible as new positions might open along the way.
The main consequence of having most of our engineering team in Montpellier is that we have to attract talents to the south of France. The upside is that it’s easier to organize open events where we can meet with potential candidates in an informal way here. We can easily invite people to join us for a pizza party at lunchtime or even play Mölkky during after-work drinks outside the office, this might sound like a detail but we’ve got great weather here!
Hanging out and sharing convivial moments is truly part of our culture.
We care about our candidate experience and we know our process is quite thorough. Our goal is to make sure that we are not wasting their time. This is a real tradeoff. We constantly assess if we should go further in the process and take up more precious time from applicants.
Our recruiters constantly sync with each feature team to stay up to date when it comes to their culture and needs. This way, we are always ready and few things need to be discussed when we open a new position.
Step 1 — Preliminary interview
During this first short conversation (about 30 min) — preferably by phone, video conferencing or face-to-face — we mostly try to get to know each other, understand the candidate aspirations, motivations, and desires.
It’s also a moment when we take time to give an overview of Teads and figure out if the person we are speaking to has questions about our business.
Alizée Marion-Wuillemin is one of our recruiters:
The aim of this first contact is to learn a little more about each other. The idea is to understand the candidate’s motivations following an application, an exchange on linkedin … before evaluating his/her experience, culture fit, and curiosity. We especially focus on professional projects and experience in an agile context.
We always take time to answer questions about Teads, our products and our technical stack.
We also like to get to know more about personal activities and hobbies. And if the candidate is volunteering in local Tech meetups or is an OSS contributor, of course, we should talk about it!
Following this step, we send a debrief note to the managers involved.
We include a recap of the candidate’s experience, its strengths as well as topics that should be discussed further in the process.
We also have weekly meetings to share about candidates that are in process.
Step 2 — Technical assessment
We usually ask our candidates to do a small home exercise. Depending on the candidate, we will send a coding or machine learning test. We encourage her/him to do the exercise using their preferred language and tools. These shouldn’t take more than a few hours to complete. Sometimes a technical test is done during an interview instead.
We know that this step can be heavy on the candidate, but it gives a great basis for a technical discussion with a peer.
In each feature team, we have voluntary software and machine learning engineers that can review these exercises.
What do we expect?
Regarding the software engineering test, we expect the candidate to produce a project that works exactly as the problem states it. The code should be buildable and executable without modifications.
Christophe Oudar, one of our reviewers has some recommendations:
When I evaluate the submissions I mainly focus on: the algorithm, its complexity & correctness, test coverage and software engineering best practices: readability, reusability, idiomatic code style, etc.
I do not expect the candidate to over-engineer his/her submission with additional features, a UI or even an API. Rather, I look for some insights on what is his/her coding standard as a professional.
Cyrille Dubarry is one of the Machine Learning reviewers :
Our exercise is split into two parts. In the first part I try to see if the candidate is comfortable manipulating data using his/her preferred tool and if he is capable of thinking and does not jump to conclusions too quickly.
In the second part, I do not expect the candidate to offer the best possible solution. Instead, I expect him to suggest improvements for his/her solution during the debrief and actually demonstrate basic Machine Learning knowledge (feature transformation, feature selection, cross-validation, etc.).
What happens during the debrief?
One important thing for us is that the outcome of the previous step isn’t a harsh Go/NoGo. During the technical debrief, the candidate is expected to explain the solution logic. We mainly focus on the solution weaknesses to give the candidate a chance to improve it with the help of the reviewer.
We know that this step can be stressful. But there is no trap and we encourage candidates to use all the help and guidance they can get from the reviewer.
The debriefing is also a moment where we discuss with the candidate about his/her background, experience, and an opportunity for him to ask questions about Teads with another software engineer.
Technical debrief feedback
If the results are below our expectations we do our best to give honest and transparent feedback on what the candidate can improve and work on. As a recruiter, it’s sometimes a challenge to debrief these technical points in depth.
Otherwise, we move forward with the process and will ask if he/she wants to join us for a day.
Step 3 — Onsite with the Engineering Team
Organizing a day with the team is important to us. It’s a way to meet everybody and really put the candidate in a situation where he can tell if he/she would like to join us. During this day we concentrate on software craftsmanship and culture fit.
Gregory Truchetet, who joined us about a year ago, shares about his onsite experience at Teads:
Coming from Paris, my day onsite was pretty intense and full of insights about the expectations, the organization and the culture of the company. During this day I met people from different teams, from HR, to management and pure tech people.
The technical parts of my interviews were challenging and friendly, all the necessary stuff was done to make me feel comfortable and welcome.
Step 4 — Mutual feedback
The first thing we do is ask the candidate to have a feedback about the onsite. Then we gather everyone involved in the process to come to a decision. All points of view are taken into consideration.
The offer/rejection step isn’t easy. But in any way, we ask the candidate about his/her personal experience going through our process and all suggestions are welcome to enhance it!
Having an offer from us is only the beginning of the journey at Teads. And it doesn’t stop once job contracts are signed.
Relocating in the south of France
Our main engineering hub is in Montpellier (south of France) and we frequently onboard people coming from all over the planet. We know that moving can be a stressful life event. During the process, we encourage applicants to spend the weekend in Montpellier to explore the area and take time to check different neighborhoods they might like.
We also offer a relocation package to actually help with all the necessary steps. Here is feedback from François Bagaïni who joined us recently:
I made a 600 km move to come to Montpellier. I stayed in an Airbnb for one month and I was assisted by Ma Nouvelle Ville for housing research. They dealt with housing agencies and I was able to visit up to 6 places in a day, it was very convenient.
Thanks to the relocation bonus allocated by Teads, I was able to hire a team of movers which made things pretty easy. On a side note, Montpellier is an attractive and accessible city.
Our onboarding program
Once aboard, newcomers from the past weeks will gather for a comprehensive program. During several days, they will discover the mission and challenges of each feature team.
This session is launched by our Chief Technology Officer and Chief Product Officer. It’s a great way to share the culture, vision, and strategy. It’s also an opportunity for everyone to ask questions about it. During this program, participants will also get an introduction to the AdTech industry.
Recently we launched two new initiatives to facilitate our newcomers’ integration:
- An anniversary lunch, we will gather all team members that joined Teads the same month (whatever the year of arrival) for lunch. It’s a great opportunity for newcomers to connect with people from other teams.
- A buddy program, each newcomer has a “buddy” to talk to. Buddies are usually people with the same kind of Tech background but from another feature team. This can help newcomers in finding their way around topics they might not want to bother their manager with (advice about the city, great places to go out, etc.). It’s also an additional point of contact for day to day company-related questions.
Never assume you’re done
Unfortunately, nothing is ever perfect. While we were growing, we noticed a few hiccups for some candidates (late feedbacks or steps that would take too long).
Keeping up with this growth is challenging for the team but we learned, reacted and will keep an eye out on these pitfalls.
- We are hiring for all our feature teams all kinds of profiles and seniority.
- We value computer science and software engineering skills rather than specific tech or languages (not only Scala!).
- But most importantly, we hire team players and foster a diverse and inclusive culture that encourages everyone to work together.
We regularly open our doors for after-work drinks or host meetups, do not hesitate to follow our Twitter to stay informed and come meet the team!