Track: Modern CS in the Real World

Location:

Seacliff ABC

Day of week:

Tuesday

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.

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...

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...

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.

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...

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...