Engineering Blog

Blog posts tagged 'Web'

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...

Scott MacVicarEngineering

Google Summer of Code 2010

Posted about 7 years ago
blog post · Culture · Mobile · Web · Compute · Open Source · Academics · PHP · HipHop · HTML5 · JavaScript · iOSmore

This summer we participated in Google Summer of Code (GSoC) for the first time and wanted to share an update on the progress our students made. GSoC is in its sixth year and exists to encourage university students to spend their summer coding for an open source / free software project. The students in turn are awarded a stipend which definitely makes this a cool summer job. Read more...

Scott MacVicarEngineering

HipHop for PHP: six months later

Posted about 7 years ago

It's been six months since we released HipHop and I wanted to share an update on its progress. In February we released 693,613 lines of source code which on average reduced our CPU usage here at Facebook by about 50%. Since February, the team has made HipHop another 1.8 times faster and all of that code is open source. We’ve also seen improvements to PHP itself with the additions to PHP's trunk in April being about 10% faster than 5.3. Read more...

Carlos BuenoFixer at Facebook

Internet Cartography

Posted about 7 years ago

A telegram from San Francisco to Hong Kong in 1901 must have taken many hops through British Empire cables to Europe, through the Middle East, and so on. London to New York was fast and direct. The vestiges of the Spanish and Portuguese Empires show up in the many links between South America, the Caribbean archipelago, and the Iberian peninsula. A cool thing is that you can measure these relative latencies yourself, using the present-day internet. If you run a website with a decent amount of worldwide traffic, you can use that traffic to map out how the internet responds with regards to you, and see how that matches with the gross structure of the 'net. I wrote about a cheap and cheerful way to generate this data last year, and the code has since been open-sourced as part of Yahoo's Boomerang measurement framework. 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...

Tao SteinEngineering

Facebook becomes a USENIX Patron

Posted about 8 years ago
blog post · Infra · Data · Web · Mobile · Compute · Open Source · Research · Graph · Languages · PHP · HipHop · Platformmore

From its beginnings, Facebook has had to solve novel systems challenges to help us scale and grow. The idea of the social graph, and its implementation as a web and mobile platform have repeatedly pushed our computer systems into uncharted territory. The workloads are non-traditional, graph-oriented and write-heavy, and the system has grown rapidly to a base of 350M users around the world. We have survived and thrived due to healthy innovation and creativity, but we haven't done it alone. We have benefited from innovation in both the open source and computer systems communities. The USENIX Association is an essential hub in the systems community and today we are pleased to announce that we are becoming a Patron of the USENIX Association. Read more...

Haiping ZhaoSenior Server Engineer at Facebook
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...

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...

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 reaches 1 billion messages sent per day

Posted about 9 years ago
blog post · Web · Infra · Data · Compute · Storage · Chat · Messages

Facebook Chat usage has increased steadily since its launch last year, and this week we reached 1 billion messages sent per day. As a team we've been looking forward to this milestone; we track lots of statistics in the course of maintaining and improving Chat, but this number measures Chat's progress toward its ultimate goal: increasing communication between our users. We've invested a lot in making Chat stable and scalable in the past, and we continue making improvements even now. Read more...

Ashish ThusooEngineering at Facebook

Hive - A Petabyte Scale Data Warehouse using Hadoop

Posted about 9 years ago

A number of engineers from Facebook are speaking at the Yahoo! Hadoop Summit today about the ways we are using Hadoop and Hive for analytics. Hive is an open source, peta-byte scale date warehousing framework based on Hadoop that was developed by the Data Infrastructure Team at Facebook. In this blogpost we'll talk more about Hive, how it has been used at Facebook and its unique architecture and capabilities. Read more...

Aditya AgarwalDirector of Engineering at Facebook

Adapting Open Source Software

Posted about 9 years ago
blog post · Web · Compute · Open Source · Languages · News Feed

Facebook is a fan of open source software. We are heavy users of packages like PHP, MySQL, Memcache and also believe in contributing technology like Thrift and Scribe back to the community. It's interesting not just to hear that companies are using open source software (everyone is!) but rather about how they adapt the software to better suit their needs. 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...

Robert JohnsonDirector, Software Engineering at Facebook

Facebook's Scribe technology now open source

Posted about 9 years ago
blog post · Web · Data · Infra · Open Source · Performance · Compute · Development Tools

Here at Facebook, we're constantly facing scaling challanges because of our enormous growth. One particular problem we encountered a couple of years ago was collection of data from our servers. We were collecting a few billion messages a day (which seemed like a lot at the time) for everything from access logs to performance statistics to actions that went to News Feed. We used a variety of different technologies for the different use cases, and all of them were bursting at the seams. We decided to build a unified system (called Scribe) to handle all of these cases, and do it in a way that would scale with Facebook's growth. 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...

Aditya AgarwalDirector of Engineering at Facebook

Welcome to the Facebook Engineering Blog!

Posted about 10 years ago
blog post · Web · Mobile · Infra · Data · Culture

We are going to use this space to tell you a little about the code and systems that power Facebook. We thought it would be fun to share what goes on behind the scenes to ensure that the site scales smoothly and that we continue to provide the best overall user experience. 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