@Scale is a series of technical conferences for engineers who build or maintain systems that are designed for scale.
Building applications and services that scale to millions or even billions of people presents a complex set of engineering challenges, many of them unprecedented. The @Scale community is focused on bringing people together to openly discuss these challenges and collaborate on the development of new solutions.
@Scale 2014 will feature 21 technical talks across three different tracks:

Data
Recent advances in large-scale online data management systems and data analytics infrastructure. Covering real-time stream processing and analytics, cache infrastructure, scalable storage systems, graph databases, and massive warehousing techniques.

Mobile
Best practices and innovation in mobile development. Focusing on performance, fluid user interfaces, data modeling and persistence, large-scale development and build cycles, and the tooling required to support native development (Android and iOS) at scale.

Web
Crafting rich services and user experiences with modern web technologies and infrastructure. Delving into complex client-side applications and the JavaScript frameworks, back-end infrastructure, and APIs that underpin them.
The day will start with keynotes from Mike Krieger, co-founder at Instagram; Jay Parikh, global head of engineering at Facebook; Thuan Pham, CTO at Uber; Bret Taylor, co-founder and CEO at Quip; and Selina Tobaccowalla, president and CTO at SurveyMonkey.
We'll then dive into talks from companies like Box, Dropbox, Facebook, Google, Instagram, Khan Academy, LinkedIn, Microsoft, Netflix, Pinterest, Reddit, Twitter, Uber, Wikimedia, and YouTube.
Lunch and snacks will be provided throughout the day, and there will be a happy hour after the tracks wrap up.
Registration is $250. All proceeds from registration fees will be donated to Code.org, a non-profit dedicated to expanding participation in computer science by making it available in more schools, and to increasing participation by women and underrepresented students of color.
Keynote Speakers

Mike Krieger
Co-founder at Instagram
Mike Krieger (@mikeyk) is the co-founder and head of engineering at Instagram. As technical co-founder, Mike has played a role in building the Instagram mobile apps, scaling Instagram’s infrastructure to over two hundred million active users, and growing the Instagram engineering team. Mike studied symbolic systems at Stanford, a mix of computer science, design, and cognitive science.

Jay Parikh
Global Head of Engineering at Facebook
Jay Parikh is vice president of infrastructure engineering at Facebook. In that role, he leads the development of the software and hardware infrastructure necessary to connect billions of people around the world. Jay also serves as Facebook's global head of engineering, helping scale an engineering organization that now spans multiple continents.
Prior to Facebook, Jay was senior vice president of engineering and operations at Ning, where he oversaw product development, core infrastructure and operations for the company’s social networking platform that supported more than 1.5 million different social networks. Before Ning, Jay was the vice president of engineering at Akamai Technologies, where he helped build the world’s largest and most globally distributed computing platform.

Thuan Pham
CTO at Uber

Bret Taylor
Founder and CEO at Quip
Bret Taylor was most recently the CTO of Facebook, after it acquired FriendFeed, the company he co-founded in 2007. Prior to that, Bret was a group product manager at Google, where he co-created Google Maps and the Google Maps API, and started Google’s developer product group. Bret has an M.S. and a B.S. in computer science from Stanford.

Selina Tobaccowala
President and CTO at Survey Monkey
Selina Tobaccowala joined SurveyMonkey in October 2009. Previously, Selina was senior vice president of product and technology at Ticketmaster's Europe division, where she managed the 200-person product, technology and pperations team. Prior to that, Selina was vice president of online product and technology at Entertainment Publications, where she led the company's online sales and technology initiatives. In 1997, Selina founded Evite.com, an online invitation service that lets users organize an offline event online, and which currently sends over three million invitations per month. As VP of engineering for Evite.com, she led the company's development and operations and played a key role in setting the strategic direction with the board of directors. In 2001, Evite.com was sold to Ticketmaster. Tobaccowala holds a B.S. degree in computer science from Stanford University.
Featured Speakers

