I joined Facebook in January 2017 as a Rotational Software Engineer. You might wonder what a Rotational Software Engineer is. A Rotational Software Engineer, as its name shows, rotates two teams in a year. You can check our official page for how the program works: Facebook’s Rotational Engineering Program. Business Insider has an article about the awesome colleague Candace Zhu’s journey: Facebook rejected her application the first time — now she’s part of a new initiative on how Facebook can step up its hiring practices .
I, along with some of my cohorts, got featured on the Facebook Engineering blog when we were half way through of our 1 year program: Accelerating growth through Facebook’s Rotational Engineering Program. As I approached the end of my one-year term, I spoke on the phone with candidates who received offers from the program to demystify the program through my experience.
If you ask software engineers to do something twice, they’ll want to automate it for the third time. Therefore, I want to share my journey so future candidates can learn and hopefully this will help clarify some uncertainties for them.
The first question people usually ask is: “It is a 1 year offer; how did you decide to take it compared with other full-time position?” It’s pretty understandable that people have concerns about the termination date in the offer. For me, I know that most (if not all) of the jobs offered in the US are at-will offers, which means both sides can terminate the contract any time for any reason. Therefore, for me, a 1 year contract and a full time contract are basically the same considering the at-will part. The Rotational Software Engineer position is a short-term full-time offer, but we do get all the full-time benefits like regular Software Engineers. In addition to that, I would have the opportunity to join two teams in one year. I felt pretty excited as I would be able to see more aspects of Facebook through different projects.
After I joined Facebook, I attended the Engineering Bootcamp (just like other Software Engineers) for 6 weeks. I chose my track and took related classes. I learned Facebook codebases and tools during my Bootcamp. It was a great time for me since it’s like college and I got to learn a lot during that period.
During our Bootcamp period, we expressed our interests for the potential projects or tech stacks we wanted to work on. The program then matched us to our first teams. People usually worry about the team selection as it might not meet their desires. Surprisingly, I’ve heard most people feel good about their teams so far. The main reason is probably because there are lots of great teams and great projects to work on at Facebook.
Do we feel different as Rotational Software Engineer in our daily work? I would say no. My first team’s manager told me in our first one-on-one meeting that I should not feel I’m different from other members on the team because I would need to work on the same level and expectations as other engineers do. My peer engineers also don’t really feel the difference. One of my teammate didn’t noticed my title was different until we had worked together for 3 months.
What are the resources for me to grow and learn outside the Bootcamp? For me, I joined a lot of groups in Workplace (Facebook for work), and I attended internal front-end talks regularly. There are many classes available. My manager and mentor were pretty open about taking classes and they encouraged me to attend external conferences if I wanted.
When we joined the team, we had a mentor to help us grow. The mentor helped me ramp up and answered questions I had. The allocated face-to-face time with mentors and managers probably defer by team. I had weekly one-on-ones with my mentor but monthly 1:1 with my manager for my first team. For my second team, I have weekly 1:1 with my manager and have irregular 1:1 with my mentor. A mentor is a good resource as they know more about the codebase, team, and projects. However, I can ask anyone if I have questions. I never feel I can’t ask other people questions. In fact, I feel encouraged to ask questions to different team members whenever I needed them.
Facebook’s mission to make the world more open and connected. This value is also reflected in our daily work and culture. When I was in Bootcamp, I heard there are SEV meetings weekly. The meetings review outage like facewbook.com was down or some services were broken. I wanted to see how the meeting worked and thus I contacted the meeting organizer. He sent me an invite soon after I requested it, and I joined the meeting to witness how people review a severe event and how they learn and improve through the outage.
As of today, I know of three people who demonstrated their capabilities as solid Software Engineer and got hired when they finished their first term. The program won’t really hinder you from becoming a regular-track Software Engineer if you can contribute consistently and make an impact. I’m from the second cohort and the two people from the first cohort also got hired when their second term was about to end. One of the advantages of being a rotational software engineer is that we don’t count as one head count for the team. This means that lots of teams welcome us, as you might know that there is way more work than engineers in most teams at Facebook. Once we ramped up, we contributed a lot to the team and projects and every team loved us.
Our review process is similar to the Facebook Review Cycle but a little bit different. Normally Facebook does the performance summary review at the end of June and December. For rotational engineers, we joined Facebook each month as one cohort. Therefore, our Review Cycle is independent from the normal Facebook Review Cycle. We have a mid-cycle review about 2.5 months after we joined the team. We are required to write self-reviews and collect peer, mentor, and manager reviews. We also have a final review at the end of our team rotation and the format is the same as the mid-review. The big takeaway is to collect feedbacks from your peer, mentor, and manager regularly and always improve from feedbacks. I know some people had surprise results after final review, but we should collect feedback often and improve ourselves.
I just finished my final review with my second team, and I got notified that I have an extended offer to transition to a regular Software Engineer position. My journey at Facebook will continue but as the Facebook motto says: This journey is just 1% finished.