Onboarding AppsFlyer’s Rocketship

Hadas Yaakobovitch
AppsFlyer Engineering
5 min readJun 18, 2018

Have you ever started a new role in a new company and “did not get what you signed up for”? At AppsFlyer’s Engineering team we try to hire differently.

Last summer, as our engineering team started growing rapidly, we decided to try something new to help us scale efficiently. Every newly hired engineer that joins AppsFlyer’s team, whether he is an entry-level college graduate or a senior architect, goes through an intensive eight-week training program. The program is designed to acquaint the trainee with our code base and tech-stack, pass on guidelines that would make us all better engineers and most importantly - give the trainee the flexibility and knowledge to choose a team or project they will eventually want to work in.

Setting the Stage

The primary goal of our training program is to immerse our trainees with most of our tech-stack and code base, while promoting solid long-term guidelines (such as how we fix bugs and inefficient code as we come across it, rather than leaving the job for future engineers). To do that, a group of senior engineers serve both as technical (“leads”) and social mentors (“buddies”), and meet with the trainees regularly to coach them on how to become more effective at AppsFlyer.

Engineering our culture, as much as our products, since 1824. >>View Open Roles

The first few days of our training program focus on basic ADTech (advertisement technology) and fundamental engineering skills (bash, queue management, networking). We believe that every engineer should know the business eco-system in order excel at his or her position, and by learning technical skills that are considered basic at AppsFlyer, we “level the playing field” and make the trainee feel comfortable with the common technologies we have at AppsFlyer.

After the trainee got acquainted with basic tech and the AppsFlyer market, he or she moves on to a short-term project at DevOps, because an AppsFlyer engineer should have end-to-end code and infrastructure responsibility altogether.

After those first two weeks the trainee receives the basic skill-set to work with all departments at AppsFlyer.

Project Rotation

At AppsFlyer we believe in learning by doing, and that’s why each trainee is assigned to 3 different teams, depending on the trainee’s expertise and interests. On each team the trainee is assigned a project which takes a week or two. Each project gives the trainee an actual feel of what the team does everyday, what is their tech-stack, what challenges they encounter on their day-to-day jobs, and who are the people behind the screens. We simply believe there is no better way to learn than by diving into the code.

The project rotation gives the trainee a good sense of the tech expertise and challenges at AppsFlyer engineering through each team’s local challenges and projects.

Regional/Global Academies

In addition to our engineering training program, we lead a culture of learning at AppsFlyer. We have a special academy program for every new employee at AppsFlyer to pass during his or her first months of employment. During the academies AppsFlyer employees gather from around the globe to learn, share knowledge and experience.

  • Regional Academy - a concentrated week of core AppsFlyer and its various products. The academy takes place during the first two months of employment and is located in various AppsFlyer offices around the world.
  • Global Academy - A week which is all about the AppsFlyer culture- meeting the team, getting to know the AppsFlyer roadmap, and getting a chance to collaborate with all the different teams in one place. The academy takes place after three months of employment, and is located in the Israel office in Herzliya.

Team Selection

The training program helps familiarize the trainees with the many diverse opportunities they have at AppsFlyer, ensuring that they wind up in the team and project they are most passionate about. Instead of assigning newly hired engineers to teams arbitrarily, based on a small amount of interaction during interviews, trainees choose the team they will join at the end of their eight weeks training program. This gives the trainees an opportunity to meet with various teams and “dig in” their code before committing to join a specific team.

We believe engineers are most productive when they work on things they are passionate about. Matching engineers with teams they are excited to join is a sure way to achieve that goal.

Aftermath

Our multi-disciplinary training program, like most things at AppsFlyer, is constantly evolving to better fit our needs. Some of the training improvements are just a matter of weaving in feedback we get from engineers whilst in the training program or looking back at it months after it is over.

As the program developed we’ve noticed a number of additional benefits. The most obvious one is that our engineers became more motivated, talented, and with a greater sense of ownership to their teams and the entire company. In addition, by centralizing the onbarding process, the overall time spent on on-the-job training and aligning the guidelines has greatly decreased, which allows us to scale more efficiently. We also noticed that engineers became more social both in and outside their teams, which encourages better communication and cross-team problem solving.

In conclusion, we at AppsFlyer Engineering started an 8 week long training program which immerses the newly hired engineers in our code, tech-stack, and daily challenges. At the end of the program the engineer decides which team and project they want to be part of. The program has proved to be beneficial for both the organization and the engineers.

Good luck, and remember - people are the most important asset.

Ah! and One last thing…We are hiring (and we want you!) AppsFlyer careers

--

--