Alex Allain
Platforms and Libraries Lead at Dropbox
Alex Allain has been writing about C++ since 1998, when he started Cprogramming.com. In 2012, he published Jumping into C++ to teach new programmers how to think like a professional C++ programmer. At Dropbox, Alex leads the Platforms and Libraries team, helping make the dream of cross-platform C++11 a reality. Prior to Dropbox, Alex led a team at Liquid Machines focused on injecting code into applications to perform binary hooking.

Ben Alpert
Software Engineer at Khan Academy


Tamar Bercovici
Senior Engineering Manager at Box
Tamar Bercovici is a senior engineering Manager at Box where she leads the distributed data systems team in scaling Box’s database and cache architecture. Prior to Box, Tamar was an early-stage employee at XMPie (now a Xerox company). Tamar holds a Ph.D. in computer science from the Technion – Israel Institute of Technology.


Avik Chaudhuri
Software Engineer at Facebook
Avik Chaudhuri works on programming languages and tools at Facebook. Previously, he was at Adobe, where he led the design of ActionScript 4, a major initiative to revise the language and VM underlying Flash, and served as a member of ECMA TC39, the de facto design committee for future versions of JavaScript. He has a Ph.D. in computer science and has published several research papers in the areas of program analysis and computer security.

Harrison Fisk
Data Performance at Facebook
Harrison Fisk manages the data performance team at Facebook. This team is involved in the performance, efficiency, and reliability around production and permanent data stores, including MySQL, Hbase, and Hadoop. Prior to working for Facebook, Harrison filled many roles as an early employee of MySQL AB. He graduated with a B.S. in computer science from the University at Buffalo. In addition, he has co-authored a book, MySQL Clustering.

Pamela Fox
Software Engineer at Khan Academy
Pamela Fox loves to learn, teach, create, and every combination of those. During the day, she creates the programming curriculum for Khan Academy, to teach the next generation of programmers. On the side, she teaches web development classes for the GirlDevelopIt San Francisco chapter. Before that, she was a frontend engineer at Coursera, a developer advocate at Google, and a graduate from USC's computer science department.

Nicolas Gallagher
Software Engineer at Twitter
Our web products–and the people designing and building them–are under pressure to adapt to ever-changing conditions. The ability to move quickly and predictably is a major competitive advantage. I'll provide an overview of why I think UI components are an important part of designing adaptable systems.

Paul Holden
Mobile Platform Lead at Uber
Worked at Apple for a long time, now at Uber. Lover of cats.

Basil Hosmer
Software Engineer at Facebook
Basil Hosmer works in the languages and tools group at Facebook. Prior to Facebook, Basil developed languages and runtimes at Adobe, where he created Mesh, a research language focused on type systems and concurrency, co-created the Halfmoon VM, collaborated on the design of ActionScript 4, and created the Fiber data modeling language.

Jafar Husain
Technical Lead at Netflix
Jafar Husain is Netflix's cross-UI team technical lead. He specializes in building application servers and user interfaces using functional reactive programming. He's also an active member of TC39, the standards body responsible for evolving the JavaScript language.
A highly-rated speaker, he has delivered talks about reactive programming at HTML Dev Conf, QCon, Code Mesh, YOW! and has given multiple Channel 9 interviews on the subject. He has also authored interactive training software to help developers learn about functional reactive programming.

Anshul Jaiswal
Engineering Manager at Facebook
Anshul Jaiswal manages the realtime data team at Facebook. The realtime data team develops and operates the platform for stream processing at Facebook. Prior to that, he worked with the team that developed the async processing infrastructure. Before Facebook, he led various teams in developing infrastructure software at Sun Microsystems and other startups.

Tyler Kieft
Engineer at Instagram
Tyler Kieft has spent the last two years as an engineer working on Instagram for Android, building key features and focusing on usability and performance. Before joining Facebook, he was one of the co-founders of SpeakerText, which leveraged crowdsourcing and machine learning to produce fast, accurate transcriptions of video and audio content.

