Engineering Blog

Blog posts tagged 'User Experience'

Alethea PowerSite Reliability Engineer at Facebook

Making Facebook Self-Healing

Posted about 6 years ago

When your infrastructure is the size of Facebook’s, there are always broken servers and pieces of software that have gone down or are generally misbehaving. In most cases, our systems are engineered such that these issues cause little or no impact to people using the site. But sometimes small outages can become bigger outages, causing errors or poor performance on the site. If a piece of broken software or hardware does impact the site, then it's important that we fix it or replace it as quickly as possible. Even if it's not causing issues for users yet, it could in the future so we need to take care of it quickly. Read more...

Philip SuSoftware engineer at Facebook

Building Video Calling

Posted about 6 years ago
blog post · Web · Chat · Messages · Design Tools · User Experience · Seattle

We introduced video calling today. It's my first project since joining Facebook in the Seattle office nine months ago. It was an exciting challenge to create a way for people on Facebook to instantly call any friend or family member anywhere in the world. Read more...

Andrew SongProduct manager at Facebook

Introducing Login Approvals

Posted about 7 years ago
blog post · Web · Culture · Mobile · Security · Platform · User Experience

Facebook has always been committed to both protecting our users' account and information, as well as giving them more control over their Facebook experience. From our User Operations team, who work to re-secure compromised accounts, to the Engineering team that designs and implements new security features like login notifications, one-time passwords, and remote session management, everyone at Facebook is working to ensure users have a safe, enjoyable experience. Read more...

Abe LandEngineering

Building the Send Button

Posted about 7 years ago
blog post · Web · Platform · Messages · JavaScript · User Experience

We released the Send button, a new social plugin, this past Monday. Facebook developers can use it by itself or in combination with the Like button. Read more...

Stefan ParkerUI Engineer at Facebook
Ken DeeterSoftware engineer at Facebook

Live Commenting: Behind the Scenes

Posted about 7 years ago
blog post · Data · User Experience · News Feed · Backend · Hacking · Testing

Commenting on Facebook content has been an asynchronous form of communication. Until now. Live commenting, which we rolled out to all of our users a couple weeks ago, creates opportunities for spontaneous online conversations to take place in real time, leading to serendipitous connections that may not have ever happened otherwise. Read more...

Cory OndrejkaAlleged Interim CTO at Facebook

HTML5 Games 0.1: Speedy Sprites

Posted about 7 years ago

Speed, it seems to me, provides the one genuinely modern pleasure. Read more...

Robert JohnsonDirector, Software Engineering at Facebook

More Details on Today's Outage

Posted about 7 years ago
blog post · Infra · User Experience · Performance · Caching

Early today Facebook was down or unreachable for many of you for approximately 2.5 hours. This is the worst outage we’ve had in over four years, and we wanted to first of all apologize for it. We also wanted to provide much more technical detail on what happened and share one big lesson learned. Read more...

Changhao JiangEngineering at Facebook

BigPipe: Pipelining web pages for high performance

Posted about 8 years ago
blog post · Web · Compute · Optimization · JavaScript · Performance · User Experience

Site speed is one of the most critical company goals for Facebook. In 2009, we successfully made Facebook site twice as fast, which was blogged in this post. Several key innovations from our engineering team made this possible. In this blog post, I will describe one of the secret weapons we used called BigPipe that underlies this great technology achievement. BigPipe is a fundamental redesign of the dynamic web page serving system. The general idea is to decompose web pages into small chunks called pagelets, and pipeline them through several execution stages inside web servers and browsers. This is similar to the pipelining performed by most modern microprocessors: multiple instructions are pipelined through different execution units of the processor to achieve the best performance. Although BigPipe is a fundamental redesign of the existing web serving process, it does not require changing existing web browsers or servers; it is implemented entirely in PHP and JavaScript. Read more...

Matt JonesEngineering

Protecting Privacy with Referrers

Posted about 8 years ago
blog post · Web · Data · Security · User Experience · JavaScript

