It's been over 3 months since I started my first job out of college - and I wanted to leave a blog post about it. A few things I'll cover in this blog post: my bootcamp experience at Meta, and the onboarding process after team selection.
Most of you are probably wondering what I mean by bootcamp. Isn't that a military thing where new recruits go through weeks of basic military training? Well yes, but that's not what I'm going to write about here (thankfully).
Meta has a long-standing tradition of having all the new hires go through weeks of training (different training depending on roles), regardless of seniority. My understanding is that new hires that are recruited through the standard pipeline (meaning that you are not recruited for a specific team), need to go through bootcamp. Bootcamp serves largely three purposes:
- Get accustomed to Meta's work culture & company values.
- Get hands-on experience with Meta's internal tools.
- Choose a team!
I found my time in bootcamp to be a little bit redundant, since I'm a returning intern. I was already relatively familiar with a lot of the internal tools, and had first-hand experience working on a real project last summer - so I already had a decent understanding of Meta's fast-paced work culture. But it was a great few weeks to get myself mentally prepared to start working at full-pace, without having the pressure of having to deliver a project. I also thought that the bootcamp program is incredibly well structured. I was assigned a dedicated bootcamp mentor, and there were specific engineering trainings available (e.g. iOS, android, backend, etc).
The most exciting part of bootcamp is undoubtedly the team selection process. After the first few weeks, I started interacting with hiring managers that were looking to hire engineers for their team. I worked with ~8 teams and strategically narrowed down my team of choice. My guidelines for evaluating teams were:
- Instinctive feeling from interacting with team members
- Instinctive feeling from interacting with team manager
- Team's area of work (Do I feel excited about what the team is working on?)
- Potential projects I would work on if I joined
- Team's culture around in-person work (I preferred joining a team with a decent amount of in-person work)
- Team's culture around mentorship
In retrospect, I think these guidelines formed a solid framework for my team selection process. It wasn't too hard to narrow down to 3 teams - but making the final decision was a bit of a struggle. At the end, I opted to listen to my gut feelings. The best part about Meta's bootcamp is that you can choose a team after working on small engineering tasks with the team (and also attend team meetings) - so you at least have some idea of what your day-to-day life would look like if you joined the team. At the end, I chose to join a team that owns the checkout backend & infrastructure across Meta's Family of Apps. So far, I couldn't be happier with the choice I made.
Team Onboarding & Learnings
Technically I'm still onboarding, but I feel like the most basic onboarding is behind me now. I still have to ask questions, of course, but I'm largely able to navigate through tasks assigned to me without too much help. Here's what I learned from the last few months of onboarding as a newbie to the team.
- Do your research before asking questions.
- When you are truly stuck, don't be afraid to ask questions to unblock yourself.
- Read up on the documentations you can find about your team's codebase.
- Don't overwhelm yourself by trying to understand the entire codebase in a few weeks. Start with understanding small parts of it, and gradually connect the dots.
- Block time for reviewing code everyday.
- Don't back down from tasks that seem challenging. You can do it.
- Get in the habit of creating documents when communicating with other engineers. It's easier for them to follow if you have a document ready, rather than trying to explain everything on the spot.
- Schedule regular 1:1 meetings with manager & mentors. I feel like this is by far the best way to ensure you are getting regular feedback (this is especially important for newbies).
- Don't be shy to ask for feedback. It's always nice to hear that you are doing well, but the best of them all are the constructive ones - ask what you can do better to improve. How can you start operating at the next level?
So far it's been a really exciting first few months at Meta. My team has been nothing short of amazing, and I'm working on an exciting project that I'm passionate about delivering. I knew I'd enjoy working at Meta because I had a great time last summer as an intern - but to be a full-time engineer is definitely a different feeling. I'm fortunate to wake up everyday, excited to work :)