Engineering the Future of Software
16–18 October 2017: Conference & Tutorials
18–19 October 2017: Training
London, UK

Speaker slides & video

Presentation slides will be made available after the session has concluded and the speaker has given us the files. Check back if you don't see the file you're looking for—it might be available later! (However, please note some speakers choose not to share their presentations.)

Michelle Brush (Cerner Corporation)
Are you vigilantly keeping watch on your system in anticipation of altering some setting or system state? When parts of your system fail, do you perform manual cleanup? If so, humans have been injected into your architecture. Michelle Brush explores the factors that lead to systems that run on human intervention and shares best practices for detecting and removing humans from the machine.
Stepan Pushkarev (
Hadoop-based data platforms that power ETL jobs and machine learning pipelines are great examples of monolithic architectures that could be redesigned with microservices. Stepan Pushkarev walks you through building and deploying data processing, reporting services, training, and prediction pipelines as decoupled microservices connected with the rest of the enterprise architecture.
Fei Li (Siemens)
Driven by the need for data analytics in Industry 4.0, edge computing is gaining momentum to bring intelligence to the devices at the network’s edge. Fei Li offers insights on a microservice-based architecture that keeps analytics applications on edge devices while dynamically utilizing resources on the cloud to achieve resilience and scalability in critical industrial applications.
Ann Mwangi (ThoughtWorks)
Architects are increasingly becoming convinced that the cloud is the way to scale. The most important consideration after deciding on a cloud migration is the architectural design of the proposed infrastructure. Ann Mwangi shares considerations when deciding on and designing a cloud architecture for a business and highlights common pitfalls that teams fall into during this process.
Evelyn van Kelle (Software Improvement Group), Pepijn van de Kamp (Software Improvement Group)
When discussing architecture, things like microservices and the Reactive Manifesto come to mind. However, the culmination and success of technical choices is strongly determined by social context. Evelyn van Kelle and Pepijin van de Kamp explore the interplay of technical issues and the social aspects of working on a team, such as communication and shared understanding of assumptions and choices.
In many cases, existing architectures represent an accident of circumstances. James Thompson explains why you should move beyond the accidental and introduce intentional architectural thinking to your team, outlining the benefits of deliberate software architecture, from helping newer engineers understand why certain boundaries exist to enabling senior engineers to improve their skills and more.
Monolithic applications often resist the introduction of clearer architectural boundaries. Drawing on a real-world project as an example, James Thompson explains how to implement bounded contexts into such applications in conjunction with normal feature development and maintenance.
Nils Magnus (LinuxTag Association and Open Telekom Cloud)
Nils Magnus outlines the 12 stages of self-awareness that lead to ultimate container enlightenment. It's a long and winding road: while usual suspects like system engineers, developers, and system designers understand container virtualization fairly well, its architectural pattern remains a different cup of tea, and orchestration frameworks and auxiliary tools make it hard to see to the bottom.
Murat Erder (Deutsche Bank)
In the last five years, data has again risen to prominence, with chief data officers, data science, and analytics on the business side and microservices and NoSQL databases on the technology side. But how should software architects approach data in this age of Agile, big data, and the cloud? Murat Erder looks into key trends and architectural considerations.
Reactive programming is quickly becoming one of the hottest topics in frontend development. Luca Mezzalira offers an overview of available reactive architectures for frontend ecosystems and evaluates libraries and frameworks, such as Cycle.js, MobX, and SAM, that you can use to make your current architecture reactive.
Nick Tune (Salesforce)
Aligning organizational and technical boundaries will be the most important responsibility of future architects. Nick Tune explains why we must learn to codesign and coevolve teams and technical architectures to take the next big step to reduce lead times and build learning organizations.
Rob Dickinson (Intel)
The persistent memory revolution is almost here, but many of us architects can't clearly picture where persistent memory fits into our applications. The hard truth is that persistent memory isn't quite like memory or storage; it's a new tier with new capabilities and tradeoffs. Rob Dickinson dispels some of the myths about persistent memory so you can better plan your own research.
Joel Crabb (Target)
The retail landscape for brick and mortar companies transitioning to digital is incredibly complex. Saddled with extensive legacy systems that impinge rapid development capabilities, retailers need an architecture that melds the new with the old. Joel Crabb shares a platform architecture for retailers to compete in this new world.
Eoin Woods (Endava)
As our world becomes digital, the systems we build must be secure by design. The security community has developed a well-understood set of principles used to build secure systems, but they are rarely explained outside that community. Eoin Woods walks you through these fundamental principles and demonstrates how to apply them to mainstream systems.
Karun Japhet (ThoughtWorks)
Karun Japhet tells the tale of how one company bridged the technological divide between modern event-driven systems and traditional architectures, building a resilient platform with eventual consistency guarantees even when third parties provided no guarantees of reasonable service.
Georgiana Gligor (Tekkie Consulting)
Distributing website content in a microservices-driven architecture is not a trivial task, and it requires solving complex problems stemming from the large number of servers involved and the variety of edge cases that need to be solved. Georgiana Gligor shares a solution to content snapshotting, distribution, and caching in a silo-based architecture involving tens of machines.
Max Neunhöffer (ArangoDB)
What we see in the modern data store world is a race between different approaches to achieve distributed and resilient storage. The IoT, genomics, and applications for any other field also raise the demand for a stateful layer. Max Neunhöffer walks you through the components and the inner workings of modern open source databases like ArangoDB, Cassandra, Cockroach, and RethinkDB.
Zsolt Sztupák (Gamesys)
A few years ago, Gamesys began to modernize its platform. Moving to a containerized microservice architecture was a big part of this journey. While the road taken was long and bumpy, the team was able to fulfill most of its promises. Zsolt Sztupák shares Gamesys's experience, pinpointing various design decisions that both helped and hindered the team in achieving what they wanted.
Patrick Kua (N26)
Imagine that tomorrow you started work on a new software system. What would you need to know to be productive? What information would help you orient yourself, make better decisions, and know that you're heading in the right direction? Patrick Kua uses the analogy of the travel guide to help you decide what to document in your software systems.