09.00 |
Jurgen Appelo
Managing for Happiness Room: Equality

Level: Beginner
The research is clear: happy workers are more productive workers. Managing for Happiness is about concrete management advice for all workers. Practical things that people can do next Monday morning in order to make the organization a happier place to work, with people who run experiments and drive innovation. In this session, you will see how to manage the system, not the people. This is not only relevant for managers, but for everyone who is concerned about the organization.
|
|
10.20 |
Jenni Jepsen
Why Agile Works Room: Democracy

Level: Beginner
Agile works to deliver the right product faster and to increase people’s motivation. Enhancing communication and collaboration are critical to creating high-performing teams. But often there’s push-back from management about not having the resources to spend on these “nice-to-have, soft skills.” What if we could prove these skills are the reason we can reap the benefits of Agile and create lasting change? Jenni Jepsen found the proof – hard scientific proof – about why things like having the overview and ownership work to make us feel more intrinsically rewarded. Jenni shares the neuro-scientific evidence of why Agile works – a far more accurate view of human nature based on breakthroughs in how our brains function, how we are motivated, and how to create lasting change.
|
|
10.20 |
Dierk König
Purely functional programming on the JVM Room: Dignity

Level: Beginner
Functional programming needs functions, side-effect free transformations, to enable lazy evaluation, memoization, function composition, and safe concurrent execution. Frege is the only JVM language that provides this purity. It is a Haskell that runs on Java and interoperates with Java in a safe way: by rigidly requiring the demarcation of all effects that Java code may have. In this session, you will experience many advantages of a purely functional language and how you can fully exploit them in your Java application.
|
|
10.20 |
Reza Rahman
Java SE 8 for Java EE 7 Developers Room: Diversity

Level: Intermediate
Java SE 8 brings a bounty of improvements - Lambda Expressions, the new Date Time API, Completable Futures, streams and the fork/join common pool. In this code intensive session we will explore how these features can be utilized inside Java EE 7 applications with APIs such as Servlet, JAX-RS, WebSocket, CDI, EJB 3, JPA, JMS and Java EE Concurrency Utilities. We will also briefly explore how Java SE 8 features could be effectively incorporated into Java EE 8 and beyond.
|
|
10.20 |
Tess Ferrandez
A developers guide to the UX galaxy Room: Equality

Level: Intermediate
Is UX and UI design reserved for people with artistic skills that can "feel" what's right? or is there a more systematic approach we can take? We will talk about how you can predict, detect and avoid bad UI and UX, using a no-guess system created by Microsoft Research. We will also look at a lot of bad user interfaces so that you can learn from others mistakes and don't have to fall into their traps.
|
|
10.20 |
Yegor Bugayenko
Built-in Fake Objects Room: Liberty

Level: Advanced
While mock objects are perfect instruments for unit testing, mocking through mock frameworks may turn your unit tests into an unmaintainable mess. Thanks to them we often hear that "mocking is bad" and "mocking is evil". The root cause of this complexity is that our objects are too big. They have many methods and these methods return other objects, which also have methods. When we pass a mock version of such an object as a parameter, we should make sure that all of its methods return valid objects. Read: http://www.yegor256.com/2014/09/23/built-in-fake-objects.html
|
|
10.20 |
Anders Abel
ASP.NET Core Authentication Deep Dive Room: Peace

Level: Deep Dive
ASP.NET Core is a fresh start. For authentication it means out with the old Http Modules’ events and in with a pipeline of Middleware. Middleware are loosely coupled components that are run by calling each other in a pipeline. They can be combined in different way. It can be a simple single cookie middleware used with an authentication form. Or it can be a powerful mixed authentication setup with multiple external providers (Google, Facebook, SAML2). This deep dive starts with a closer look on how middleware are configured and how they interact during authentication. There will then be a look at how to implement a simple authentication middleware, identifying the different parts and how they relate to the overall pipeline model.
|
|
10.20 |
Mark Heckler
Living on the Edge (Service): Bundling Microservices to Optimize Consumption for Devices with Spring Cloud & Netflix OSS Room: Privacy

