Facebook started the @Scale conference series as a forum for engineers to share how they solve problems in the real world. It's since evolved and grown to become a community that collaborates in the open in order to innovate further, faster, and more effectively. We saw this firsthand during the web track sessions of @Scale, where companies at all stages of growth — Wikimedia, Twitter, Khan Academy, Google, and Netflix — are pushing the boundaries of what we thought was possible in web development. For many of these teams, they're also contributing those technologies back to the open source community, ensuring that others can learn and benefit from these lessons.
Presentation Summary and Videos
Migrating Wikipedia to HHVM
As a top 10 website, Wikipedia serves more than 500 million readers every month. Ori Livneh, a senior performance engineer at the Wikimedia Foundation, discussed how the migration to HHVM is helping to solve the site’s scaling challenges. After switching to HHVM, the site’s benchmarks indicated a 50% reduction in rendering time and a 2x performance boost.
Creating Interactive Learning Interfaces at Khan Academy
Ben Alpert and Pamela Fox, software engineers at Khan Academy, talked about the process behind building two different learning interfaces. Ben discussed the development of interactive math exercises that Khan Academy built with React; he also announced the open-sourcing of KaTeX, the fastest math typesetting library on the web. Pamela covered Khan Academy’s open sourced live code editor.
WebP at YouTube: Faster Images on Deskptop and Mobile
Mikhail Sychev from Google walked through the process of the adopting WebP across YouTube. He covered the highlights and lowlights of format support, performance, storage, caching, and user behavior, all of which were considered before making the decision to convert from JPEG. By switching to WebP, YouTube can reduce bandwidth by 20-30%.
Adaptable Systems and UI Components
Nicolas Gallagher, an engineer at Twitter, gave an overview of complex adaptive systems and why UI components are an important part of designing these systems. He stressed that the ability to adapt in time is business critical and how the design goal is to facilitate adaptation while avoiding chaos.
Advanced Debugging Techniques with Chrome
Paul Irish from Google gave an overview of the Chrome DevTools available to help developers avoid hunting for bugs. He went over new tools such as Layout Invalidations and Navigation Error Logging. In addition, he introduced the new Smoothness Timing API, which was proposed that day.
JavaScript Testing and Static Type Systems at Scale
Tens of thousands of JavaScript modules exist at Facebook, with more being added every day. Avik Chaudhuri and Jeff Morrison talked about the milestones that have made it possible to scale up writing JavaScript. Avik introduced Flow, a new type checker for JavaScript, which is used to ease development in large codebases. It is already being used at Facebook and will be open sourced later this year.
Asynchronous Programming at Netflix
Jafar Husain, a technical lead at Netflix, discussed how Netflix solved big asynchronous problems by thinking differently about events. He traced the Iterator and Observer design patterns back 20 years and explained why they've historically been so hard to get right.