This summer, I interned as a Software Engineer (SWE) at Facebook in Menlo Park, California. In this other blog-post, I’ve detailed my personal life at Facebook and its various foods and housing and explicitly drawn similarities to Disney Land.
People have often asked what I worked on. In short, it’s confidential, and if I told you, you’d no longer be allowed to trade in Facebook stock or in any tech-company for that matter. So, that is all, who wants a Facebook T-shirt? I now have 7.
Just kidding. I’ll give you the run-down here.
Starting in Q1 (note the publicly-traded, corporate demarcation of January-March) of 2015, Facebook began sending mobile push notifications to UC Browser, a fast-growing mobile-browser in emerging markets.
For context, here’s a push notification:
Because this worked well, Facebook also began working to send push notifications to other browsers. With these notifications, you could easily receive updates from your friends by logging into one of those browsers on your phone without having downloaded the FB app. Because many browsers focus on minimizing data consumption (by doing compression on a proxy, minimizing pictures, etc.,), they are extremely popular in places with relatively expensive data.
Along with the launch of FBLite and a cocktail of other ‘pushable’ Facebook apps on Android, there are now many apps which can receive push notifications from Facebook. For alerts that can span multiple interfaces, which one receives the push notification became a fairly complicated issue. It’s a balance between not having your notifications tray fill up every time someone likes your status, but also not missing important updates when you have chosen to leave push notifications on across multiple interfaces.
My project was to figure out what the best way to “de-dupe” push notifications are. This was informed by data acquired before my starting an internship that instead of sending notifications to one interface over another (e.g. saying Browser A always > Browser B) people actually prefer sending notifications to both interfaces. As a result, something slightly more complex was needed.
Because of the open-ended nature of the project and the potential impact that it had across a broad set of teams, I estimated that my energy broke down the following way to each responsibility:
|PM / Designer||15%|
|Potential NBA Draft Pick||10%|
You may notice that the sum of the percentages is actually greater than 100. This is expected because I always give 110%.
I spent 10 weeks working with the PMs, data-scientists, and engineers across a few teams to accomplish my project. The details here will remain confidential, but I conducted a few main tests revolving device types and usage patterns. Of course there’s a large series of technical details involving questions like: What does it mean to ‘use the most’? What if users have multiple devices? What is a substantial amount? How can we even get this data efficiently to be queried 24/7? And just about 100 other implementation details that make the difference between executing on a successful product and junk.
The final product, which is shipped to the public now (but probably won’t even affect the majority of people reading this blog post because it really isn’t for iPhone users…), looks at how much a user uses Facebook on an individual interface. Of course, I’ve left out the details here.
But from the user side, if you do have the ability to receive push notifications from multiple Facebook interfaces, you should be able to just use Facebook your normal way. Then after some usage patterns develop over the course of a month, you should start getting notifications to the interface that you might deem to be your ‘primary’ one.
I had a great time at Facebook, and I learned a ton about operating at scale, designing solutions for consumer-facing products, and making data-driven decisions. Ultimately though, it’s the cultural aspects of Facebook, its speed and energy, and all the people I met here that I think will really shape my future as I continue to learn and grow.
If you’d like a more detailed dive into my project or have any questions, contact me personally! And if you’d like to apply to Facebook for a job, do so here.