Becoming Fully Buzzword Compliant

Trisha Gee

9:00 - 9:45

”It's all about Containers, Serverless and Reactive Programming right now! ProgSCon London will explore these trends with leading industry experts. Several talks will also feature Blockchain, Microservices and Big Data.”

You’re here at ProgSCon to hear all about the latest trends in technology, to learn about them and decide which ones to apply and figure out how. But it’s a tall order, learning to be a fully buzzword compliant developer, architect or lead, especially when What’s Hot changes on practically a daily basis.

During this talk, Trisha will give an irreverent overview of the current technical landscape and present a survival guide for those who want to stay ahead in this turbulent industry.


Operational considerations for containers

Chris Swan

10:00 - 10:45

Docker made containers easy to use, and containers have proven very useful in development environments - particularly in speeding up test cycles and the feedback from them. When developers are using containers it starts to make sense to use the portability of containers all the way into the production environment; but that brings with it a range of operational considerations around image management, security, audit, logging, orchestration and how the underlying infrastructure is built and managed.

This talk will look into what can be done to deal with those operational considerations, and how they relate back to developer experience

Keyword: Containers


The Walking Dead - A Survival Guide to Resilient Reactive Applications

Michael Nitschinger

10:00 - 10:45

The more you sweat in peace, the less you bleed in war" - the US marines certainly know how to deal with the unexpected. Building resilient distributed applications is not an easy task and you better prepare for failure during development.

In this talk you will learn how to build event-driven applications that are resilient from the bottom up, allowing you to deal with remote services that are failing, slow or misbehaving.

We'll look at code and patterns that have been assembled to withstand failure, react to load spikes and have been proven in production.

Even if you are just consuming data from a database over the network, this talk is for you.

Keyword: Reactive


Do we need another key value store?

Hendrik Muhs

10:00 - 10:45

Keyvi a key value store based on 'finite state', what is it good for, for what do you need it?

It is just small github project like many others. But this is what powers a search engine at scale with very low latency and terabytes of data in it. We replaced our server farms and even forget distributed systems for a while - at least until we have more data - keyvi is a resilient extremely powerful but yet simple engine with lots of use cases.

In this talk I will introduce you to keyvi, describe the concepts, explain what makes it special and show how and where you can use it.

Keyword: Big Data


Building a real-time news search engine

Ramkumar Aiyengar

11:00 - 11:45

What challenges could a search engine have? Large number of documents? Large query load? Very complex queries? A challenging privileging model? Expected low query latency? High volume of document updates? Updates to documents reflected in milliseconds? Realtime alerting for any search? Absolutely no downtime any time of the day, week or year? What if a search engine had all these challenges?

Meet the backend which drives News Search at Bloomberg LP. In this talk, Ramkumar Aiyengar talks about how he and his colleagues successfully pushed Solr over the last few years to unchartered territories, to deliver a real-time search engine critical to the workflow of hundreds of thousands of customers worldwide.

Keywords: Big Data, Solr


WTF is Reactive Programming ?

Claudio José Rodríguez Evgeny Poberezkin

11:00 - 11:45

This will be a journey through the evolution of both the definition and implementations of Reactive Programming and how they have been converging in a quest to make building responsive applications a sane process.

We are still at the point where there is no complete consensus on what a reactive application is; we will explore how this consensus is evolving and what problems it brings.

We are going to talk about the past, present and possible futures of reactive programming and how you can survive it all.

Keyword: Reactive


Is Docker Dead?

Nic Jackson

11:00 - 11:45

By now most of us have some exposure to using Docker either in production or development. However, Serverless architecture has been taking off in a big way over the last 12 months, could Docker have had its day before it has even reached maturity?

In this talk, we will examine the development and deployment flow for both a Docker and a Serverless project. We will compare and contrast the two approaches, both subjectively and objectively and by the end of the talk we will be fully equipped to answer the question "Is Docker dead?"

Keywords: Containers, Serverless, Cloud


Cybercrime and the Developer: How to Start Defending Against the Darker Side

Steve Poole

13:30 - 14:15

In the world of DevOps and the cloud, most developers have to learn new technologies and methodologies. The focus tends to be on adding capabilities such as resilience and scaling to an application. One critical aspect consistently overlooked is security.

In this session, learn about a few of the simple actions you can take (and some behaviors you must change) to create a more secure Java application for the cloud. The world of the cyber criminal is closer than you realize. Hear how at risk your application may be, see practical examples of how you can inadvertently leave the doors open, and understand what you can do to make your Java solution more secure.

Keywords: Cloud, Security, Java


Taming The Wild Frontier - Adventures in ClojureScript

John Stevenson

13:30 - 14:15

Building modern reactive full-stack webapps with JavaScript feels like being an explorer in a wild frontier, you never know when something is going to bite you!

ClojureScript is a well designed functional programming language allowing developers to concentrate on what their webapps should do, rather than be tied up in the mechanics of the language.  The dynamic nature of ClojureScript supports highly interactive development for rapid prototyping; coupled with a built-in specification library & generative testing you can easily develop a robust and well defined codebase.

Discover how ClojureScript is extremely fast, by generating highly optimised JavaScript through dead code elimination.  Avoiding state changes also provides a huge performance boost to ClojureScript through its heavy use of Immutable data structures (list, map, vector, set).

This immutable approach greatly reduces the complexity of your code.  With the help of the core.async library we can also write asynchronous code in a synchronous style, enabling the development team to reason more clearly about their code.

Through the use of a common build tool with rich set of plugins and templates, you will see how creating & managing ClojureScript projects is easy and gives you a highly interactive & dynamic development environment that is a joy to use.

Keywords: Reactive, Clojure, Javascript