Level: Intermediate
Devices (phones, tablets, etc.) already consume most services/data, but they have to get those services somewhere! In this session, learn how to use proven patterns & open source software to quickly and effectively build edge services - API gateways - that marshal & streamline communication between your key services and end-users with devices in hand. This session addresses vital points such as: * Leveraging OAuth2 for service security * Configuration services * Microservice registration and discovery * Circuit breakers for graceful degradation Additional topics discussed include logging & tracing, testing approaches, and migration patterns. The presenter will demonstrate how to develop & manage microservices & expose them via an edge service, securely, using OSS tools employed by Netflix to keep movies streaming globally 24x7.
|
|
11.20 |
Badi Sudhakaran
AngularJS + Firebase = A match made in heaven for the lazy developer Room: Democracy

Level: Intermediate
Building extraordinary user experience requires a database that is fast, scalable, supported by a world-class infrastructure. It needs less coding. Firebase provides just that – it is Google’s full stack NoSQL cloud platform that allows developers to build extraordinary realtime mobile and web apps. Badi will take you on a wild ride of coding with Firebase’s JavaScript APIs to build a real-world application. Then we sprinkle AngularJS in the mix and voila – you get something really special called the “Three-Way Binding” and a lot less code. You will get to see how this is a whole lot better than the two-way binding AngularJS provides. We will then explore a few more features of Firebase—user authentication in particular. You will see me live coding a single JavaScript function to authenticate users of our app on social platforms like Facebook. I can assure you this - you will leave this talk itching to try this blissful combination out on your current and future projects!
|
|
11.20 |
Andrea Arcuri
Generating JUnit Test Cases Automatically with EvoSuite Room: Dignity

