It’s been a while (7 months more or less) since I started this planned series, and my conclusion is that I suck at creating post series. I started writing this post like a month ago, but because of school and other work I started 4 months ago (yeah, after finishing my time at FB), I didn’t really finish until now (
I hope). My original plan was to write at least once a week, but a lot happened, and being honest, my mood when I thought about writing this series was 50% laziness and 50% not in the humor of doing it, so I apologize to anyone (if there is anyone there reading this) that wanted to read a full series and learn more in detail everything.
These past weeks I’ve been working on migrating the blog to my own domain (I will be writing a post in-depth about everything I did,
maybe sometime in the next 5 years), so I decided that it was a good time to finish this series, a prologue and an epilogue, the content was my experience, and I’m going to summarize it here! 🙂
This last summer, 2020, I got the opportunity to join Facebook for a third internship, but COVID attacked, and thanks to lots of people at FB, it was possible for us interns to join remotely from our home locations (I’m from Mexico). I joined the Posts-Infra team in the New York office (
I really wanted to be in NY *goes to a corner to cry*).
So yeah, I joined Facebook to a back-end focused team remotely; what could go wrong? (
spoiler alert: not so many things actually).
Note: Most of my images are from my 2018 and 2019 internships, this internship, there wasn’t that much to take photos of, but there are some!
In my last post, I wrote how I was really anxious because my equipment hadn’t arrived, so first of all, my equipment arrive on Monday of my first day :’). The interesting thing was that I didn’t receive the laptop I requested nor the backpack (
the worst part of ), but I was really happy with having the equipment on time and not have my start date moved. everything
The on-boarding this time was designed to be only the equipment setup live with real-time support, and the rest of the on-boarding at our own pace in internal courses designed for this.
I took these courses, and others focused on the specific technologies I would need during the summer. This part wasn’t that different from in-person, with the only difference not being in the fancy buildings Facebook has (and not having free food). Being a returning intern, everything was really easy; I already knew how to do lots of stuff, and I just fast-forwarded most of the courses.
My project, manager, and team!
Wednesday arrived, and it was the day I met my manager! He was really nice, and we talked about my schedule and the time difference. My original plan was to work the normal work-time of New York, 8AM to 4PM here in Mexico. Still, I was too lazy to wake up to be ready at 8AM, so at the beginning, my schedule was to work from 9AM to 5PM Mexico time (the final weeks, I started working at 10AM, and there was no precise end time).
He presented me with the project I worked on during the summer, it was a project that looked really exciting, a bit scary because it was Infra so if I broke something it affected every Facebook user (
guess who broke FB once?), but besides this, I thought it wasn’t going to be that difficult…
I was wrong, as tons of programmer, I suck at making time and difficulty estimations. I made the same error in 2019, and I hope I learned my lesson this time. I thought it would be simple to do because I expected to have all the APIs to call the information I needed, do my stuff and give the required output, I should have expected that this was an illusion. There was a reason why this was a 10 weeks project instead of a 1 or 2 weeks project.
My project was to redesign the way posts handle the creation and addition of their attachments (photos, notes, etc.). Originally, every team had its own way of handling their own attachments, making it really difficult for new teams to have a common way of handling new attachments in posts. So the infra team decided to normalize these attachments in the post data structure.
That first week was also an opportunity to meet the team members who were my peers during the internship (reviewing my code and being my direct contact for help besides my manager). Both were really sweet and made it clear that there were there to help me.
I got a chance to meet the rest of the team during the first weekly meeting, and as well everyone was in the best mindset to help the interns (we were 2 on the posts side and other 2 on the photos side).
At first, I thought it was gonna be really difficult to work remotely, but to be honest, I was really lucky to already have 2 internships in Facebook before, I had experience in its codebase, its tools, and how everything worked.
My manager was always there for me, and if I had the need for a video call he was available at all times. This made that any questions or roadblocks I had were fastly solved. My peers were also super responsive, so I never had any problem or question that wasn’t solved within the same day. In my perspective, if something got stuck for more than a day was because I was stubborn enough to try to solve it for my self instead of asking.
The above meme was me the week my manager decided to take vacations. The funny thing that week is that I discovered a conflict of interest between what I was doing and what a project Groups were doing, so I had to organize a meeting between them and us. With my manager’s absence, this was a lot more responsibility I was expecting for the summer, but it was also a great experience coordinating projects between teams.
The worst part of the remote work, even if everyone answered my questions promptly through chat, no one reviewed my code promptly. I understood that everyone prefers to code than reviewing, but sometimes it really slowed me down a lot, and when I asked through messages for reviews, my messages were completely and utterly ignored.
Move fast and break things
One of the main values in Facebook is to go fast so you can create new stuff, and that wasn’t the exception in my team. Even if we worked on infra, it was important to have new features and improve what we already have. My project was an improvement, but it was somehow critical, if something failed, then creating posts on Facebook failed.
So… guess who went so fast that it broke stuff? Yeah, some of the changes I did at the beginning of my project got into production, and there were some edge cases no one in my team knew about, so my code broke a few hours Facebook in the middle east, pages couldn’t create posts with photos in it.
The good thing is that my manager recommended placing some safeguards if my changes broke anything, like in this case, so reverting my changes was extremely fast after we detected it! 😀
As an introvert, socializing has been always a problem for me. Being in person, the circumstances have always forced me to interact with people and maybe for an extrovert to adopt me… the problem here is that I didn’t leave my home during during all my internship and therefor I didn’t really socialize with anyone.
Facebook had different intern events trying to simulate the events in-office, with the only difference that every intern just needed to connect to a video call… the only problem with this is that these events is that there was no motivation for me to connect. Even to the ones I connected, the activities were not that interesting nor allowed people to make connections.
The biggest socializing activity I did during my remote internship was participating in social Thursday with my team, and this was actually cool. Using discord, we connected to the voice channel and played some games like “Among Us” or “skribbl.io”. I didn’t connect many times (because of the time I had some things to do at home), but it was pretty fun the few times I did.
Being a remote intern is… different, not better nor worse, at least for me. There are many downsides like not having the same fun as being on campus, not getting to meet people in person and discussing any problem with a handy whiteboard, or the food (
oh god, I really missed the free food). Still, there is also some good stuff, like staying with my family at home, the safety of not having to travel in this Covid times, this extra time of not having to commute to work, as well the opportunity of being a bit more autodidact with my learnings about my work.
Facebook tried its best to make this a good experience for every intern, I know it might have been hard for some interns, but my case wasn’t that bad (I even got my backpack!).
If I had the option to return to another remote internship, will I accept it? Hell, no! I want to go to NY :(, but the pandemic is not looking better even with some approved vaccines, so there still is a possibility that summer 2021 will be remote, and if that happens, at least I know is not going to be bad, it is just going to be another weird experience.