Late last week, we quickly fixed an issue after being contacted by a Wall Street Journal reporter regarding an unintentional oversight in the data shared with our advertisers by your browser when you click some ads on Facebook. This occurred in the referrer link visible to advertisers when someone clicked on an ad. A little background: In some cases the referrer could contain the user ID of a profile you visited, including your own, but we were not aware of any way that a user ID on the referrer could identify the person who clicked on the ad. We've been testing different solutions to remove user IDs completely from referrer URLs since their inclusion was first brought to our attention. However, in a rarely occurring case, advertisers knowledgeable about the structure of Facebook's URLs could use the referrer to determine when someone who clicked on an ad had been viewing his or her own profile, thus potentially enabling them to infer the user ID of that person. We have no reason to believe that any advertisers were exploiting this, and doing so would have been a violation of our terms. To our knowledge, none did. It's also important to point out that we don't share personal information with advertisers, and we never sell any of your information to anyone. Read more...

Keith AdamsEngineer at Facebook

The Life of a Typeahead Query

Posted about 8 years ago
blog post · Web · Infra · Data · Performance · User Experience · Backend · Graph · Testing

In fall of 2009, some of us at Facebook imagined a more interactive search experience, where high quality results would appear as the user typed. We summarized the vision in a blog post introducing our new search box. Making this system real for 400 million users has been challenging at every level of the software stack. On the front-end, code running in users' browsers must consume and render results quickly enough to not distract the user as they type. We set a strict goal for ourselves that the new typeahead can't be slower than the existing typeahead for finding your friends, so every millisecond delay matters. Despite these performance constraints, the UI cannot be too minimalist; each result needs enough contextual clues to convey its meaning and relevance. Because the new typeahead auto-selects the first result when you hit Enter in the search box, we need near-perfect relevance so that the first result is always the one you're looking for. To satisfy all these constraints, we designed an architecture composed of several different backend services that were optimized for specific types of results. Let's follow a session as the request leaves a user's browser and becomes a set of navigable results. Read more...

Akhil WableEngineering

Intro to Facebook Search

Posted about 8 years ago
blog post · Infra · Data · Web · Caching · User Experience

Connecting and sharing with others is Facebook’s primary value. That value necessitates having the ability to easily and efficiently find the people and information we care about. The search team at Facebook is focused on building a search product to enable our more than 400 million users to quickly find what they're looking for. In July 2007 we explained the complexities of serving one of the largest user bases in the world and the reasons for building our own in-house search service. Serving more than 150 million queries a day, and supporting a user base that has grown by more than 10x since then reinforces that decision. Read more...

Jason SobelEngineer at Facebook

Making Facebook 2x Faster

Posted about 8 years ago

Everyone knows the internet is better when it's fast. At Facebook, we strive to make our site as responsive as possible; we've run experiments that prove users view more pages and get more value out of the site when it runs faster. Google and Microsoft presented similar conclusions for their properties at the 2009 O'Reilly Velocity Conference. So how do we go about making Facebook faster? The first thing we have to get right is a way to measure our progress. We want to optimize for users seeing pages as fast as possible so we look at the three main components that contribute to the performance of a page load: network time, generation time, and render time. Read more...

Michael NovatiSoftware engineer at Facebook

Internal Company Dashboard

Posted about 8 years ago
blog post · Culture · Web · User Experience · Tooling

At Facebook, employee communication and productivity are fundamental to maintaining a fast growing and valuable business. Facebook's mission is to make the world more open and connected, and we are taking the same approach with how our employees interact, share and collaborate together. Traditionally, larger companies aren't really that open and transparent on the inside, as not everyone knows why decisions are made or has the ability to freely discuss decisions outside the scope of their responsibility. There is a lot of room for innovation in employee communication and this has become a hot space for new ideas and products. At Facebook, we're learning a lot of lessons about which useful end-user social products work for employees and which don't. We've learned that effective enterprise communication tools need to be engineered specifically for our employees because our employee base and business needs are very unique. On the internal tools productivity and communication team, we try to build libraries and abstractions that promote openness and we simultaneously build tools on top of them. A specific product I've developed at Facebook is our internal dashboards framework. A problem we have at Facebook is that there are so many requests for custom internal tools (from engineers and non-engineers alike) that our internal tools engineers have trouble keeping up. Read more...

