Jafar Husain — Every user of a web application wants to believe that all of the data in the cloud is sitting right on their device. Netflix's data platform "JSON Graph" creates this illusion for the web developer. One Model, Available Everywhere. Using an innovative combination of reactive programming techniques and RESTful principles, JSON Graph allows web developers to create a virtual server JSON model for their web application and transparently access it from any cloud-connected device.
Taylor Savage — Going big by starting small. It's a powerful idea - understandable and manageable complex systems are built out of encapsulated, interoperable parts. Web Components applies this concept the web platform, providing web developers a whole new set of primitives to create and use custom elements.
Maged Michael — Non-blocking data structures offer high availability and strong progress guarantees. They are guaranteed to be available regardless of thread scheduling, including thread termination and indefinite delay. This guarantee is most useful in cases such as sharing between threads and signal handlers, systems where processes could be terminated asynchronously, and soft real-time applications such as media players.
Theo Schlossnagle — The numerical analysis of time-series data isn't new. The scale of today's problems is. With millions of concurrent data streams, some of which run at 1MM samples per second, the challenge of storing the data and making it continuously available for analysis is a daunting challenge.
Dan Grove & Kevin Moore — We designed Dart from the ground up to be a system that could run in a wide variety of environments - from mobile devices to browsers to servers.
Mary Rose Cook — When I made my first game, I was scared of writing graphics code and dealing with browser quirks and player input events. So, I used a game framework to handle that stuff for me. Later, I discovered that stuff is not so scary. I will live-code an action game from scratch without using any libraries. We will cover keyboard input, graphics, collision detection and sound.
Alexandra Fedorova — Data movement is becoming a major bottleneck in all kinds of programs running on multicore systems. A program accessing data over a congested cross-chip interconnect could run as much as 3 times slower than a program running without congestion.
Ulrich Drepper — Vectorization, as opposed to parallelization, is less utilized as a means of exploiting the full capabilities of a processor. This is a problem since even today this means only ¼ to ½ of the performance of the CPU is used. This is only getting worse in future, especially as accelerators are becoming more prevalent.
Andrew Brook — To build its new real-time analytics platform, Selerity created a new messaging protocol, 'Trout'. Why was this necessary, how did we do it and how well does it work? I'll review the functional, performance and resiliency requirements that drove the design, dig into the protocol itself (message stream abstractions, header field layout, peer behavior), discuss it's performance in the real world and talk about current areas of development. This talk should provide practitioners with a sense of what is involved in creating a new messaging framework from scratch and when it might (or might not) be appropriate.
Ben Maurer — Behind it's infrastructure serving 1 billion users, the systems abstractions that Facebook uses provide performance and stability for it's services.
Bill Fisher — Flux is the application architecture used at Facebook to build large, client-side applications. Based on a unidirectional data flow and a central dispatcher, it allows developers to more easily reason about changes in state and manages dependencies across the data layer in a declarative way.
Jason Evans — The jemalloc memory allocator is well known for low fragmentation and high concurrency, yet those two strengths sabotage each other. Eager free memory coalescence facilitates fragmentation avoidance, but concurrency scalability benefits from large and loosely coupled caches.
George Neville-Neil — Most software developers never have to think about time in their programs, unless they are working on some form of real-time system. As distributed systems have become pervasive, whether as a hadoop cluster or as services running semi-autonomously within geographically distributed colocation facilities, the illusion that time doesn't matter has come to an end.
Toby Sullivan — We build APIs constantly. Any truly scalable system is built from service upon service upon service. Near infinite scaling is the promise of service oriented architectures. Until recently, however, there has always existed varying amounts of friction in launching a new service/API for new functionality. Instead, the path of least resistance has been to tack new functionality into existing services. This threatens our ability to scale and is major technical debt.
David Nolen — React.js has experienced an astronomical gain in popularity over a very short period of time. By adopting a more functional approach to UI components and the DOM, React.js delivers (unintuitively) a simpler approach to UI development than many competing frameworks.
Tyler McMullen — Probabilistic algorithms are an awesome and underused tool for engineers building very large scale systems. Making calculations or consistency guarantees "with high probability" instead of "exactly" is often easier to scale and surprisingly reliable.
Rama Karedla — This talk will help the programmer take advantage of the underlying Intel Xeon server architecture to write more efficient programs. We broadly cover topics such as time measurement, memory ordering, making efficient use of the multi level caches, NUMA aware programming and the use of the many compute cores available in the Xeon architecture via multi-threading.
Thanumalayan Sankaranarayana Pillai — Many applications have consistency mechanisms that allow them to recover after a power failure or a system crash. Such mechanisms inherently depend on some behaviors of the underlying file system. These file system behaviors are often misunderstood, and more importantly, differ between file systems.