Xun Liu
Engineer at Pinterest

Ori Livneh
Senior Performance Engineer at the Wikimedia Foundation

Chris Marra
Product Manager at Facebook
Chris Marra is a product manager at Facebook focused on adapting products and development practices to the growth of low-end Android phones. In past lives at Facebook, he worked on Graph Search, ad creation tools, and helped kick off Instagram's first business management suite. Prior to joining Facebook in 2012, he built autonomous off-road vehicles at Olin College of Engineering.

Rajesh Nishtala
Engineer at Facebook
Rajesh Nishtala has been a software engineer at Facebook since 2010. He spent three years working on many pieces of caching infrastructure. Rajesh was one of the main early developers of McRouter and integrating it into both memcache and Tao infrastructure. He was also involved integrating McRouter into Instagram's infrastructure. Rajesh is currently working on understanding and identifying the site’s performance and capacity bottlenecks. Prior to coming to Facebook, Rajesh finished his Ph.D. from UC Berkeley in parallel and distributed systems working under Katherine Yelick and James Demmel.

Raghavendra Prabhu
Engineering Manager at Pinterest
Raghavendra Prabhu is engineering manager for the infrastructure team at Pinterest, which is responsible for core backend infrastructure including storage systems, caching, service framework and core business logic. The team is also responsible for the scalability and long term direction of Pinterest's overall software architecture and building backend services that enable product teams to move fast and ship awesome features. Prior to Pinterest, Raghavendra worked for many years on storage and search infrastructure at Twitter, Google, and Microsoft.


Andrew Rogers
Engineering Manager at Facebook
Andrew Rogers is an engineering manager at Facebook’s Seattle office. Since joining two years ago has worked on several Android-related projects, most recently on performance and efficiency. Before joining Facebook, he spent 12 years at Microsoft as an engineer and manager on multiple embedded and mobile projects.

Itamar Rosenn
Data Science Infrastructure Manager at Facebook
Itamar Rosenn is an engineering manager at Facebook, where he leads the Data Science Infrastructure team. Itamar and his team build datasets and tools that streamline and automate the data science work that product teams do throughout the company. Itamar joined Facebook as the company's first Data Scientist in 2007, spent five years doing Data Science work, and founded the DSI team in early 2012.


Sugu Sougoumarane
Software Engineer at YouTube
Sugu Sougoumarane has been working on Vitess since its inception in 2010. He's responsible for the overall design of the product, and is actively implementing many of those features.
Prior to Vitess, he worked on various site scalability projects for the YouTube infrastructure & storage team. Before coming to YouTube, Sugu was part of the architecture team at PayPal where he built some of its core features. Sugu has also done work in development environments, compilers, and computer graphics.

Andrew Twyman
Platforms and Libraries Engineer at Dropbox
Andrew Twyman has been developing products and libraries in C++ for almost 10 years. He loves building robust systems and solving tricky low-level problems. Starting in 2012, Andrew helped spearhead Dropbox’s new approach to cross-platform mobile development. Now on the platforms and libraries team, Andrew is helping bring cross-platform goodness to Dropbox’s new generation of mobile and desktop apps. Prior to Dropbox, Andrew was an architect at Liquid Machines, where shared libraries supported parallel development of more products than there were developers.

Will Wirth
Product Analyst at Facebook
Will Wirth is a product analyst on mobile at Facebook, where he focuses on informing and influencing mobile product management and business strategy with data. He has spent the past two and a half years working primarily on the reliability, performance, design and navigational schemes of the Facebook for Android application as Facebook has shifted to be a mobile-first company. Prior to joining Facebook in 2010, Will worked as a Financial Analyst and graduated with a B.S. in managerial economics from the University of California, Davis.

