Greg Young
Creator of CQRS
Gregory Young coined the term “CQRS” (Command Query Responsibility Segregation) and it was instantly picked up by the community who have elaborated upon it ever since. Greg is an independent consultant and serial entrepreneur. He has 15+ years of varied experience in computer science from embedded operating systems to business systems and he brings a pragmatic and often times unusual viewpoint to discussions. He’s a frequent contributor to InfoQ, speaker/trainer at Skills Matter and also a well-known speaker at international conferences. Greg also writes about CQRS, DDD and other hot topics on codebetter.com.
The Bizarre Mating Ritual Of The Whipnose Seadevil
If you're an angler fish, you have it rough. You spend your life in the deep sea. It's lonely. Mates are hard to find. What do you do? If you're the male Whipnose Seadevil, you spend your life exclusively in search of that elusive, life long companion. You take this task so seriously that you forgo physical development and accept a stunted life -- that is until you fix yourself to a female, and release an enzyme that digests the skin of your mouth and her body, fusing you and your new-found love down to the blood-vessel level. And so you
become dependent on her for survival, receiving nutrients via your newly formed shared circulatory system. In return, you provide valued sperm.
And therein lies the secret to building great software.
In this talk, Greg Young will make the case that polyandry and parasitic reproductive processes should serve as the model for programming. You'l learn how the Whipnose Seadevil adapts pragmatically to its deep sea environment and manages to accomplish what most of us as programmers only dream of: reduced metabolic costs in resource-poor environments and improved lifetime fitness relative to free-living competitors.
Don't miss this opportunity to learn from one of software's great visionaries!
Helena Edelson
Principal Engineer at Lightbend
Helena did her academic work in scientific research before getting in software engineering. Formerly at Apple working on platform infrastructure for distributed data/analytics/ml (aaS) at massive scale, VP of Product Engineering at Tuplejump building a multi-tenant stream analysis machine learning platform, Senior Cloud Engineer at CrowdStrike working on cloud-based realtime Cyber Security threat analysis, and Senior Cloud Engineer at VMware automating cloud infrastructure for massive scale. She is a keynote speaker, and has given conference talks at Kafka Summit, Spark Summit, Strata, Reactive Summit, QCon SF, Scala Days, Philly Emerging Tech, and is a contributor to several open source projects like Akka and FiloDB. She is currently a Principal Engineer at Lightbend.
Toward Predictability and Stability At The Edge Of Chaos
As we edge towards larger, more complex and decoupled systems, combined with the continual growth of the global information graph, our frontiers of unsolved challenges grow equally as fast. Central challenges for distributed systems include persistence strategies across DCs, zones or regions, network partitions, data optimization, system stability in all phases.
How does leveraging CRDTs and Event Sourcing address several core distributed systems challenges? What are useful strategies and patterns involved in the design, deployment, and running of stateful and stateless applications for the cloud, for example with Kubernetes. Combined with code samples, we will see how Akka Cluster, Multi-DC Persistence, Split Brain, Sharding and Distributed Data can help solve these problems.
Jaana B. Dogan
Software Engineer at Google
Jaana B. Dogan works on making Google production services more monitorable and debuggable. Previously, she worked on the Go programming language at Google and has a decade-long experience in building developer platforms and tools.
Servers are doomed to fail
Complexity in systems should be defeated if it is possible to do. But the default nature of our computer systems are complex and servers are doomed to fail. In this talk, we will go through new approaches in modern architectures to design and evaluate new computer systems.
Jessica Kerr
Developer at Atomist
Jessica Kerr is a developer and philosopher of software. At Atomist, she works on development and delivery automation: she writes code to let us write code to help us update and deliver code. At software conferences, she speaks about languages (Java, Scala, Clojure, Ruby, Elm, now TypeScript), paradigms (functional programming, DevOps), and now symmathesy. Her interests include resilience engineering, graceful systems, and Silly Things (which her daughters find on the internet). Find her work at blog.atomist.com, the podcast Greater than Code, and on twitter at her true name: @jessitron.
Collective Problem Solving in Music, Science, Software
There's a story to tell, about musicians, artists, philosophers, scientists, and then programmers.
There's a truth inside it that leads to a new view of work, that sees beauty in the painful complexity that is software development.
Starting from _The Journal of the History of Ideas_, Jessica traces the concept of an "invisible college" through music and art and science to programming. She finds the dark truth behind the 10x developer, a real definition of "Senior Developer," and a new name for our work and our teams.
John De Goes
Functional programmer at De Goes Consulting
A mathematician by training but a software engineer by vocation, John A. De Goes has been professionally writing software for more than 20 years. John has contributed to dozens of open source projects written in functional programming languages. In addition to speaking at Strata, OSCON, BigData TechCon, NEScala, and many other conferences, John also published a variety of books on programming. Currently, John consults at De Goes Consulting, a consultancy committed to solving hard business problems using the power of pure functional programming.
Lili Cosic
Software Engineer at Red Hat
Lili Cosic is a Software Engineer at RedHat, working on the operator-framework, enabling the community to make any application Kubernetes native. Previously she worked at Weaveworks on the Weave cloud integration with Kubernetes and before that, she found her passion for Kubernetes operators at Kinvolk helping develop the Habitat Operator. In her free time, Lili enjoys experimenting with Kubernetes, distributed systems, as well as writing operators for fun and not profit and dislikes writing about herself in the third person.
An intro to Kubernetes operators
An Operator is an application that encodes the domain knowledge of the application and extends the Kubernetes API through custom resources. They enable users to create, configure, and manage their applications. Operators have been around for a while now, and that has allowed for patterns and best practices to be developed.
In this talk, Lili will explain what operators are in the context of Kubernetes and present the different tools out there to create and maintain operators over time. She will end by demoing the building of an operator from scratch, and also using the helper tools available out there.
Liz Keogh
Lean and Agile Consultant
Liz Keogh is a Lean and Agile consultant based in London. She is a well-known blogger and international speaker, a core member of the BDD community and a passionate advocate of the Cynefin framework and its ability to change mindsets. She has a strong technical background with 20 years’ experience in delivering value and coaching others to deliver, from small start-ups to global enterprises. Most of her work now focuses on Lean, Agile and organizational transformations, and the use of transparency, positive language, well-formed outcomes and safe-to-fail experiments in making change innovative, easy and fun.
Leadership at Every Level
Leadership is easy when you're a manager, or an expert in a field, or a conference speaker! In a Kanban organisation, though, we "encourage acts of leadership at every level". In this talk, we look at what it means to be a leader in the uncertain, changing and high-learning environment of software development. We learn about the importance of safety in encouraging others to lead and follow, and how to get that safety using both technical and human practices; the necessity of a clear, compelling vision and provision of information on how we're achieving it; and the need to be able to ask awkward and difficult questions... especially the ones without easy answers.
Oleg Šelajev
Developer Advocate at Oracle
Oleg Šelajev is a developer advocate at Oracle Labs working on GraalVM - the high-performance embeddable polyglot virtual machine. He organizes VirtualJUG, the online Java User Group, and a GDG chapter in Tartu, Estonia. In 2017 became a Java Champion.
GraalVM: Run Programs Faster Everywhere
GraalVM is a high-performance runtime for dynamic, static, and native languages. GraalVM supports Java, Scala, Kotlin, Groovy, and other JVM-based languages. At the same time, it can run the dynamic scripting languages JavaScript including node.js, Ruby, R, and Python. In this session we'll talk about the performance boost you can get from running your code on GraalVM, look at the examples of running typical web-applications with it, enhancing them with code in other languages, creating native images for incredibly fast startup and low memory overhead for your services. GraalVM offers you the opportunity to write the code in the language you want, and run the resulting program really fast.
Sara-Jane Dunn
Scientist at Microsoft Research, Cambridge
Sara-Jane Dunn is a Scientist at Microsoft Research, Cambridge. She studied Mathematics at the University of Oxford, graduating with a MMath in 2007. She remained in Oxford for her doctoral research, as part of the Computational Biology group at the Department of Computer Science. In 2012, she joined Microsoft Research as a postdoctoral researcher, before transitioning to a permanent Scientist role in 2014. In 2016, she was invited to become an Affiliate Researcher of the Wellcome Trust-Medical Research Council Stem Cell Institute, University of Cambridge. Her research focuses on uncovering the fundamental principles of biological information-processing, particularly investigating decision-making in Development.
Biological Logic
The 20th Century was transformed by the ability to program on silicon, an innovation that made possible technologies that fundamentally revolutionised how the world works. As we face global challenges in health, food production, and in powering an increasingly energy-greedy planet, it is becoming clear that the 21st Century could be equally transformed by programming an entirely different material: biological matter. The power to program biology could transform medicine, agriculture, and energy, but relies, fundamentally, on an understanding of biochemistry as molecular machinery in the service of biological information-processing. Unlike engineered systems, however, living cells self-generate, self-organise, and self-repair, they undertake massively parallel operations with slow and noisy components in a noisy environment, they sense and actuate at molecular scales, and most intriguingly, they blur the line between software and hardware. Understanding this biological computation presents a huge challenge to the scientific community. Yet the ultimate destination and prize at the culmination of this scientific journey is the promise of revolutionary and transformative technology: the rational design and implementation of biological function, or more succinctly, the ability to program life.
Sergey Bykov
Principal Software Development Lead at Microsoft
Joined Microsoft in 2001 and worked in several product groups, such as e-Business Servers, Embedded Devices, and Online Services, before moving to Research in 2008 to incubate Orleans. Sergey continues leading the Orleans team after open-sourcing the project, now within Microsoft Studios.
Drinking from the firehose, with virtual streams and virtual actors
Event Stream Processing is a popular paradigm for building robust and performant systems in many different domains, from IoT to fraud detection to high-frequency trading. Because of the wide range of scenarios and requirements, it is difficult to conceptualize a unified programming model that would be equally applicable to all of them. Another tough challenge is how to build streaming systems with cardinalities of topics ranging from hundreds to billions while delivering good performance and scalability.
In this session, Sergey Bykov will talk about the journey of building Orleans Streams that originated in gaming and monitoring scenarios, and quickly expanded beyond them. He will cover the programming model of virtual streams that emerged as a natural extension of the virtual actor model of Orleans, the architecture of the underlying runtime system, the compromises and hard choices made in the process. Sergey will share the lessons learned from the experience of running the system in production, and future ideas and opportunities that remain to be explored.