Level: Intermediate
Writing JUnit test cases takes time, especially if you want to test a whole system thoroughly. Testing a Java class at random is unlikely to cover many of its complex constructs and scenarios. However, it is possible to treat test generation as an optimization problem, and then use techniques like Genetic Algorithms to address it. In this talk, I will first describe how one could use Java reflection to build a random testing tool. Then, I will briefly describe how Genetic Algorithms work, and how they can be applied to automated test case generation. Such techniques are demonstrated with the open-source tool called EvoSuite (https://github.com/EvoSuite/evosuite).
|
|
11.20 |
Ashic Mahtab
Streaming Processing with Spark, Kafka, and Cassandra Room: Diversity

Level: Intermediate
Big Data is all the rage these days. But a lot of Big Data applications out there inherently rely on large, clunky, long running batch jobs. Looking to implement a real time learning system to block potentially fraudulent transactions? Or perhaps you wish to recommend some product just as a user removes an item from their basket. Waiting till the weekly 20 hour job runs isn't going to help you there. Fortunately, we have good, robust, open source tools at hand that can enable us to tap into streaming data. In this talk, we will look at a combination of technologies that can help in this regard. Spark is a general purpose scale out processing system with support for micro-batch oriented stream processing. Kafka is a message broker developed for processing real time data feeds at high throughput and low latency. Cassandra is an excellent scale out partitioned row store with masterless, self healing capabilities that can work with Spark. Come along, and go from Big Data to Fast Data.
|
|
11.20 |
Emil Kvarnhammar
Secure systems with Docker Room: Equality

Level: Advanced
With container solutions like Docker comes several opportunities, particularly in terms of bridging the gap between Dev and Ops. But there are also some new security aspects and complexity to consider if you plan to use Docker in production - especially if you want to use it in clusters. You need to think about security in several layers, and it is not only about operations. You will see examples of security threats and mitigations when using Docker, Kubernetes, Mesos, etcd and similar. You will learn how you can reduce the attack surface of your containers and clusters, and design secure systems from the attacker's perspective.
|
|
11.20 |
Matt Ellis
Understanding abstractions. Or, how do regular expressions work? Room: Liberty

Level: Intermediate
All abstractions are leaky, and we tend to think of that as a bad thing. But sometimes it’s useful to be reminded of the implementation details. Knowing how something works under the covers often makes it a lot easier to use the abstraction. Take regular expressions - very powerful, yet very hard to use - arguably a write-only language! But once you know how the abstraction works, reading and writing a regular expression becomes a lot easier. In this talk, we’ll take a look at some popular, perhaps overlooked, abstractions, see how they work, and see how understanding the level below an abstraction makes you a better developer.
|
|
11.20 |
Jaroslav Tulach
Become a Polyglot by learning Java! Room: Peace

Level: Beginner
In a world running at breakneck speed to JavaScript, it is refreshing to see a project that embraces Java, continues to innovate and provides solutions that deal with the new world and even improve it. This talk describes Graal, Truffle and related projects that aim to build multi-language, multi-tenant, multi-threaded, multi-node, multi-tooling and multi-system environment on top of Java virtual machine with the goal to form the fastest and most flexible execution environment on the planet! Learn about Truffle and its Java API to become real polyglot, use the best language for a task and never ask again: Do I really have to use XYZ language?
|
|
11.20 |
Dave Lewis
Barbarians at the Gate(way) Room: Privacy

Level: Intermediate
Attackers are always trying their best to breach your network to steal the secret sauce hidden inside. This session will delve into the attacker's tool set and focus on the types of attacks that are being leveraged against companies today. I will examine tools, case studies and my own war stories. Outline: - Introduction: Laying the ground work for the discussion. - Types of attacks - Attack data: We look into attack data to see what types of attacks are being leveraged against websites to provide a greater understanding of the threats posed. - Threat modelling. What is the threat that you're actually facing? -volumetric and amplification attacks -extortion attacks -web application security attacks - Review of threat actors - Attackers tools -Scanners - low hanging fruit - Mobile platform exposures - To the cloud! An examination of booters (DDoS for hire) - Lessons learned. How to best protect your data and web properties from attack. - Case studies - Conclusion
|
|
12.20 |
Adam Goucher
AWS: Automating The Not-so-sexy Parts Room: Democracy

Level: Intermediate
We all know how fun and 'easy' it is to spin up environments, or even migrate our entire business into AWS. But after the initial thrill is over, comes the eventual realization that you have just traded the headache of physical hardware for something else. Something that isn't visible and almost unlimited financial risk. This talk is about that not-so-sexy part of an AWS implementation; management of it. Things like; - [Bare Minimum] Account Security - IAM Roles - Billing - Monitoring - Service windows Not only will you leave with an immediate checklist of items to do to your AWS account, but a set of scripts to help you wrangle these not-so-sexy items into submission.
|
|
12.20 |
David Sloan
Accessibility Helpdesk: Answering some frequently asked questions Room: Dignity

Level: Intermediate
Having accessibility skills that help you develop web sites and applications that can be successfully used by everyone, regardless of disability, is becoming more of a standard expectation of web professionals. But sometimes it can be hard to find out how best to answer specific accessibility questions that might arise at various stages of the development lifecycle. This can lead to confusion or misinterpretation, and ultimately a lower level of accessibility in your digital products, which is bad news for your users with disabilities. This session will consider a number of frequently asked accessibility questions—and some questions that should be more frequently asked than they are!—and provide you with some accurate answers. And, where there’s no obvious answer, you’ll learn the best approaches to take to finding the answer yourself.
|
|
12.20 |
Ivar Grimstad
MVC 1.0 - by Example Room: Diversity

Level: Advanced
MVC 1.0, as specified by JSR 371, is targeted for the upcoming Java EE 8 release. In this session I will go through the fundamentals of this specification and explain the core concepts. The session will include lots of code samples and tips to where to get started using this awesome technology.
|
|
12.20 |
Sven Peters
The Secret Sauce of Successful Teams Room: Equality

Level: Intermediate
Every software team writes code, but some teams produce fewer bugs than others. Every software team creates new features, but some teams develop features users love and others don't. What do high performance teams do differently, and why are team members more focused, satisfied and relaxed? They truly work together. No 10x rockstar programmer can achieve what a well rounded, enthusiastic team can. Sven examines how the best software teams set and follow goals, integrate new members fast, ensure diversity, monitor and continually improve team health, embrace transparency, use a playbook to guide them through every phase of development and much more. He shares techniques including: bugfix rotations, OKRs, feature buddies, open demos, focus days, sanity checks and many more that help teams and team members to work more effectively together, and produce awesome results.
|
|
12.20 |
Liz Rush
Challenging & Democratizating Algorithm Development Room: Liberty

Level: Intermediate
Algorithm Development is a term that leaves even the most experienced developers intimidated. Many of us have little exposure to algorithm development and many of us have never written algorithms. With how much influence algorithms are gaining over our lives, we must be prepared to ask tough questions: who writes these algorithms and what are the ethical responsibilities? What is our responsibility as end users and developers in relation to the surge of large corporations offering the use of proprietary algorithms? When we look at algorithm development with a critical eye, we start to notice how deeply impactful the creation of new algorithms are to us as a society. This talk will discuss the ethical & social implications of failures using examples such as computer vision & poor AI training. We'll cover the need for multiple strategies, and their tradeoffs, for accountability through marketplaces, open source, governmental oversight & ombudsmanship.
|
|
12.20 |
José Lorenzo Rodríguez
Fixing mind anti-patterns with mindfulness Room: Peace

Level: Intermediate
Emotional skills are unfortunately among those things that are rarely taught in school or college, and that most people need to discover, for the better or worse, by themselves throughout life; despite of all the evidence showing that cultivating a balanced mind helps in several areas of our experience. This talk is about learning a few practical ways, through mindfulness, of dealing with our own wrong thought patterns that prevents us from having a better performance or satisfaction about whatever we do. Mindfulness describes the state of focusing the awareness in the present moment, by acknowledging the sensations, thoughts and feelings we have. It can be used as a means of solving the problems that are typically created by one's perception of a situation or person.
|
|
12.20 |
Rob Conery
Elixir Is Cool But What Can You Actually Build With It? Room: Privacy

Level: Advanced
Working with Elixir is intoxicating. The syntax is clean, pattern matching is thrilling, and the power of the Erlang VM underneath is mind-blowing. But what can you actually build with it? What patterns do you use… what tools? Are Phoenix and Ecto my only choices for web and data frameworks? In this talk Rob Conery will share his experience migrating a Ruby on Rails application to Elixir, and the choices he faced along the way. We’ll dive into Agents, Supervision Trees, JSONB and potential life on Mars as we figure out the best way to structure an application in Elixir that works great both now and into the future.
|
|
13.20 |
Jelle Akkerman
On iOS with React Native and Clojurescript. Room: Democracy

Level: Intermediate
Our App Store featured iOS app is built with Clojurescript on top of React Native. YOLO tech or solid like a rock!? An experience report on building for iOS with Clojurescript. Is mobile ready for functional and logic programming? Let me give you an overview of the landscape, experiences, tricks and unsalted opinion. Oh, and freebies!
|
|
13.20 |
Paul Bakker
Kubernetes automation for blue/green production deployments Room: Dignity

Level: Advanced
Kubernetes is a great tool to run (Docker) containers in a clustered production environment. There are also a few things that Kubernetes doesn't solve though. When deploying often to a production environment we need fully automated blue-green deployments, which makes it possible to deploy without any downtime. We also need to handle external HTTP requests and SSL offloading. This requires integration with a load balancer like Ha-Proxy. Another concern is (semi) auto scaling of the Kubernetes cluster itself when running in a cloud environment. E.g. partially scale down the cluster at night. Although Kubernetes doesn't provide these things out of the box, it does provide an API that can be used to make all of this happen. In this technical deep dive you will learn how to setup Kubernetes together with other open source components to achieve a production ready environment that takes code from git commit to production without downtime.
|
|
13.20 |
Sebastien Lambla
Feed the links, tuples' a bag – An introduction to Linked Data APIs Room: Diversity

Level: Beginner
Hypermedia and unicorns are so 2011! The next evolution in APIs on the web may well be linked data. With the recent adoption of json-ld by Google, we may finally be seeing the semantic web break into our world, bringing the benefits of graphs of semantic data to your APIs. We will discover, by visiting a magical world, what resources are, how we can describe them, and how they relate to one another. Don't be afraid, you will discover many mythical creatures, from resources and tuples to json-ld, hydra, and maybe even a sprinkle of RDF. So come feed the links!
|
|
13.20 |
Christopher Judd
Hacking & Hardening Java Web Applications Room: Equality

Level: Intermediate
It seems like everyday there is a new headline about a security breach in a major company’s web application. These breaches cause companies to lose their credibility, cost them large sums of money, and those accountable undoubtedly lose their jobs. Security requires you to be proactive. Keep your employer out of the headlines by learning some key security best practices. This session is designed to teach you how to identify and fix vulnerabilities in Java web applications. You will learn ways to scan and test for common vulnerabilities such as hijacking, injection, cross-site scripting, cross-site forgery and more. You will learn best practices around logging, error handling, intrusion detection, authentication and authorization. You will also learn how to improve security in your applications using existing libraries, frameworks and techniques to patch and prevent vulnerabilities.
|
|
13.20 |
Jeremy Seitz
Domain-Driven Desire: API architecture, cross-functional teams, and war stories around the topic Room: Liberty

Level: Intermediate
Microservices are all the rage, and everyone talks about Docker, deployment, automation and infrastructure. But how do you get it working at a large company, when you have so many departments and stakeholders? How do you efficiently deploy and manage services across different teams and technical levels? And how do you do it with legacy in place? This talk goes into detail about the real-world experiences of doing IT transformation at scale. The answer lies in a 14-year-old book called "Domain-Driven Design", as applied to modern service-based architecture. The talk is both organizational and technical in nature. We'll discuss the concepts of domain-driven design, modern agile concepts like squads and guilds, as well as the details of API orchestration. We'll also look at API best practices around versioning, authentication, service discovery, and automated deployment.
|
|
13.20 |
Robert Virding
The Erlang Ecosystem Room: Privacy

Level: Intermediate
The Erlang language and system was designed around a set of requirements for telecom systems. They were distributed, massively concurrent systems which had to scale with demand, be capable of handling massive peak loads and never fail. The Erlang concurrency and error-handling model was developed around these requirements. This talk will describe the development of the language and the design of systems based on the Erlang. It will also look at the further development with the introduction of new languages in the Erlang environment - the Erlang ecosystem.
|
|
14.20 |
Kaushik Gopal
What I learnt using the Presenter pattern Room: Democracy

Level: Intermediate
Patterns of yore like MVP, MVVM etc. have taken the mobile world by storm these days. These are not new concepts per say, but their application to the world of mobile development is new. In this talk, I share some of the learnings from having adopted this pattern in an actual production application. What are the common patterns used in mobile these days? What are the problems with adoption? What are the advantages of adoption? How do we adopt these patterns in a way that doesn't lead to death by abstraction? We'll discuss the juicy learnings from war stories in this session.
|
|
14.20 |
Sarah Horton
Using Accessibility User Research to Improve Product Design Room: Dignity

Level: Intermediate
Most of us involved with product design and development like to solve problems rather than create them. But we are often tasked with solving abstract business or process problems rather than people problems. When we focus on the back-end aspects of a website or app, we may inadvertently create problems on the front end, for the people who use it. In this session we will look at the benefits of user research through the lens of accessibility, as a way of gaining insights into accessible and usable interface and interaction design patterns.
|
|
14.20 |
Lauren Tan
Declarative Templating in Ember.js Room: Diversity

Level: Intermediate
In Ember, Handlebars is a small, Lisp-y templating language we use to express our application's user interface. We use Keywords, Helpers and Components and other primitives to build upon this language, and the result of this is a larger vocabulary in which we can declare our intent much more clearly. Let's explore how Keywords and Helpers augment Handlebars, and cover techniques and patterns for creating our own Helpers in good taste. In this talk, we'll cover everything from the Rule of Least Power, declarative templating, as well as patterns and anti-patterns of creating helpers.
|
|
14.20 |
Tim Park
Processing Planetary Sized Datasets Room: Equality

Level: Advanced
In my group at Microsoft, we have worked with the United Nations, Guide Dogs for the Blind in the UK, and Ströer in Germany on a number of projects involving high scale data. In this talk, I'll share some of the best practices and patterns that have come out of those experiences: best practices for storing and indexing geospatial data at scale, incremental ingestion and slice processing of the data, efficiently building and presenting progressive levels of detail on a web and mobile. The audience will walk away with an understanding of how to efficiently summarize data over a geographic area, general methods for doing incremental updates to large scale datasets with Apache Spark, and best practices around precomputing high scale frontend data views.
|
|
14.20 |
Allan Kelly
Xanpan - roll your own process Room: Liberty

Level: Intermediate
Q: What do you get if you cross Kanban and Extreme Programming? A: Xanpan! - an XP/Kanban hybrid The world doesn’t need another software development methodology - there are plenty already! But each team needs to learn and create their own. Xanpan is a hybrid development approach, a mix of Kanban and Extreme Programming, with a bit of Lean thrown in, seasoned with economics and refined over many teams. Xanpan demonstrates how elements of XP and Kanban can be combined and used as an effective development approach. The resulting focuses on teams not projects, allows planned and unplanned work within iterations. Xanpan started life simply as adding flow thinking to XPnow it has principles and practices, most of which are rooted in Kanban and XP. This presentation will describe the principles and describe the key practices. It will look at how and why these practices support the principles. "Xanpan - team centric Agile Software Development" is available fro LeanPub.com and Amazon.
|
|
14.20 |
Sasha Goldshtein
Diagnostics Deep Dive with Visual Studio 2015 Room: Peace

Level: Intermediate
Visual Studio 2015 was a release rich with diagnostics improvements in the profiling and debugging space, and Update 1 brings a slew of additional features! In this talk we'll highlight how Visual Studio can be used most effectively as a live and historical debugger with features like IntelliTrace, CPU usage while debugging, heap snapshots while debugging, and more; we'll also talk about the new Diagnostics Hub experience that lights up a variety of performance measurement tools depending on the target you choose; and finally we'll see how to use the diagnostics tools in your production environment, where you don't have Visual Studio installed.
|
|
14.20 |
Josh Long
Cloud Native Java Room: Privacy

Level: Beginner
“It is not necessary to change. Survival is not mandatory.” -W. Edwards Deming Work takes time to flow through an organization and ultimately be deployed to production where it captures value. It’s critical to reduce time-to-production. Software - for many organizations and industries - is a competitive advantage. Organizations break their larger software ambitions into smaller, independently deployable, feature -centric batches of work - microservices. In order to reduce the round-trip between stations of work, organizations collapse or consolidate as much of them as possible and automate the rest; developers and operations beget “devops,” cloud-based services and platforms (like Cloud Foundry) automate operations work and break down the need for ITIL tickets and change management boards. But velocity, for velocity’s sake, is dangerous. Microservices invite architectural complexity that few are prepared to address. In this talk, we’ll look at how high performance organizations like Ticketmaster, Alibaba, and Netflix make short work of that complexity with Spring Boot and Spring Cloud.
|
|
15.40 |
Axel Fontaine
Immutable Infrastructure: Rise of the Machine Images Room: Democracy

Level: Intermediate
The cloud is the new normal and it is time to rethink how we see machines and deployments. We have been piling layer upon layer of complexity for too long. But why should it be this way? It is time to radically simplify all this. In this talk, we'll throw general-purpose operating systems, snowflake servers and runtime provisioning out the door. Instead you'll see how servers become disposable, how machine images are generated from scratch in seconds and how to achieve perfect environment parity from dev to prod. This is Immutable Infrastructure. It is a profoundly important change as to how we view and treat our systems. We'll go deep. We'll look at how this affects scaling, logging, sessions, configuration, service discovery and more. We'll also look at how containers and machine images compare and why some things you took for granted may not be necessary anymore. But beware, neither sacred cows nor kittens will be spared!
|
|
15.40 |
Jurgen Appelo
The Creative Networker Room: Dignity

Level: Beginner
The 21st century will see the rise and dominance of the creative economy. In an ever-changing environment, success can only come from a never-ending wellspring of ideas that help workers to make fun, make money, and make a difference. There is only one place where those ideas can come from: people. We used to call them knowledge workers, because in the industrial economy and in the service economy, those with the most knowledge were best able to solve problems. In the creative economy, that’s all different. The knowledge you have today? It’s useless tomorrow. More important now is that people are a creative networkers. So how do we get people to be creative? The problem with organizations stuck in the industrial economy or in the service economy is that they place the wrong constraints on people. This needs to change. The creative economy is spreading, globally. If your employees don’t come up with new ideas for innovative products and services, those at other companies will.
|
|
15.40 |
Filip Ekberg
Back to Basics: Efficient Async and Await Room: Diversity

Level: Intermediate
We've all experienced deadlocks, and we all hate them, but how do we prevent (and potentially fix) them? That's right, no one likes applications crashing or giving users an unexpected behaviour. Introducing asynchronous patterns is so much more than just applying async and await to your methods; you really, I mean really, need to understand what's going on. In this session, we'll make sure you know how to avoid crashing your applications, and how to adhear to best practices when applying asynchronous patterns in our .NET applications.
|
|
15.40 |
Txus Bach
Building the systems of tomorrow Room: Equality

Level: Advanced
Bugs make us slow. They annoy our users. They drain our revenues. We software developers are all too familiar with them. But not too far in the future, as software takes on a more central role in our lives, bugs will start driving us off cliffs and poisoning our bloodstream. Are bugs a natural consequence of software? Are they all created equal? Can we prevent all of them? In this talk, we'll draw from some deeply powerful ideas and tools that can help us reason about what our code is doing, and we'll explore how they can render entire classes of bugs obsolete. Let's discover how powerful logics, expressive type systems and generic code might just be our best allies in building the systems of tomorrow.
|
|
15.40 |
Sam Elamin
Metrics driven development Room: Liberty

Level: Intermediate
Moving to a distributed system will solve all your problems and you will be in developer heaven. Right? Not exactly, having hundreds of services doing different things means it's increasingly difficult knowing where exactly production issues are hiding. In this talk Sam Elamin will relate his real life experience working on a distributed system dealing with £100,000 worth of transactions every hour. Sam will cover monitoring and how to develop your features based on how your customers use your platform and, most importantly, business metrics. Sam will cover how to implement metrics in your application and setting up dashboards to gaining visibility into what is happening in your production system right now. We'll also go through some helpful techniques to help you convince your domain experts that gaining this insight is invaluable to keeping your competitive advantage.
|
|
15.40 |
Yan Cui
Modelling game economy with Neo4j Room: Peace

Level: Beginner
The challenge of modelling and balancing the economy of a large scale game is one of the biggest problems game developers face and one that many have tried to solve by simply throwing man-hours at it... But there's a better way! Learn how Gamesys did it by leveraging graph database Neo4j to model the in-game economy of our MMORPG "Here Be Monsters" and automate the balancing process. We'll discuss lessons learned, successes and challenges, and how a graph database enables our small team of game designers to stay agile and focused on delivering new content to players.
|
|
15.40 |
Heather VanCura
The JCP & The Future of Java Room: Privacy

Level: Beginner
Learn how to take part in Java technology evolution through the Java Community Process (JCP) program. You can participate as an individual, corporation, or nonprofit such as a Java user group (JUG). This session outlines why and how to participate in the JCP Program. You will also learn about the global Adoption programs and how you can participate in the programs. We will discuss details such as how to run hack days, collaborate with other JUG leads on Adopt-a-JSR activities, and review use cases from other JUGs around the world contributing to the Java EE 7 and Java SE 8 JSRs. Currently there are new JSRs being submitted and developed for the Java EE 8 and Java SE 9 platforms. Find out how you have contribute to the future editions of the Java Standard and Java Enterprise Editions.
|
|
16.40 |
Mike Burrows
Servant Leadership un-neutered Room: Democracy

Level: Intermediate
What is Servant Leadership? Is it just “unblocking all the things and getting out of the way”? In this session, Mike would like both to challenge that misrepresentation of this classic leadership model and to show Servant Leadership’s present-day relevance to the challenges of Lean-Agile transformation. We'll explore six transformation strategies (honestly, with their respective pitfalls) and the opportunities for demonstrating and developing Servant Leadership that go with each of them.
|
|
16.40 |
Ali Kheyrollahi
From Power Chords to the Power of Models: Insights from History of Rock Music via Machine Learning Room: Dignity

Level: Intermediate
Who were the most influential bands of Rock history? Which bands could not exist if there was no Velvet Underground? How much Shoegazing subgenre is related to the Drone music? Rock music history was perhaps full of drugs and alcohol but we are sobering up to represent it in terms of (social) networks and find mathematical relationship between artists, trends and subgenres. Full of DataViz and interesting relationships, we will pick up a few common clustering and network analysis algorithms to analyse the publicly available Wiki data. Expect lots of air guitar power chords and virtuoso solos.
|
|
16.40 |
Hadi Hariri
Creating Small DSLs with Idiomatic Kotlin Room: Diversity

Level: Intermediate
Kotlin is a fairly easy language to grasp given its similarity with other mainstream ones such as Java, C# and JavaScript. However, Kotlin provides a few characteristics which makes it possible to write nice DSL’s. But the question is, do we always need full-blown domain specific languages in our applications? Are we really going to write all our business rules in a specific language? Not necessarily, but that doesn’t mean we should discard DSL’s. In fact, DSL’s are really powerful when they are small and focused. In this talk we’re going to show a few DSL’s that we can create to deal with different aspects of our application, whether it’s business dealing with tax rules or infrastructure and working with transactions, and see how with very little effort we can create more concise, maintainable and readable code.
|
|
16.40 |
Dylan Beattie
The Rest of ReST Room: Equality

Level: Advanced
So you've built your HTTP API, and now that it's live, you're suddenly dealing with a whole new set of problems. Do you really need to PUT the entire Customer just to change someone's email address? Why does it take you 25 API calls just to render a shopping cart? How do you find the bottlenecks when just drawing a web page requires fifty HTTP requests? What happens when one of your API consumers accidentally tries to GET your entire customer database? In this talk, we'll look at the problems of running ReSTful APIs in the real world, and the architectural patterns that exist to help us solve those problems. We'll talk about hypermedia - how does it work and why does it matter. We'll look at resource expansion, and how it can reduce your server workload and speed up your client applications. We'll talk about how to implement PATCH properly, how to handle security and authentication for your APIs, and what tools and services exist to help you design, deliver and debug your HTTP APIs.
|
|
16.40 |
Lars Klint
Building Apps for All Screen Sizes Using Adaptive UX Room: Liberty

Level: Intermediate
Sick of developing a user interface for mobile, then doing it again for desktop, then again for tablet? How about including features that make sense on a smaller device, but not on a larger screen? Or what if you want the layout of elements on the screen to change based on screen size and device type? Get familiar with the Adaptive UX patterns, features and elements of the Windows 10 Universal Apps, and it will make your developer life more about features, less about plumbing (and avoiding losing those last few hairs on your head).
|
|
16.40 |
Siren Hofvander
IoT Security and you Room: Peace

Level: Beginner
It's faster to get your toaster hooked up to the internet than it is to make it actually toast bread. And in even less time it can start making friends, with your fridge, your webcam and approximately 350k other devices in a big friendly botnet being used to attack corporations and random websites. In the growing world of IoT what does security even mean anymore and who is looking at it. (is anyone?) What does the rush to market mean for the security within the IoT space, and what, if anything, can we do about it.
|
|
16.40 |
Eric Cochran
Getting Kotlin in Your Codebase Room: Privacy

Level: Intermediate
Excitement swirls around Kotlin, and we developers want it in our codebases. From an Android engineer's point of view, Eric will talk about the best ways to start using Kotlin at work and what parts of a Android codebase really benefit from Kotlin usage. With the 1.0 stable release, convincing your coworkers to get Kotlin into at least your tests is an endeavor worth undertaking!
|
|
17.40 |
Charles Marcus
The Present and Possible Future of Quantum Computing Room: Equality

Level: Intermediate
I will review the state of quantum computing research, focussing on leading technologies and approaches. One approach in particular, topological quantum computing, is poised at the forefront of physics. This approach aims to create a new kind of delocalized state in a condensed matter system, the so-called Majorana zero mode, that will allow quantum information to be manipulated by braiding particles around one another. The state has been found. Can it be braided?
|
|
20.00 |
James Veitch
Evening Entertainment Room: Equality

Level: Beginner
Description will be soon added. If you would like to know what James is doing, watch this brilliant TedTalk: https://www.ted.com/talks/james_veitch_this_is_what_happens_when_you_reply_to_spam_email?language=en
|
|