Igor Zaika
Distinguished Engineer, Microsoft Office, at Microsoft
Igor Zaika is the development manager for the Office core experience team at Microsoft, responsible for shared UX components and application framework used by Office applications. Before that, Igor worked in various areas related to Office client applications, ranging from building Word Object Model and integrating VBA (Visual Basic for Applications) with Office, to shipping the first version of OneNote for the WinRT platform. Before joining Microsoft, Igor worked on 3D CAD application and contributed to the Kronos project.
Growing Facebook On Mobile, a Realtime Analytics Story
Weizhe Shi, Engineer at Facebook
Anshul Jaiswal, Engineering Manager at Facebook
Will Wirth, Product Analyst at Facebook
Abstract: In the recent years Facebook has grown tremendously on mobile. In this talk we’ll discuss how realtime mobile analytics helped accelerate the growth by enabling faster feedback loops during product iteration cycles. We’ll discuss the challenges involved in logging data on mobile, processing it, and analyzing it in real-time. We’ll present the systems we developed to solve these problems and we’ll end the talk with specific examples of how we used these systems to carry out improvements in our mobile app performance, stability, and engagement.
Data Platform Architecture, Evolution, and Philosophy
Kurt Brown, Data Platform at Netflix
Justin Becker, Senior Software Engineer at Netflix
Abstract: The data platform at Netflix has evolved from a traditional BI stack to a modern, cloud-based architecture. Some current production components include Hadoop 2, Pig (on Tez), Hive, Presto, Teradata (Cloud), and S3 as our central data hub, along with lots of custom tooling (including Netflix open sourced techs like Inviso, Lipstick, and Aegisthus). We'll run through our data platform evolution, what our current architecture looks like and why, and the philosophical principles which drive how we get things done.We'll also do a deep dive into Mantis, a reactive stream processing system under development at Netflix. With over two billion hours of content streamed per month, accounting for over a third of North American downstream internet traffic at peak, our operational systems are large, complex, and distributed. Mantis will further enhance our ability to analyze, detect, and resolve issues at scale. In this talk, we'll discuss why we're building it, how it differs from other stream processing systems, and explore the technical details regarding system design and implementation. Highlights include: designing for the cloud, progressive processing, push vs. pull, support for high order functions, stream locality, and more.
Zen: Pinterest's Graph Storage Service
Xun Liu, Engineer at Pinterest Raghavendra Prabhu, Engineering Manager at Pinterest
Abstract: Zen is a storage service built at Pinterest that offers a graph data model on top of HBase and potentially other storage backends. Zen was originally conceived and built in summer 2013 and since then, has grown to be one of the our most widely used storage solutions, powering the home feed, interest graph, notifications, messages, and other upcoming features. In this talk, we'll go over the design motivation for Zen and briefly describe the data model, API, and internals. We will also talk about our learnings from running the system in production for the last year, the features we added, and the performance improvements made to accommodate the fast adoption we have seen since launch.
Building Scalable Caching Systems Via McRouter
Rajesh Nishtala, Engineer at Facebook
BRicky Ramirez, Engineer at Reddit
Abstract: Modern large scale web infrastructures rely heavily on distributed caching (e.g memcached) to process user requests. These caches serve as a temporary holding spot for the most commonly accessed data. However, this makes these services very sensitive to cache performance and reliability. McRouter is the lynchpin of Facebook’s caching infrastructure. It handles the basics of routing requests to the appropriate hosts and managing the responses in a highly performant way. In addition, there are a lot of features in McRouter that have been designed to dramatically improve the reliability of the caching infrastructure. The problems that McRouter addresses are not specific to Facebook, but distributed caching systems in general. As a result, Instagram and Reddit have also adopted McRouter as the primary communication layer to their cache tiers. This talk gives a very brief overview of McRouter and the basics of integrating it into different pieces of infrastructure.
Structured Data at Box: How We're Building for Scale
Tamar Bercovici, Senior Engineering Manager at Box
Abstract: Serving hundreds of thousands of businesses, tens of millions of users, and storing metadata for billions of files, our database and caching tier are at the very core of our stack. We’ll start with an overview of our current MySQL-based sharded database architecture, including a few of the unique design choices we made and how they’ve panned out for us. We'll then talk about our new clustered memcache service, which helps us guarantee both the uptime and consistency of our cache. Finally, we'll discuss our current challenges, and some future directions we're considering. We'll take a sneak peek into Credence, our new structured data store, and discuss why we chose to take on the daunting task of rewriting our PHP data access layer in Scala, where we are in its development, and what open questions remain.
Facebook's A/B Platform: Interactive Analysis in Realtime
Itamar Rosenn, Engineering Manager at Facebook
Abstract: This talk presents Facebook¹s platform for streamlined and automated A/B test analysis. We will discuss the system architecture, how it enables interactive analysis on near-realtime results, and the challenges we've faced in scaling the system to meet our customer needs.
MYSQL for Messaging
Harrison Fisk, Data Performance Engineer at Facebook
Abstract: The original Facebook messaging system was designed and built as an email/message/sms hybrid system. As Facebook evolved to be a mobile-first company, the mobile-to-mobile message use case came to dominate this system. To improve that experience, Facebook has created a new architecture which uses MySQL on flash as a queueing system. This talk will discuss the new system, as well as the various improvements required in MySQL availability and performance to make it serve this new use case at Facebook scale.
Scaling Youtube's Backend: The Vitess Trade-offs
Sugu Sougoumarane, Software Engineer at YouTube
Abstract: If your website or mobile service becomes hugely successful, you will quickly realize that one of the hardest parts to scale is the storage. You will also find yourself making various trade-offs related to transactions, consistency, availability and durability. We faced these challenges at YouTube, which gave rise to the development of Vitess, an open source project. This talk will cover Vitess's architecture and discuss how we found our sweet spot by balancing all these requirements.
Facebook's iOS Architecture
Nick Schrock, Engineering Director at Facebook
Adam Ernst, Engineer at Facebook
Ari Grant, Software Engineer at Facebook
Abstract: Facebook has been iterating its mobile products, continuing to increase the richness of the content and speed at which it is delivered. In transitioning to become a mobile-first company, Facebook has faced complex issues and opportunities to make its products more innovative, while building abstractions to do so that are powerful, yet simple—all fit for a very large scale.
Adam Ernst, an iOS Engineer at Facebook New York, will describe Facebook’s focus on speed and performance. He will examine in detail how they decoupled the client-server communication, reduced developer errors, and improved reliability on iOS and Android by writing a custom persistence layer built on top of immutable objects generated at compile-time from a schema on the server. Adam will describe the nuances his team faced and the solutions that that grew from the specific challenges and how they transitioned the codebase with a fast iteration cycle and frequent release process.
Ari Grant, an iOS Engineering Manager at Facebook, will explore how Facebook’s approach to redesigning the data layer of the app was followed by a rewrite of News Feed in the iOS app using similar functional design techniques to build a reactive UI layer with immutable objects, internal view reuse, and all view-configuration performed by the strongly instrumented, private infrastructure. He will describe the view system his team built and how they managed to reduce the code behind Feed by nearly 70%. Ari will end by describing how the team rewrote all of feed one piece at a time, all while keeping the system up and running and how these efforts have led to an even larger focus on speed and performance.
Practical Cross-Platform Mobile C++ Development
Alex Allain, Platforms and Libraries Lead at Dropbox
Andrew Twyman, Platforms and Libraries Engineer at Dropbox
Abstract: We'll discuss the motivation for why xplatform C++ makes sense and then focus on the "how" of making it work--tying languages together, dealing with platform differences, and the tools we've developed to do so. That'll focus on a language generator we wrote that generates objective-C++ and jni bindings automatically, as well as other aspects of tooling and dealing with cross-platform mobile C++.
Unbundling and Its Impact on Mobile and Web Architectures
Kiran Prasad, Senior Director of Engineering at LinkedIn
Abstract: As mobile becomes a larger part of user traffic, there is a natural question of whether we should combine or separate the client/server architecture for feature development. In addition to system architecture, the same question arises around testing, build tooling, deployment systems, and cadence of releases. Come learn where we started, where we are now, and where we are going with LinkedIn front end architecture.
Speeding Up Android Development with Exopackage
David Reiss, Engineer at Facebook
Abstract: Buck is a build system for Android that encourages the creation of small, reusable modules consisting of code and resources. Because Android applications are predominantly written in Java, Buck also functions as a Java build system. Buck has an advanced feature to speed up iterative Android development called exopackage. An exopackage is a small shell of an Android app that contains the minimal code and resources needed to bootstrap loading the code for a full-fledged Android application. Loading the application code at runtime avoids a full reinstall of the app when testing a Java change, which dramatically reduces the length of edit/refresh cycles.
Scaling a Mobile-Only Company
Paul Holden, Mobile Platform Lead, Uber
Abstract: How do you go about building a mobile-first team? What are the challenges in scaling the user base? We will walk you through the Uber journey of how we tackled these questions - the paths we took, lessons we learnt and where we are heading in the future. This talk will cover how we organized our team and built our development process to help scale Uber.
Microsoft Office Cross-Platform Architecture
Igor Zaika, Distinguished Engineer, Microsoft Office
Abstract: What does it take to target multiple major mobile devices (as well as traditional environments) with portable, efficient, single-source code? This talk demonstrates architectures, techniques, and lessons learned rooted in experience of building Microsoft Office (Word, Excel, PowerPoint, OneNote, Lync) on iOS, Android, Windows, and Mac.
This talk covers the following key topics and tradeoffs:
-Rich vs. reach, including access to latest OS features (e.g., iOS 8 additions) and hardware features (e.g., vector units, GPUs).
-Consistency of experience and functionality.
-Client code vs. server/service web code.
-Sharing vs. quality, including dialing appropriately between more shared code and high quality, platform appropriate, UX and code.
-Drawing the line between the bulk of C++ code and interfacing with non-C++ for UX and PALs (platform adaptation/abstraction layers) for target-specific user interface and system services.
-Architecting PALs, including why “mini-PALs” rather than an “über-PAL”.
-Evolving a very large code base.
Scaling Android Apps for Emerging Markets
Chris Marra, Product Manager at Facebook
Tyler Kieft, Engineer at Instagram
Andrew Rogers, Engineering Manager at Facebook
Abstract: In the past few years, Android's growth has been staggering, and now more than half a billion people connect to Facebook each month from more than 40,000 different device models. In order to develop great products for these people, getting smart about performance, connectivity, and device characteristics has become crucial for Facebook and Instagram. We'll discuss the qualitative and quantitative approaches we've taken to better understand the Android device market, and present the way we've scaled this in the organization. We'll cover performance optimizations from a recent redesign of the Instagram application. We'll also cover the ways we've made the Facebook for Android application smarter about its device and network, and the optimizations we're exploring for the future.
Migrating Wikipedia to HHVM
Ori Livneh, Senior Performance Engineer at the Wikimedia Foundation
Abstract: As a top 10 website, Wikipedia serves more than 500 million readers ever month. Performance is a serious challenge for the site, particularly when serving users via a legacy PHP application more than a decade old. Any action which bypasses caching, such as editing Wikipedia, takes a serious hit from the limitations of the PHP run time. To solve this problem, we decided to take on the ambitious task of migrating to a new stack centered on HHVM, a virtual machine for PHP with an associated just-in-time compiler. In this talk, we'll walk you through the successes and failures we encountered during our migration to HHVM, and share what lessons we've derived for anyone seeking to improve performance of PHP applications.
Creating Interactive Learning Interfaces at Khan Academy
Ben Alpert, Software Engineer at Khan Academy
Pamela Fox, Software Engineer at Khan Academy
Abstract: In this talk, hear from two Khan Academy engineers about how they build two very different learning interfaces: the interactive math exercises, which are built with React and work on both web and mobile, and the live coding editor, which depends on the latest HTML5 features like web workers and content security policy.
WebP at YouTube: Faster images on Desktop and Mobile
Mikhail Sychev, Software Engineer at Google
Abstract: Despite being a video-sharing website YouTube is one of the largest image hosting platforms on the internet, serving over a hundred billion images a day. For the last year we have been working on a site-wide WebP adoption project and as a result now serve it to mobile, desktop and TV. We want to share both highlights and lowlights of our effort to bring faster video thumbnails to the web.
Adaptable Systems and UI Components
Nicolas Gallagher, Engineer at Twitter
Abstract: Our web products–-and the people designing and building them–-are under pressure to adapt to ever-changing conditions. The ability to move quickly and predictably is a major competitive advantage. I'll provide an overview of why I think UI components are an important part of designing adaptable systems
Advanced Debugging Techniques with Chrome
Paul Irish, Developer Advocate for Google Chrome
Abstract: The bigger your app, the harder to trace down bugs to their sources. Luckily, a slew of functionality is in the Chrome DevTools that are dedicated to helping you avoid the bug hunt and keeping you productive. In this session, Paul will cover some advanced JavaScript debugging techniques and show how to be effective. From framework blackboxing to asynchronous callstacks and promises, there's plenty to iincorporate into your development.
JavaScript Testing and Static Type Systems at Scale
Avik Chaudhuri, Software Engineer at Facebook
Jeff Morrison, Software Engineer at Facebook
Abstract: We have tens of thousands of JavaScript modules at Facebook, and we're writing more and more every day. Although these modules always start out owned and understood by a small number of engineers, over time the set of people who maintain them becomes broader. To encourage such engineers to continue to make changes to the codebase, we spent some time identifying various important traits around automated testing, and used our insights to build a tool (called Jest) that makes it as simple and straightforward as possible for developers to write tests. Testing isn’t the whole story, though...
The code we write must not only exploit the full flexibility and expressiveness offered by the JavaScript language, but also clear an incredibly high bar for robustness, performance, and hackability. This means one thing: static typing. All of the tooling that is needed to support development at this level of scale and complexity requires code intelligence, and the foundation of code intelligence is static type information. At Facebook, we're working on the challenging, fundamental, and exciting problem of adding static types to JavaScript without disempowering the dynamism that makes JavaScript great. Circumscribing our JavaScript to a traditional, statically-typed subset is not an option if we want to succeed in the mission of making JavaScript development an awesome experience.
Asynchronous Programming at Netflix
Jafar Husain, Technical Lead at Netflix
Abstract: What's does a mouse drag event have in common with an array of numbers? The answer to this question may surprise you: they are both collections. This key insight holds the key to dramatically simplifying asynchronous programming in JavaScript. In this talk you will learn how you can use the familiar JavaScript Array methods to create surprisingly expressive asynchronous programs. Using just a few functions, you will learn how to do the following:
- Declaratively build complex events out of simple events (ex. drag n' drop)
- Coordinate and sequence multiple Ajax requests
- Reactively update UI's in response to data changes
- Eliminate memory leaks caused by neglecting to unsubscribe from events
- Gracefully propagate and handle asynchronous exceptions
In this talk we'll be exploring the Reactive Extensions (Rx) library, which allows us to treat events as collections. You'll learn about how Netflix uses Rx on the client and the server, allowing us to build end-to-end reactive systems. We'll also contrast Rx with Promises, another popular approach to building asynchronous programs in JavaScript.
Click here if you'd like to be invited to next year's conference