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 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...
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...
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...
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...
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...
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
Architectures You've Always Wondered About
You know the names. Now learn lessons from their architectures
Distributed Systems War Stories
“A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.” - Lamport.
State of the art in Container deployment, management, scheduling
Art of Relevancy and Recommendations
Lessons on the adoption of practical, real-world machine learning practices. AI & Deep learning explored.
Next Generation Web Standards, Frameworks, and Techniques
Keeping life in balance is a challenge. Learn lifehacks, tips, & techniques for success.
Tuesday Nov 8
Next Generation Microservices
What will microservices look like in 3 years? What if we could start over?
Java: Are You Ready for This?
Real world lessons & prepping for JDK9. Reactive code in Java today, Performance/Optimization, Where Unsafe is heading, & JVM compile interface.
Big Data Meets the Cloud
Overviews and lessons learned from companies that have implemented their Big Data use-cases in the Cloud
Lessons/stories on optimizing the deployment pipeline
Software Engineering Softskills
Great engineers do more than code. Learn their secrets and level up.
Modern CS in the Real World
Applied, practical, & real-world dive into industry adoption of modern CS ideas
Wednesday Nov 9
Architecting for Failure
Your system will fail. Take control before it takes you with it.
Stream Processing, Near-Real Time Processing
Bare Metal Performance
Native languages, kernel bypass, tooling - make the most of your hardware
Culture as a Differentiator
The why and how for building successful engineering cultures
//TODO: Security <-- fix this
Building security from the start. Stories, lessons, and innovations advancing the field of software security.
Bots, virtual reality, voice, and new thought processes around design. The track explores the current art of the possible in UX and lessons from early adoption.