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.

Track Host:
Werner Schuster
Mathematica Kernel Developer @WolframResearch
Werner Schuster sometimes writes software, sometimes writes about software. He focuses on languages, VMs and compilers, HTML5/Javascript, and recently more on performance optimisation.
10:35am - 11:25am

by Adam Wick
Research Lead, Leads Mobile Security/Systems @Galois, & Haskell Lightweight VM Maintainer

Unikernels represent a fundamental shift in how software can be built and deployed across enterprises, both in the cloud and in local installations. However, they are currently a leading-edge technology, which can make people nervous. How will using a unikernel affect my ability to pivot towards opportunities? Will customers be encouraged or discouraged by this new technology? What does it mean for staffing and recruitment? Are unikernels the magic pill that will make all your problems go...

11:50am - 12:40pm

Open Space
1:40pm - 2:30pm

by Peter Alvaro
Computer Science Assistant Professor @UniversityofCalifornia

by Kolton Andrus
Founder of Gremlin Inc, former Netflix

Industry and academia need each other. Far from the fires of production, researchers have the time to ask the big questions. Sometimes they get lucky, but detached from real world constraints they risk irrelevance by inventing and solving imaginary problems. Industry has the customers, the data, and the problems that only come with scale. They want answers to the big questions, but fear the risks of a bad investment. Despite this deep independence, collaborations between industry and...

2:55pm - 3:45pm

by Matt Bachmann
Software Engineer @Fitbit

Strong testing is the best safety net a developer can have when changing code. A good test suite can prevent regressions and provide confidence that what you put out to the world actually works. However, in the real world writing these tests is extremely difficult. Testing individual cases tends to lead to large amounts of code that must be maintained and often we fail to catch all the corner cases and potential points of failure.

Property Based Testing is a method that tries to...

4:10pm - 5:00pm

by Dmitry Ivanov
Tech Lead @TomTom

In a connected world, synchronising mutable information between different devices with different clock precision can be a difficult problem. A piece of data may have many out-of-sync replicas but all of those should eventually be in a consistent state. For example, TomTom users, having personal navigation devices, smartphones, MyDrive website accounts, expect their navigation information be synchronised properly even in the occasional absence of network connection. Conflict-free Replicated...

5:25pm - 6:15pm

by Kavya Joshi
Software Engineer @Samsara

Writing race-free concurrent code is hard. Debugging racy concurrent code is even harder. Race detectors are seriously cool tools that make both easy -- they detect the race conditions in a program.

But race conditions are arguably the most elusive programming errors, so how do race detectors detect them?

This talk will explore the internals of the Go race detector to answer that question. We will delve into the compiler instrumentation of the program, and the run-time module...

7:15pm - 8:05pm

Creating a single microservice is easy, as walkthroughs everywhere show. Add a few annotations, invoke this command to build it, and you have a running microservice! Ta-da! But there is so much more to creating functional, robust microservices than those simple examples can show. In this session, we'll apply a design thinking approach to explore ways of resolving the challenges presented by microservice architectures using Game On!, a microservice-oriented text-based adventure, as a backdrop...



Monday Nov 7

Tuesday Nov 8

Wednesday Nov 9