Chris PutnamEngineering at Facebook

Building a Better Photo Uploader

Posted about 8 years ago
blog post · Web · Photos · JavaScript · Security · Performance · User Experience

At Facebook, we're always looking for ways to make sharing more efficient. Today we're announcing a significant upgrade to our Photos product: a new and improved photo uploader that’s available for testing as a Facebook Prototype. Since Photos launched in 2005, the photo-uploading experience on Facebook has relied on the use of a third-party ActiveX control (and its sister Java applet). Over the years we have seen a growing number of complaints with this old uploader. In a recent poll, we discovered a significant percentage of users were unable to upload photos due to technical issues. Many more found it functional, but only just. That's when we resolved to build a modern replacement. We had the following goals for the new uploader:. Read more...

Yishan WongEngineering

Inviting you all to Hackathon

Posted about 8 years ago

As you might be aware, one of Facebook's oldest and greatest traditions is the Hackathon. Sometimes the best way to find out if an idea is good is to try it out, and that's part of what Hackathon lets us do. Read more...

Names in translation and social language modeling

Posted about 8 years ago
blog post · Infra · Web · Culture · Languages · Framework · User Experience

Our Translations app allows users (translators) to click on a phrase as they browse the site, and see the original native string, vote on translations suggested by their peers or contribute their own. Here at Facebook, we offer an innovative approach to web site internationalization that leverages a unique infrastructure and a dedicated user community to keep our interface up-to-date in translation. Read more...

Zizhuang YangEngineering

Every Millisecond Counts

Posted about 8 years ago

Site speed has always been an important factor in the development of Facebook, even as the site evolves over time to become more feature-rich and complex. As we grow beyond the 250 million user mark, every small change to the site causes a huge ripple, affecting throngs of web surfers and their experience on Facebook. My project this summer as an engineering intern on the Infrastructure team involved tackling this imposing fact by exploring data and finding out how various changes to fundamental parts of the user experience impacted and changed user behavior. Read more...

Designing the Facebook username land rush

Posted about 8 years ago
blog post · Web · Data · Caching · User Experience · Performance · Optimization · Testing

We recently hit a milestone of 50MM usernames a few weeks ago — in just over a month since we launched usernames on June 12. Ever since we launched usernames, we’ve had a lot of people express interest in understanding how we designed the system and prepared for this big event. In a recent post, my colleague Tom Cook wrote about the site reliability and infrastructure work that we did to ensure a smooth launch. As an extension to that post, I’ll discuss some specific application and system design issues here. Launching usernames to allow over 200 million (at the time — we’re now over 250 million) people to get a username at the same time presented some really interesting performance and site reliability challenges. The two main parts of the system that needed to scale were (1) the availability checker and (2) the username assigner. Since we were pre-generating suggestions for users, we needed to check availability of all the suggested names, which placed extra load on the availability checker. Read more...

Tom CookEngineering

Hammering Usernames

Posted about 8 years ago
blog post · Web · Infra · Compute · Performance · User Experience

Site Reliability Engineering (SRE) at Facebook is always under pressure to keep the site and all the moving pieces behind the scenes running while still delivering an excellent user experience. The recent launch of usernames to our 200 million active users on a single night at the exact same time was unique in its preparation and potential for trouble. Our product teams had evaluated the various options for enabling people to register for their name and decided upon a single first come, first serve registration window for every user. Although this was the most fair, it was difficult operationally because predicting the number of users that would show up at that time to claim a name was impossible. The Memcached infrastructure that runs behind every page on the site was partitioned and expanded to cope with users checking the availability of names. Read more...

Chris PiroEngineering

Chat Stability and Scalability

Posted about 9 years ago
blog post · Web · Data · Compute · Languages · Chat · Messages · Performance · Optimization · User Experience

Almost ten months ago we launched Facebook Chat to 70 million users. We ventured into a lot of new territories with this product: not only were there tricky web design and product issues, we needed to develop and launch a trio of new backend services to support all of Chat's functionality. Read more...

Behind the scenes with the new Facebook features in Apple’s iPhoto ’09

Posted about 9 years ago
blog post · Web · Culture · Photos · Optimization · User Experience

