Track: Modern CS in the Real World
Day of week:
Computer Science research did not stop at QuickSort or the LR algorithm. In this track we'll cover topics such as probabilistic algorithms and data structures, new security and distributed algorithms, advances in typing, formal methods, new approaches to concurrency and much more. Why? Because we need to tackle ever more data in shorter periods of time - but our CPUs don't get much faster.
Concurrency helps - but that just brings new problems to tackle, and meanwhile more moving parts just means more things that can fall over if we're not careful. Time to sneak a peek at approaches real companies use to tackle this issues using Computer Science research and results from the last few decades.
by Richard Kasperowski
Author of The Core Protocols: A Guide to Greatness
by Alex Rasmussen
Principal Software Engineer @Trifacta
Building high-performance data processing and storage systems that can both scale up and scale out is hard. In this talk, we'll examine some lessons my team and I learned while building record-setting sorting systems at UCSD, and how re-examining your assumptions, understanding your hardware, and actively avoiding work can make building high-performance systems easier.
by Sean Cribbs
Software Engineer @Comcast
We are building an instrumentation platform that runs across dozens of datacenters to provide operational visibility for internal systems and applications. This platform must remain up as much as possible and allow support and operations staff to understand and diagnose problems quickly. They must be able to ask questions like "what machines and applications are publishing metrics?", "what systems appear to be offline?", "what order did these errors occur in?",...
by Caitie McCaffrey
Distributed Systems Engineer @Twitter
Distributed Systems are difficult to build and test for two main reasons: partial failure & asynchrony. These two realities of distributed systems must be addressed to create a correct system, and often times the resulting systems have a high degree of complexity. Because of this complexity, testing and verifying these systems is critically important. In this talk we will discuss strategies for proving a system is correct, like formal methods, and less strenuous methods of testing which...
by Aysylu Greenberg
Software Engineer @Google
Modern systems in production rely on decades of computer science research. Over time, new architectural patterns emerge that enable more resilient and robust systems. In this talk, we'll discuss some of these patterns from systems I've worked on at Google and the related work that provide insights into the motivations behind them.
by Nathan Taylor
Distributed System Engineer working on Caching @Fastly
Despite advances in software design and static analysis techniques, software remains incredibly complicated and difficult to reason about. Understanding highly-concurrent, kernel-level, and intentionally-obfuscated programs are among the problem domains that spawned the field of dynamic program analysis. More than mere debuggers, the challenge of dynamic analysis tools is to be able record, analyze, and replay execution without sacrificing performance. This talk...
Monday, 13 June
Architectures You've Always Wondered About
Case studies from: Google, Linkedin, Alibaba, Twitter, and more...
Stream Processing @ Scale
Technologies and techniques to handle ever increasing data streams
Culture As Differentiator
Stories of companies and team for whom engineering culture is a differentiator - in delivering faster, in attracting better talent, and in making their businesses more successful.
Practical DevOps for Cloud Architectures
Real-world lessons and practices that enable the devops nirvana of operating what you build
Incredible Power of an Open-Sourced .NET
.NET is more than you may think. From Rx to C# 7 designed in the open, learn more about the power of open source .NET
Sponsored Solutions Track 1
Tuesday, 14 June
Better than Resilient: Antifragile
Failure is a constant in production systems, learn how to wield it to your advantage to build more robust systems.
Innovations in Java and the Java Ecosystem
Cutting Edge Java Innovations for the Real World
Modern CS in the Real World
Real-world Industry adoption of modern CS ideas
Containers: From Dev to Prod
Beyond the buzz and into the how and why of running containers in production
Security War Stories
Expert-level security track led by well known and respected leaders in the field
Sponsored Solutions Track 2
Wednesday, 15 June
Microservices and Monoliths
Practical lessons on services. Asks the question when and when to NOT go with Microservices?
Modern API Architecture - Tools, Methods, Tactics
API-based application development, and the tooling and techniques to support effectively working with APIs in the small or at scale. Using internal and external APIs
Commoditized Machine Learning
Barriers to entry for applied ML are lower than ever before, jumpstart your journey
Keeping life in balance is always a challenge. Learning lifehacks
Sponsored Solutions Track 3