•  

GOTO Chicago 2015 schedule

Monday 11th May 2015

  • Monday Morning Introduction

    by Aino Vonge Corry and Dave Thomas

    At 9:00am to 9:30am, Monday 11th May

    In Grand Court Ballroom, The Westin Chicago River North

  • Morning Keynote - Jepsen IV: Hope Springs Eternal

    by Kyle Kingsbury

    Stateless applications aren't: they rely on other systems storing and transforming shared state correctly. On the basis of documentation and reputation we assume that our clients and database systems comprise a safe, meaningful distributed system. How justified is our faith in that system's correctness? Do popular databases actually provide the safety invariants we assume? Are we using those invariants correctly? I want experimental answers to these questions.

    At 9:30am to 10:30am, Monday 11th May

    In Grand Court Ballroom, The Westin Chicago River North

  • Break

    At 10:30am to 11:00am, Monday 11th May

    In Grand Court, The Westin Chicago River North

  • Applying Reactive Programming with Rx

    by Ben Christensen

    Rarely do we have a chance to rewrite an application from scratch with the newest techniques. Generally we must work within our existing architectures evolving and refactoring years of code. This can make it seem reactive programming either can’t be introduced or doesn’t play a role.

    Netflix has been doing reactive programming with RxJava in production for several years and only recently embarked on “greenfield” development efforts that are fully async. This talk will leverage the experience of introducing reactive programming into existing imperative, blocking codebases to demonstrate how it can be done and when it can make sense to do so. Not all benefits of reactive programming can be obtained without a greenfield, fully async architecture, but many can. Subjects to be covered will include the mental shift from imperative to declarative, working with blocking IO such as JDBC and RPC, service composition, debugging and unit testing.

    At 11:00am to 11:50am, Monday 11th May

    In Room 1, The Westin Chicago River North

  • Building amazing single page applications the right way.

    by justinbmeyer

    What does it take to build a single page application with all the bells and
    whistles needed to be loved by users and by developers who created it? A lot! Amazing applications are:

    Blazing fast. They use techniques like server-side rendering, progressive loading, real time connections, and fall through caches to be immediately responsive.

    Maintainable. They are tested, documented, well architected, and deterministic.

    Fun. They are a joy to program. Common tasks are automatic or easy to perform.

    This talk shows how to create fast, maintainable, and fun applications using a
    new JavaScript framework - DoneJS.

    It shares the techniques and secrets Bitovi, a JavaScript consulting company, has used
    to build some of the most high profile web applications on the internet.

    Attendees will learn specific, tangible application development strategies that can be used with any framework.

    At 11:00am to 11:50am, Monday 11th May

  • Highly available and scalable solutions with RavenDB

    by Maxim Buryak

    RavenDB is a 2nd generation document database, with built-in load distribution, seamless replication, disaster
    recovery and data-driven sharding. In this session, we are going to explore how RavenDB deals with scaling under
    load and remain highly available even under failure conditions.
    We'll see how RavenDB's data-driven sharding allows to increase the amount of the data in our cluster without
    giving up the benefits of data locality.
    We are are going to execute complex distributed map-reduce queries on a sharded cluster, giving you lightning-fast
    responses over very large data volumes.

    At 11:00am to 11:50am, Monday 11th May

    In Room 4, The Westin Chicago River North

  • Swift: New Paradigms for iOS Development

    by Marc Prud'hommeaux

    This talk outlines new patterns and idioms that mobile developers will be migrating towards as Swift moves to become the dominant language in Cocoa development.

    At 11:00am to 11:50am, Monday 11th May

    In Room 2, The Westin Chicago River North

  • Break

    At 11:50am to 12:05pm, Monday 11th May

    In Grand Court, The Westin Chicago River North

  • Benchmarking JavaScript

    by Vyacheslav Egorov

    JavaScript is everywhere. JavaScript VMs improve by leaps and bounds. Performance graphs are breaking through the ceilings of expectations.

    And yet from time to time we still find ourselves wondering whether '===' is faster than '=='.

    What is the right way to approach this question? Is this the question you should be asking to begin with?

    We will take a look at some microbenchmarks written by JS developers and discover a violent clash between XIX century approach to benchmarking and XXI century virtual machines.

    At 12:05pm to 12:55pm, Monday 11th May

    In Room 3, The Westin Chicago River North

  • Beyond JVM: How the platform is evolving for new languages and features

    by Charles Nutter

    The JVM has traditionally hosted many languages, but only those closest to Java itself got the full optimization treatment. Those days are changing rapidly with new JVM features like invokedynamic and lambda, and with the rise of new frameworks like Truffle and Nashorn. In this talk we'll explore what it takes to optimize more exotic languages like JavaScript and Ruby and see how the JVM is evolving to do a better job. We'll see how projects like JRuby and Nashorn are trying to work around gaps in the JVM's optimizer. We'll see how JRuby+Truffle routes around the JVM to achieve blistering fast performance. And we'll look at upcoming projects on the JVM that will make language-building even easier.

    At 12:05pm to 12:55pm, Monday 11th May

    In Room 2, The Westin Chicago River North

  • Deploying like a Boss: From 2 Servers to 20,000

    by Oliver Nicholas

    Deployment systems are where the rubber meets the road for most websites, yet they often begin their lives as uncommented Bash scripts - before exploding into unreadable thousand-line Bash scripts. We'll take a walk through the typical deploy script lifecycle as a business grows, and then look at how Uber's shiny new system handles rolling upgrades, automated rollbacks and other neat features. Finally, we'll peer into the future with Mesos frameworks like Aurora and Marathon.

    At 12:05pm to 12:55pm, Monday 11th May

    In Room 1, The Westin Chicago River North

  • Navigating Unstructured Data - Availability vs. Analytics in NoSQL

    by Matt Brender

    The definition of NoSQL gives us room to lump databases in the same category as analytics frameworks and other technologies. While this categorization is factual, the terms tend to lead to confusion.

    Understanding types of data workloads requires a fundamental appreciation of distributed systems. We will explore what factors affect your choice in database technology and particularly how to prioritize the choice in core architectural underpinnings present in NoSQL designs. We will also explore what these technologies solve and suggestions for how to align them with your application’s objectives for data insights.

    You’ll leave this session with an understanding of the principles separating NoSQL databases, frameworks like Hadoop, and projects that are top of mind like Apache Spark and Kafka. You’ll also gain a deeper understanding of the considerations when identifying a distributed system to handle both availability and analytics for your active workloads.

    At 12:05pm to 12:55pm, Monday 11th May

    In Room 4, The Westin Chicago River North

  • Lunch

    At 12:55pm to 1:55pm, Monday 11th May

    In Grand Court, The Westin Chicago River North

  • Docker at Shopify

    by Simon Eskildsen

    At 1:55pm to 2:45pm, Monday 11th May

    In Room 1, The Westin Chicago River North

  • ECMAScript 6 & Web Components

    by Brian LeRoux

    JavaScript has a long history of being difficult to structure and maintain. To deal with this complexity a swath of frameworks appeared over the years. Prototype.js was quickly followed by jQuery and hounded by Dojo, YUI, Mootools and many others. A second generation emerged focused on structuring apps heralded by Backbone, Angular, Ember, React and Polymer.

    JavaScript can be a hard scene to follow. So what’s next? Nothing! Well ok, not quite nothing, the web platform inches forward very slowly using cues from the frameworks of yore. The W3C and WhatWG incorporate the concepts into the living standards and then browsers implement them eventually.

    Many recent additions to the web platform are finally just now ubiquitous enough to consider serious use:

    - JavaScript version 6 (ES6) - Custom Elements (a part of the broader Web Components initiative)

    Come to this talk to learn how to get started writing structured apps using future friendly vanilla web platform code.

    At 1:55pm to 2:45pm, Monday 11th May

    In Room 3, The Westin Chicago River North

  • The Future of C#

    by Mads Torgersen

    The next version of C# has been reimplemented from scratch in C#, with an open, complete, resilient and incremental language model. All IDE features are built on top of this public API and you can easily add your own – e.g. pluggable diagnostics and code fixes that fit your style and policies. The compiler is open source, and we’ve added a host of new language features. We’ll take a whirlwind tour through the layers of the new C# universe.

    At 1:55pm to 2:45pm, Monday 11th May

    In Room 2, The Westin Chicago River North

  • What Finance Can Learn From Dating Sites

    by Max De Marzi

    Dating, as is often said, is a numbers game. And organizations such as Match.com, and Zoosk rely on very sophisticated technology as they sift through vast customer bases to create the most compatible couples. Specially, they rely on data to build the most nuanced portraits of their members that they can, so they can find the best matches. This is a business-critical activity for dating sites — the more successful the matching, the better revenues will be. One of the ways they do this is through graph databases. These differ from relational databases as they specialize in identifying the relationships between multiple data points. This means they can query and display connections between people, preferences and interests very quickly.

    In this session you will see how in many ways dating sites are getting better performance and more value out of their data than financial institutions by using Neo4j.

    At 1:55pm to 2:45pm, Monday 11th May

    In Room 4, The Westin Chicago River North

  • Break

    At 2:45pm to 3:00pm, Monday 11th May

    In Grand Court, The Westin Chicago River North

  • Easy Scaling with Open Source Data Structures

    by Talip Ozturk

    Today’s applications are getting more and more distributed everyday and it is well-known that distributed programming is hard. With Hazelcast though, distributed programming is easy and lots of fun. A common reaction of Hazelcast users is ‘Ooh my God, this cannot be that easy’. Hazelcast is an open source, highly scalable, transactional, distributed/partitioned implementation of queue, map, set, list, lock and executor services for Java. Hazelcast is for you if you like to easily: share data/state among many servers (e.g. web session sharing), cache your data (distributed cache), cluster your
    application, partition your in-memory data, send/receive messages among applications, distribute workload onto many servers, take advantage of parallel processing or provide fail-safe data management

    At 3:00pm to 3:50pm, Monday 11th May

    In Room 4, The Westin Chicago River North

  • How I finally stopped worrying and learnt to love Conway’s law.

    by James Lewis

    Go faster than your competitors. That's the promise of microservices - deploy faster, scale faster, be more robust. It's all about outcomes and the way your organisation is structured has a tremendous impact on those outcomes. it’s easy to say “Conway’s Law” and then move swiftly on. "But but but, but how?"

    In early 2014, James and Martin Fowler called out “Organised around business capabilities“ as a core characteristic of microservices. This was based on feedback from successful teams around the world about how important this aspect was on the systems they were building. In this talk, James explores some of these structures and provides some practical guidance on what he and Martin meant when they said “business capability”.

    At 3:00pm to 3:50pm, Monday 11th May

    In Room 1, The Westin Chicago River North

  • Types vs Tests : An Epic Battle?

    by Amanda Laucher

    Becoming a professional programmer in the days of Test Driven Development, many are led to believe that there is only one approach to software design and that everyone else is wrong. But what if you’re also a Type fanatic like me? Can these two methods live in harmony? Should they? In this talk we’ll take a rational look across the spectrum of Test and Type driven design, examining the benefits and limitations of these approaches, as well as the language features that best serve these differing needs.

    At 3:00pm to 3:50pm, Monday 11th May

    In Room 2, The Westin Chicago River North

  • Why Fibers Make Sense for Meteor

    by Ben Newman

    Meteor strives to provide approachable APIs for building high-performing JavaScript apps quickly and with much less code than other frameworks. In service of those lofty goals, one unusual choice we've made is to permit the use of coroutines (also known as Fibers), so that apparently synchronous APIs for things like database access can yield control back to the event loop while in progress. This technique is not without its pitfalls, and JavaScript is gradually developing new features, such as promises, generators, and async functions, that provide some of the power of coroutines. This talk examines the ongoing value of coroutines for Meteor, both today and for the foreseeable future. I'll explain how we keep our sanity in the presence of such a powerful tool, compare code written with Fibers to equivalent code using promises and callbacks, and discuss an ideal synthesis of all these techniques.

    At 3:00pm to 3:50pm, Monday 11th May

    In Room 3, The Westin Chicago River North

  • Break

    At 3:50pm to 4:05pm, Monday 11th May

    In Grand Court, The Westin Chicago River North

  • Beyond the Data Grid: Fast Data Processing with Apache Ignite (incubating)

    by Dmitriy Setrakyan

    In this presentation, Dmitriy will describe the
    strategy and architecture behind Apache Ignite(TM) (incubating), a
    high-performance, distributed in-memory data management software layer that
    has been designed to operate between both new and existing data sources and
    applications, boosting application performance and scale by orders of
    magnitude. We will dive into the technical details of distributed clusters
    and compute grids as well as distributed data grids, and provide code
    samples for each. As integral parts of an In-Memory Data Fabric, we will
    also cover distributed streaming, CEP and Hadoop acceleration. This
    presentation is particularly relevant for software developers and architects
    who work on the front lines of high-speed, low-latency Fast Data systems,
    high-performance transactional systems and real-time analytics
    applications.

    At 4:05pm to 4:55pm, Monday 11th May

    In Room 4, The Westin Chicago River North

  • Evolutionary Architecture & Micro-Services - A Match Enabled by Continuous Delivery

    by Rebecca Parsons

    While micro-services are all the rage, they need to be approached with caution. Using the techniques of evolutionary architecture, coupled with continuous delivery, allows for the micro-services architecture and its companion data architecture to evolve. This talk explores the relationship between these three concepts, focusing on how they all support each other in the creation of complex systems.

    At 4:05pm to 4:55pm, Monday 11th May

    In Room 1, The Westin Chicago River North

  • Rock ‘Em Sock ‘Em Robots: Bot Swatting Like the Pros

    by Aaron Bedra

    Keeping a multi-faceted system running is hard work. It's even harder when you have to deal with the day to day nonsense that happens on the web. Gathering the data you need to drive your business is also a tricky game. It is made even more complicated by all of the bots running around messing up the place. And the attacks. Oh the attacks. Every day all day with the attacks...

    It's not enough to just run your systems. The volume of robotic traffic your system deals with on a daily basis may surprise you. This traffic distorts your numbers, steals your data, and can even cause downtime. You can't ignore it any longer.

    Join Aaron as he explores ways to identify and deal with bad robots. He will show you what to look for, how to sort good bots from bad, and what to do with the information once you have it. It will help you deal more efficiently with scrapers, crawlers, scanners, fraudsters, and general malicious activity on your systems and gain some much needed confidence and visibility into the types of traffic you actually get on a day to day basis.

    At 4:05pm to 4:55pm, Monday 11th May

    In Room 3, The Westin Chicago River North

  • The Front End Architecture Revolution

    by David Nolen

    React.js, immutable data structures, and graph oriented queries are poised to radically change how we think about front end application architecture. We will examine these new approaches and technologies and consider the significant ramifications for client side applications whether for the web or native mobile platforms.

    At 4:05pm to 4:55pm, Monday 11th May

    In Room 3, The Westin Chicago River North

  • Break

    At 4:55pm to 5:10pm, Monday 11th May

    In Grand Court, The Westin Chicago River North

  • End-to-end Encryption in Cloud Services

    by Patrick Linskey

    Cloud-hosted services have many advantages, but commonly-deployed cloud architectures have a number of weaknesses when it comes to data management. In particular, when a third party has direct access to your data, that third party becomes an attractive target both for malicious attack and for lawful access via subpoenas served to the third party alone. Additionally, your data becomes subject to the operational security and retention policies of that third party.

    These weaknesses can be addressed with end-to-end encryption -- that is, by encrypting sensitive data at the client tier of the architecture, and manipulating it exclusively in encrypted format in the cloud tier. In this talk, we will look at what Cisco is doing to provide end-to-end encryption for our cloud solutions, and some of the challenges we are still working on to fully close the loop for enterprise customers.

    At 5:10pm to 6:00pm, Monday 11th May

    In Room 2, The Westin Chicago River North

  • Impossible Programs

    by Tom Stuart

    Every aspect of our lives has been transformed by the invention of general-purpose programmable computers. As a result, it's tempting to believe that computers can solve any logical or mathematical problem; that if we throw enough time, money and developers at a question, we can produce a program which answers it.

    Unfortunately the universe is never that convenient. There are hard theoretical limits on what programs are capable of doing, and there will always be easily-stated problems which are impossible for any computer to solve.

    This talk uses code to tell a nail-biting, math-free story about the source of a computer's power, the inevitable drawbacks of that power, and the impossible programs which lie at the heart of uncomputability.

    At 5:10pm to 6:00pm, Monday 11th May

    In Room 1, The Westin Chicago River North