Apple recently announced that the new Faces feature converts iPhoto '09 name tags to Facebook name tags. Then they and their friends can view those photos in Facebook, and if other friends are tagged in Facebook, those tags will sync back to iPhoto ’09. This integration makes it really easy for Mac users to share and connect with others, which is central to what Facebook is all about as well. Engineers crave to work on things that are impactful and touch a lot of people. I joined Facebook three months ago knowing that I’d have such opportunities. Little did I know that my first project, helping bring Facebook features to Apple’s iPhoto ’09, would allow me to make an impact for Facebook so soon. To see my work at Macworld was a nice bonus! Technically speaking, this feature is a part of Facebook Connect and the APIs it provides. An interesting aspect of this particular feature is that it is designed to be bi-directional. This means one can modify photos in iPhoto ’09 or on Facebook and the changes will be reflected in both places. To support this bi-directional integration, we enhanced the photos APIs to help iPhoto ’09 determine when name tags are added on Facebook, keep them in sync with the iPhoto ’09 application, and provide familiar Facebook privacy controls to allow users to share these photos with the appropriate set of people. As a new engineer working on this project, I quickly experienced first-hand what many people told me about Facebook – it’s a place that has extremely smart and passionate people who are given the freedom to make the right decisions. The project had a great start thanks to Tracy Chou and the Connect team. It was an amazing experience to build on what they started and have my first project be something so substantive and prominent. It helped me realize the incredible opportunity one has at Facebook to help make the world more open and connected. Srinivas, a new engineer at Facebook, can’t wait to have pictures of his New Year revelry be shared to Facebook using iPhoto ’09. Read more...

Joel SeligsteinSoftware engineer at Facebook

How to Hack Out an Election Counter

Posted about 9 years ago
blog post · Culture · Web · Hacking · News Feed · User Experience

As part of a team flushing out Facebook’s 2008 Election campaign designed to get more people to register to vote and then actually vote, I was responsible for the message on top of the News Feed. We had our design and messaging ready to go as the weekend before election day was approaching. The message was up and ready to be turned on. During the week, someone had suggested that we create an “I voted!” button that a user could click and tell his or her friends about the patriotic action of the day. I was excited; clearly this would encourage more people to go vote so they could tell their friends. So I buckled down, flushed out a News Feed and Minifeed story, and checked it in with plenty of time before Tuesday. On Sunday someone threw out an idea to have a counter that people could watch and see that their vote was indeed being counted on Facebook as well. The election team decided this would be awesome functionality during a quick chat on Monday morning. I had about 12 hours to design a counter that could handle millions of clicks and live update via ajax regularly enough to be exciting on millions of browsers at the same time. Here’s the last-second solution I came up with. Read more...

Pedram KeyaniEngineering Director at Facebook

The All-Night Hackathon Is Back!

Posted about 9 years ago
blog post · Culture · Web · Mobile · Hacking · Performance · User Experience · Chat

Every few months, our engineers unleash their talents in one epic, all-night coding session. These are the Facebook Hackathons. They start with takeout Chinese food around 8 p.m. and end with a dawn breakfast at any pancake house or donut shop that will have us. In between, dozens of Facebook engineers create working prototypes of projects that they always wanted to build but couldn’t ever pursue during their regular hours. Hackathon XI – also known as The Presidential Hackathon – will take place the evening of Wednesday, Nov. 5. Read more...

Eugene LetuchyEngineering

Facebook Chat

Posted about 10 years ago
blog post · Web · Infra · Chat · Messages · Performance · User Experience · Development Tools

One of the things I like most about working at Facebook is the ability to launch products that are (almost) immediately used by millions of people. Unlike a three-guys-in-a-garage startup, we don't have the luxury of scaling out infrastructure to keep pace with user growth; when your feature's userbase will go from 0 to 70 million practically overnight, scalability has to be baked in from the start. The project I'm currently working on, Facebook Chat, offered a nice set of software engineering challenges:. Read more...

Keep Updated

Stay up-to-date via RSS with the latest open source project releases from Facebook, news from our Engineering teams, and upcoming events.

Subscribe
Facebook © 2017