Introduction to Blockchain Technology and Ethereum

Laurence Kirk

13:30 - 14:15

How to start to do some blockchain with Ethereum, the most popular Blockchain framwork.


Serverless Architectures

Rafal Gancarz

14:30 - 15:15

The world of cloud computing is on a verge of revolution, the Serverless revolution. With the advent of Function as a Service capabilities offered by the major cloud providers, the architectures we will be building in the future are going to be very different from those you are familiar with today.

In this talk I will introduce the core concepts around Serverless/FaaS and describe some archirectural and operational aspects of distributed systems built on top the Serverless stack. I will also present some experiences, challenges faced and lessons learned from the Serverless project using AWS cloud platform.

Keywords: Serverless, Cloud, Microservices


Disrupting Development using Reactive Event Sourced Systems with Akka

Jan Ypma

14:30 - 15:15

Event sourcing is an architectural pattern that derives current application state from a journal of changes, called events. Traditionally, this is only internal and not directly visible on a system’s API. An alternative is presented which exposes the events themselves as a real-time streaming REST API.

This way, connected systems can materialize their own data, while being deployable and versioned independently. We will talk about how reactive programming helps with keeping the system performance and clusterable, how to deal with past vs. real-time events, what to do with security, in addition to sharing general event sourcing advice.

The presented use case represents the development of a real-time document conversation tool, which in addition to its own message stream extracts data from several other existing sources. The core system is built in Java and Scala using Akka, on a Cassandra database. Event consumers are written in other languages, e.g. NodeJS.

Keywords: Reactive, Akka, Scala, Java


Distributed Ledgers: Anonymity and Immutability at Scale

Eleanor McHugh

14:30 - 15:15

Distributed ledgers are high-integrity journals built atop peer-to-peer networks for recording transactions between participants. Their appeal lies in the ability of participants to track every transaction in which they’re involved but at the same time the public nature of these journals proves a huge threat to privacy. Join digital identity researcher Ellie for an exploration of these themes.

Keywords: Blockchain, Ruby


Scala Typeclasses

Emanuele Blanco

15:45 - 16:30

A typeclass is a set of behaviors that can be attached to types and allow you to work at a much higher level of abstraction. While in languages such as Haskell typeclasses are a first class citizen, Scala doesn’t offer support for typeclasses with a keyword, but they can be implemented using implicits and context bounds. A vast number of libraries, including the standard library, use them extensively. For example, using typeclasses, you can write a single function that transforms `List[Option[A]]` into `Option[List[A]]`, `List[Try[A]]` into `Try[List[A]]`, and works with any other type that implements the same typeclass, without rewriting the function itself.

In this talk, we’ll learn what’s a typeclass, when to use them and how to implement them, look at some examples and figure out how to do more with less code!

A basic knowledge of Scala syntax is recommended to get the most out of this talk.

Keyword: Scala


Latency Sensitive Microservices in Java

Peter Lawrey

15:45 - 16:30

In this talk we explore how Microservices and Trading System overlap and what they can learn from each other as well as the strategies they have in common. In particular, how can we make Microservices easy to test and performant and how can Trading System have shorter time to market and easier to maintain.

Keywords: Microservices, Java


Smart Contracts are Neither Smart Nor Contracts .. So What Are They?

Christopher Gilbert

15:45 - 16:30

It's hard to ignore the hype around block-chain in financial services. Nearing fever pitch, the excitement is almost palpable as banks race each other to implement this 'revolutionary’ and disruptive technology, with block-chain labs spanning the globe. But when you cut past all the hype, what really is it? And more importantly, are we ready for it? Let's find out.

Block-chain is the technology that underpins Bitcoin, and it's not really new, but the artful arrangement of several pre-existing technologies. This talk is designed to be a deep dive into the block-chain technology space, covering first principles through how to apply this technology to solve real-world problems.

Keyword: Blockchain


Microsoft and Open-Source - A 'brave new world'

Matt Warren

16:45 - 17:30

It's a 'brave new world' or 'hell has frozen over' (depending on your point-of-view). Microsoft is the top contributor on GitHub, they have opened-sourced their entire .NET platform and gone cross-platform!

In this talk we will look at what the new 'Open-Source' Microsoft actually looks like, what they've done, how they're doing it and what it all means. From new features to compiler design meetings, from TechEmpower benchmarks to increased community contributions, we will examine it all!

Keyword: .Net


Production Machine Learning

Jan Macháček

16:45 - 17:30

Jan will talk about his experience building several production-grade systems that heavily rely on machine learning & computer vision.
He will talk about the challenges in not only the machine learning (and deep learning) code, but also about test and validation data management, the development & experimentation environments; then on the “production” side, model storage & serving, validation data reporting, and obviously continuous integration & deployment.
There will be plenty of code examples throughout, both in the ML as well as the infrastructure arena; possibly even a daring demo!
People who have heard enough about machine learning, infrastructure as code, and distributed systems to be dangerous, but who are keen to learn the details. Also people who are building a ML system, but aren’t quite sure how a production ML system looks like under the hood.

Keyword: Scala, Akka, Deep Learning


Everything you wanted to know about GraphQL but were afraid to ask

Mark Drew

16:45 - 17:30

In a world where APIs and REST are the way that we can communicate with services, it can become an arduous task to get to the information you need.

For example if you look at a single tweet, obtained from Twitter's API, you will so a stack of information that you don't need! If only there was a way to query this data to get just what you need.
Enter Facebook's GraphQL language. A language specification that solves the same problem that SQL did for Relational Databases.

In this presentation, Mark Drew will go through the fundamentals of the Query Language, structure, use cases and how we can get started with consuming and creating GraphQL endpoints.