Internally mobile

By: Diarmuid Gill / 27 Jul 2015

At Criteo one of the things we value most in our engineers is a sense of technical curiosity; the desire to learn more and more about cool new tech, especially in the context of the Criteo technology ecosystem. In R&D, we use a wide range of technologies such as Hadoop, Storm, Spark, Kafka, Cassandra, Mesos, Chef, AngularJS and many more. It is a real developer’s playground. We understand that it can be very tempting when one of the other teams in R&D are working on something you have always wanted to learn more about. We provide two solutions for this: the Voyager program and Internal mobility.

So what happens when you want to find out more about the cool stuff that is happening in other teams but you don’t necessarily want to leave your own team? Our solution to this is the Voyager program (also known internally as desk surfing). Based on a suggestion submitted by one of our engineers the concept is simple: any engineer from any team can join another team for a period of 2-4 weeks, as long as the hosting team agrees to this.

This provides many upsides for all parties concerned:

  • For the voyagers:
    • They gain a new perspective on the receiving team
    • Broader knowledge of Criteo in general and in particular of our code base
    • Basics of new tech/know-how/good practices
    • Get a peer feedback outside his team
  • For their team:
    • The voyager comes back energised after their voyage, enriched with new knowledge about R&D
  • For the hosting team:
    • Get additional workforce that already knows what Criteo is about
    • The voyager can bring skills and knowledge not already in the team
    • Spread knowledge across R&D about what a cool team they are
  • For Criteo
    • more cooperation/communication between teams because individuals know each other better
    • easier sharing of best practices
    • better consistency in how teams work / the code they produce

We kicked off the process in early 2014. At the start we watched things very closely as we were unsure how things would go from a situation of very low mobility to what we were proposing. The results have been inspiring. So far every single team in R&D has participated, with at least one team member, usually more. 20% of R&D has participated in the program. We currently have 22 teams offering voyager positions across all of engineering.

As much as people build a real strong bond with their immediate team we understand that after a while they want to develop new talents and get to experience new things. The philosophy behind our Internal Mobility program is if one of our engineers wants to work on new stuff then we should do everything we can to support this. We have so much cool tech, with so many really challenging problems to solve in here we’re pretty sure most needs and interests can be accommodated. The goal of the program was ensure that it should be easy to move internally so that our engineers don’t feel they need to move outside to broaden their horizons.

We added a few rules to make the process clear.

  • Engineers don’t need their manager’s approval to change teams
  • They only need to get approval from the destination manager
  • They must negotiate a “reasonable” transition period (between a few days and one quarter). That period is used for knowledge transfer and finishing current tasks, not to wait for a replacement.

Our dev leads/managers play a vital role in the process:

  • They must evangelize their team and advertise open positions internally (and externally of course )
  • It is OK to approach someone in particular and try to “poach” someone off another team, in fact this is considered fair game
  • It is the responsibility of the destination manager to validate that the candidate is right for the position. They can do whatever they feel is necessary to assess the candidate. We encourage them to use one or more of the following:
    • nothing (if they know each other)
    • referrals
    • having the candidate spend one week in the team
    • get guidance from senior management
    • access the Voyager’s level and review score from HR.
  • Open positions are all freely accessible in one central location in our internal wiki with contact info, skills and seniority required, team and project description.

Criteo is a very active company with many challenging topics driven in an Agile fashion. As a company we really value mobility; we reward engineers who are mobile because they help spread their knowledge, best practices and as such are a central part of our engineering culture.

Our engineers are correspondingly of a curious and creative breed. Whether they feel the time has come to move on from their current team and work in a different area or whether they simply want to gain an insight into how things are done in a different team, their needs are catered for here.

Ultimately, the best products are produced by the best engineering teams so we organize ourselves around the needs and interests of our developers. What is good for them as individuals is good for us as a whole. Every team has such interesting challenges that we are certain that a replacement will come, either through another mobility or an external hire.

By the way, we are hiring.