MongoDB has a unique way of placing newly minted engineers on their teams. Engineers right out of college — “new grads” as we call them — try out three different teams before choosing the best fit. I recently finished my time in MongoDB’s New Grad Rotation Program. While it was challenging, I’m confident it made me a better engineer and set me up for success at my first job out of college. I loved my experience and was curious how this program came to be and what others thought of it, so I asked around. This is what I learned.
The new grad's dilemma
The search for my ideal team actually began at the beginning of my senior year of college. I had just turned 21 and I was overwhelmed with some of the biggest decisions of my life. Not only did I suddenly have to choose my beer at The Alehouse, but I also had to choose where to start my career! Every paper I had written and project I had turned in was building to this moment. If I chose the wrong company, or even the wrong team at the right company, I could be set back years. When I decided to join MongoDB, I thought that my career dilemma was over for the moment, but I still had one critical decision to make.
College taught me a whole lot about computer science and a whole little about working in the industry. My college transcript would tell you I should work in algorithmic theory, but no algorithm I could devise would help me decide if I should engineer query optimization or backup automation. MongoDB has teams that work on low-level systems, front-end web development, and everything in between. If I had no idea what team to join, our recruiters and engineers certainly didn’t either.
An ambitious solution
I am not the only engineer to have faced these issues, and new grads are not the only ones affected by them. Three years ago our recruiting and engineering teams decided to tackle this problem with MongoDB’s New Grad Rotation Program. During their first two weeks, new grads hear about each of the 12 teams on which they can rotate, list their top five preferences, and get placed on three. They then spend six-to-eight weeks on a rotation with each team. During each rotation, new grads weigh the work they’re doing, the technologies they use, and each team’s atmosphere. Then after they have experienced them all, they rank the teams.
The rotations last six months in total, and are a huge investment of both new and experienced engineering time. However, the payoff is tremendous, as rotations nurture extraordinarily productive engineers who love their jobs, excel at them, and have a wide view of the rest of the company.
In Spring of 2013, Stacy Ferranti, MongoDB’s Director of Talent Acquisition, decided to change how the company placed new grads on teams. MongoDB was experiencing rapid growth and things needed to change. The company had been hiring college graduates for engineering in general, not a specific team. Originally, “engineering” basically meant the Server team, but as the Drivers and Cloud Services teams grew, it was no longer obvious where every new grad would fit best. A brilliant engineer would be hired, but their transcript would say Head TA of Introduction to Computer Science. Should they work on Replication or the Ruby Driver? Stacy decided to try to empirically find out what a new grad is good at, and then combine that with the new grad’s interests. New grads could be introduced to the people they would work with and the code they would work on, and use that data to find the best fit.
An evolving program
The rotation program has evolved from year to year, based on the feedback that Stacy collects following each class. In 2015, Sara Naouai came on board as program manager, to ensure that both the new grads and mentors get as much as they can out of the experience. “It was an additional touch point,” Stacy explains. “We [now] had one-on-ones throughout and it was a different person that you could come talk to. If something wasn’t going well then you felt like you had an outlet.”
Another change was that new grads no longer do technical support for one week in between rotations. The first new grad class did support to gain a deeper understanding of the product in use and see real customer needs, but it just didn’t work in practice. “It was too much of an influx for the Support Team,” says Stacy. “There were periods where there weren’t enough tickets, or a ticket would take longer than a week.”
Sara continues to tune the program to hit a sweet spot: one where new grads are exposed to enough teams to gain the benefit of rotations, for enough time to get a feel for each team, but without protracting the process for so long they can’t settle down. The total number of rotations has decreased from four to three while the duration of each rotation has increased from four to six weeks. Sara has also added teams new grads can choose to rotate on including Documentation, Consulting, and Technical Operations.
A worthwhile investment
The rotation program has significant costs that have to be weighed when justifying it. It can take months before engineers are fully productive on a new team; rotations repeat that ramp-up three times, and experienced engineers must spend time mentoring new grads who won't ultimately be on their team. The new grads pay a cost as well. Dianna Hohensee, one of the 2015 new grads, explained to me how she felt during this time: “Starting each rotation is stressful, like starting a new job. You have to learn how to use all the tools that the team uses and you're trying to impress people because you're new and out to prove yourself. You go really slowly and ask lots of questions because you're trying to figure out what the heck is going on with everything all at once.”
But Dan Pasette, VP of Server Engineering, says it’s worth it: “When we started the program, we realized that we were taking a very real financial risk and hit to the company, because we were dedicating six months of productive engineering time to this rotation program. But the benefits, I think, clearly outweigh that.”
Dan’s conviction was widely echoed by the people I interviewed for this story. When you understand the benefits, you might reach the same conclusion.
Enabling new grads to truly experience their teams before committing maximizes the likelihood that every engineer is where they are most excited. One new grad, Rahul Dhodapkar, initially thought he would join the Server Team, but decided to be a Consulting Engineer instead. “I chose the rotation because it seemed really different from all of the other rotations we were given the opportunity to try,” he said. “I'm thankful I tried it, because going into this job, I would never have expected to be doing this kind of work, and I really enjoy it.” On the other hand, Dianna joined the team she expected to from the start. She still thinks the rotations were worth it. “It was fantastic to choose and try out different fields of programming,” she said. “Coming out of college I hadn't tried most things to even know whether I did or didn't like them, and I got to try out application, web infrastructure, and systems programming.”
Outside of technical knowledge, new grads learn their ideal team environments and can factor that into how they rank their teams. On my first rotation, two of the four members worked remotely and I discovered that I work best when my team is present in my office. My first manager liked weekly check-ins; my third manager preferred a more free flowing dialogue with less structure. I liked that weekly check-ins gave me built-in times to give and receive feedback, so I ultimately chose a team where that was my manager’s style.
For Dan, matching engineers with their preferred team isn’t only about the new grad’s experience: “Just as an engineer doesn’t want to work on a team that doesn’t suit them, if that team is my team, I don’t want them to work there either. I want them to be motivated. The whole process allows them to see and then rank the teams that they want to work on and why.” It has always remained the company’s prerogative to decide where engineers go, but in the class of 2015, all 11 new grads got their first choice.
Senior engineers have a diverse skillset and perspective that helps them understand unfamiliar technologies more easily. The rotation program gives new grads an early boost in this area. “In some ways the New Grad Rotation Program works as a career accelerator,” Sara, the program manager, said. “Learning to ramp up on new teams and projects quickly is a skill unto itself which most engineers fresh out of college are not exposed to in their first few years on the job, let alone the first six months.”
My own experience in the rotation program demonstrates how much variety is available. My first rotation required learning backend web development in node.js. On my second I had to dive into low-level C++ and distributed systems. My final rotation necessitated learning Go and front end web development.
The benefits of a broad experience are often straightforward. After learning what another team does, new grads become resident experts on their teams when their work intersects with that other team. For example, one of Rahul’s rotations was the server’s Security Team, and as a result, he can field countless security related questions from clients.
In other cases, the benefits come from a change in perspective. Kyle Suarez, for example, considers technical writing an indispensable skill for every engineer. He rotated on the Documentation team, and learned how documenting a feature shows it to you in a new way. “It's easy to have an idea and start hacking away at it,” he said, “but then you write the documentation for it and realize that it's poorly named or it's too complicated. It's also made me realize that there are features in the server I wish could be changed, because then documentation and usability would improve.”
For experienced engineers who are interested in leading a team or who are being considered for promotion, mentoring a new grad on their rotation can be a first opportunity to practice management skills. Each mentor is supervised by a proven team lead to ensure that every new grad has the support they need and that new mentors can thrive in their role. The new mentor can see if they want to be a lead and the company can evaluate if they’re ready.
A fresh, holistic perspective
Engineers write better software when they can see the big picture because they’re able to consider how their work impacts and helps other engineers with vastly different needs and priorities. Eric Milkie, a lead developer on the MongoDB Server Team who has worked with many new grads, explains why he sees them as a bridge to the rest of the company:
“Teams within the MongoDB organization have, to a certain extent, developed independent methodologies organically. The New Grad Rotation Program is especially valuable for these teams through the seeding of new ideas and methodologies that teams would not ordinarily receive. By rotating through different engineering teams over a relatively short time period, new grads have the ability to independently evaluate different engineering methodologies without biases. They are subsequently able to introduce these ideas to their final assigned team,” Eric says.
“This works in a positive way to break up the ‘silo effect’ that can result when you have static teams that traditionally communicate with each other via management channels. In addition, the connections that are forged by new grads rotating through different teams open up new communication channels and help to bring an emphasis towards the betterment of whole-company culture over individual team culture.”
At MongoDB, we have a name for engineers who’ve been through the rotation program — old grads. Having more of those is the goal. Old grads can be three years out of college and leading a team or designing a major roadmap feature from the ground up. Dan sums it up this way: “We've put in so much effort into our new grad program, so much effort and so much investment in interviewing, in recruiting, in hackathons, sponsoring buses and all the stuff that we do to encourage our new grad program and nurture it. I think it's just an extension of that recruitment. We want to keep the momentum flowing through until they're old grads. It is one of the things I'm most proud of.”