9.00 |
David Anderson
Social engineering for/with/using Kanban Room: Hiberdating

Level: Intermediate
Sociology is inherently what makes Agile software development methods different from their predecessors. Other aspects of Agile such as pride of workmanship, craftsmanship, focus on quality, testing, highly iterative development, incremental small batch development, and a focus on human psychology were not new, many of these aspects of Agile dating back to the 1960s. The new element in 2001 was sociology - collaborative working in a high trust environment. This talk will explain how a deep understanding has been used to engineer the growth of the Kanban movement globally, and how different mechanisms in the Kanban Method can be used to increase social capital in the workplace with a significant economic, social and psychological payoff for both business and individuals that work within those businesses.
|
|
10.20 |
Paul Dix
Working with massive time series data with InfluxDB Room: Beerboarding

Level: Beginner
InfluxDB is an open source time series database with no external dependencies. This talk will introduce you to InfluxDB's API for writing and querying millions of time series. We'll look at the SQL style query language and the various functions and transformations that can be run against series in the database. I'll also introduce concepts around clustering, data retention, and data summarization.
|
|
10.20 |
Charles Nutter
Beyond JVM: How the platform is evolving for new languages and features Room: Cellfish

Level: Intermediate
The JVM has traditionally hosted many languages, but only those closest to Java itself got the full optimization treatment. Those days are changing rapidly with new JVM features like invokedynamic and lambda, and with the rise of new frameworks like Truffle and Nashorn. In this talk we'll explore what it takes to optimize more exotic languages like JavaScript and Ruby and see how the JVM is evolving to do a better job. We'll see how projects like JRuby and Nashorn are trying to work around gaps in the JVM's optimizer. We'll see how JRuby+Truffle routes around the JVM to achieve blistering fast performance. And we'll look at upcoming projects on the JVM that will make language-building even easier.
|
|
10.20 |
Rob Wormald
Angular2 Data Flow Room: Hiberdating

Level: Intermediate
Angular2 rethinks how data flows through your application - learn how, why, and what to do to get ready for the next level of Angular development.
|
|
10.20 |
Daniel Stenberg
Curl - one hobby, a billion users Room: Internest

Level: Intermediate
curl and libcurl can probably be considered corner stones in of client-side Internet transfers and in particular HTTP, running on every imaginable operating system and CPU architecture in use today. Started in the late 90s, the project now counts perhaps more than one billion users. Daniel takes us through how it started, how it works and why it never gets done.
|
|
10.20 |
Christin Wiedemann
Re-inventing testing – a discussion about science, exploration and innovation Room: Nerdjacking

Level: Beginner
Is testing keeping up with the advances of software development? Are our approaches evolving as quickly as the new technologies, or are we being left behind, using the same methods and techniques as we did decades ago? Testing needs to get more innovative! Scientific discovery relies on innovation; on scientists being willing to pursue new ideas even if it means having to learn new methods or technologies. Similarly testers need to be creative and courageous, exploring new approaches and questioning old habits. Science is credible, curiosity-driven, critical, impartial and dynamic; science continuously challenges and questions methods, techniques and core beliefs. Shouldn’t testing do the same? Taking inspiration from the scientific method, this session suggests an approach for testing that encourages innovation through creativity and collaboration. You are provided with new insights that can help you re-invent your testing!
|
|
10.20 |
Todd Gardner
JavaScript Forensics Room: Textpectation

Level: Intermediate
Something terrible happened here. Traces of errors litter the floor; memory leaking from cracks in the ceiling. Someone lost their object context in the corner. Everything reeks of jank. In this session, a JavaScript error tracking expert breaks down a series of common and complex crimes against web applications. You’ll leave the session armed with techniques and tools to detect, diagnose, and fix your JavaScript web applications. Bring your bugs and let’s fix up our web.
|
|
10.20 |
Rafael Winterhalter
An introduction to JVM performance Room: Youniverse

Level: Advanced
Writing software for a virtual machine allows developers to forget about machine code assembly, interrupts and processor caches. This makes Java a convenient language, but all too many developers see the JVM as a black box and are often unsure of how to optimize their code for performance. This unfortunately adds credence to the myth that Java is always outperformed by native languages. In this talk we'll take a peek at the inner workings of the HotSpot Virtual Machine, its Just-In-Time Compiler and the interplay with a computer's hardware. From this, we will understand the more common optimizations that a virtual machine applies to be better equipped to improve and to reason about a Java program's performance, and how to correctly measure runtime!
|
|
11.20 |
Ingvar Stepanyan
Your code is not a string Room: Beerboarding

Level: Deep Dive
This session will give a deep dive into world of syntax trees - explaining the principles of JavaScript parsers, showing the beauty of working with AST and uncovering the internals of the successful transpilers.
|
|
11.20 |
Troy Magennis
Ten Reasons Estimation and Planning Fails and What to do About It Room: Cellfish

Level: Advanced
Universally, estimating software stories and tasks is hated by developers and most normal people. Almost as universally agreed, the results obtained from forecasting using those estimates are dismal. This session begins by listing the top ten reasons why estimation is a flawed approach and then goes onto offer simple alternative techniques. The alternative techniques described are simple to implement and will perform better than traditional estimation (not a high bar), and often better than intuition alone. By attending this session you will learn – - The top ten reasons why current estimation fails - The situations when estimation is irrelevant and misleading (#NoEstimates) - The difference between forecasting and estimating - How little data is needed to be better than intuition alone - Simple forecasting approaches that don’t fail – Monte Carlo Forecasting
|
|
11.20 |
Sam Newman
The Principles Of Microservices Room: Hiberdating

Level: Intermediate
This talk is distillation of what makes microservices different from normal services. While this talk can serve as an introduction to microservices the real goal is to help tease out the key areas of what is a very broard topic. There has been lots of buzz around Microservices over the last year, but there has often been a lack of clarity as to what Microservices are, or how to implement them well. I've been working to distill down the principles of Microservices to help ensure that we don't just end up repeating the mistakes we made during the last 20 years of service oriented architecture. I'll talk about what they are, the benefits and downsides, and the core principles to stick to do to them well.
|
|
11.20 |
Alan Dipert
Hoplon: A Simpler Way to Program the Web Room: Internest

Level: Advanced
HTML appeared in 1991 as a format for distributing scientific documents. JavaScript appeared in 1995 as a way to dynamically manipulate HTML. Since then, HTML and JavaScript have evolved into a capable and universal computing platform. But it's also one of the most complex. Why? HTML was not designed in anticipation of JavaScript, and JavaScript was not designed in anticipation of Ajax. Framework authors since the 90s have exhausted nearly every paradigm, from MVC to FRP, to fuse HTML and JavaScript into a coherent platform. Hoplon proposes a different way to fuse them: by making them both different syntaxes for the same programming language, ClojureScript. In the Hoplon model, HTML elements are just functions and vice versa. Elements are created and composed functionally, and their states are coordinated with an abstract spreadsheet. I'll explain Hoplon's core concepts and show, with code examples, how new degrees of concision and composition can be achieved using Hoplon.
|
|
11.20 |
Paulmichael Blasucci
The Beating Heart of CQRS Room: Nerdjacking

Level: Intermediate
It's not enough to simply model a domain as commands and events. A robust solution needs to deliver said commands and events (collectively, hereafter: messages) quickly and reliably. MessageRouter, a recently open-sourced tool developed at Quicken Loans, solves exactly this problem. Using CQRS as a backdrop, this talk will explore the use of actor-based concurrency (via F#'s built-in asynchronous programming features) to build the message-dispatching core of a real-world system. In addition to the purely technical aspects of MessageRouter, this session will also discuss solutions to some of the challenges faced in building polyglot enterprise software on the common-language runtime (i.e. Mono or .NET). While no prior exposure to CQRS or F# is assumed, attendees will benefit from having, at least, a basic working knowledge of the common-language runtime.
|
|
11.20 |
Pierre Yves Ricau
Detect all memory leaks with LeakCanary Room: Textpectation

Level: Intermediate
In just a few few weeks, we reduced by 94% the OutOfMemoryError crashes in the Square Register Android app. We built LeakCanary to automatically detect memory leaks and make it very easy to fix them. This talk will cover the principles as well as the underlying implementation details. We'll dig into a few interesting examples and lessons learned.
|
|
11.20 |
Jens Bjarme
Learning to fly Room: Unkeyboardinated

Level: Beginner
"Well I started out down a dirty road, Started out all alone, And the sun went down as I crossed the hill, And the town lit up, the world got still, I’m learning to fly, but I ain't got wings, Coming down is the hardest thing, Well the good ol' days may not return, And the rocks might melt and the sea may burn, Well some say life will beat you down, Break your heart, steal your crown, So I've started out for God knows where, I guess I'll know when I get there" (Lyrics by Tom Petty & Jeff Lynne) Experiences from Getting our virtual keyboard (JustType.se) out to the market as perceived in mid flight. Including forming the team, running a failed Kickstarter campaign, marketing attempts, investor relations and so on.
|
|
11.20 |
Todd Gardner
Case Studies in Terrible Testing Room: Youniverse

Level: Intermediate
Projects fail because they don’t test. Some fail because they test the wrong things. Others fail because they test too much. In this session, an enterprise consultant turned startup entrepreneur will share project case studies in testing atrocities and what can be learned from them. You’ll come away questioning your own testing. Check your dogma and let’s build better software.
|
|
12.20 |
Adam Tornhill
Mine social metrics from source code repositories Room: Beerboarding

Level: Intermediate
To understand large legacy systems we need to look beyond the current structure of the code. We need to understand both how the system evolves and how the people building it collaborate. In this session you'll learn to mine social information such as communication paths, developer knowledge and hotspots from source code repositories. It's information you use to improve both the design and the people-side of your codebase. We'll start by investigating well-known codebases like Roslyn and Scala to see the wealth of information these methods deliver. After that we look at tooling support and how these techniques improve your existing practices and workflows. Finally you'll get tips on crafting your own tools as well as guidelines for when you'd like to do that. This is a new approach to software development - come join the hunt for better code!
|
|
12.20 |
Phil Nash
WhatRTC? Everything you need to know to connect browsers to the world. Room: Cellfish

Level: Intermediate
Traditionally browsers communicate via servers, but what if they could speak to each other? WebRTC is a small set of APIs that make peer to peer communication possible between browsers and mobile applications. Video, audio and data can flow from browser to browser, opening up a new set of possibilities for modern communications. We'll take a look at what WebRTC gives you and, importantly, what it leaves out. We'll take a look at the hurdles involved in implementing WebRTC and speculate over more complicated use cases and examples.
|
|
12.20 |
Bart De Smet
Under the hood of C# 6.0 Room: Hiberdating

Level: Deep Dive
C# 6.0 has a potpourri of new convenient language features. In this talk, we’ll not only have a look at how to use each of those, but we’ll also look under the covers by browsing the Roslyn source code. Ever thought compiler source code is frightening to look at? No worries, your tour guide is ready to show you the inner beauty of the C# compiler!
|
|
12.20 |
Eric Proegler
Interpreting and Reporting Performance Test Results Room: Internest

Level: Intermediate
You’ve worked hard to define, develop and execute a performance test on a new application to determine its behavior under load. You have barrels full of numbers. What’s next? The answer is definitely NOT to generate and send a canned report from the testing tool! Results interpretation and reporting is where a performance tester earns their keep. We’ll start by looking at results from actual projects and together puzzle out the essential message in each. This will be a highly interactive session where we’ll display a graph, provide a little context, and ask “what do you see here?” We’ll form hypotheses, draw tentative conclusions, and identify graphs that give us the best insight on system performance and bottlenecks. We’ll try to describe these analytic steps, and consider a CAVIAR approach for collecting and evaluating test results: Collecting, Aggregating, Visualizing, Interpreting, Analyzing, Reporting
|
|
12.20 |
Martin Esmann
Developing Offline first apps with Xamarin and Couchbase Lite Room: Nerdjacking

Level: Intermediate
Mobile app developers face a number of challenges when they build great app experiences User expectations are high, and continue to rise and constantly challenge performance, network requirements, response time etc. We have all experienced fallout or slow internet and how that affects the mobile experience in a negative direction. Couchbase Lite with Xamarin makes it easy for developers to build Offline first mobile experience that compensate for slow or broken connectivity and help give the best user experience even when connectivity is challenged. In this session you will learn how to use Cocuhbase Lite with Xamarin to build your own Offline first apps.
|
|
12.20 |
Bruno Borges
Nashorn: Javascript on JVM, from Scripts to Full Apps Room: Textpectation

Level: Beginner
Nashorn is the new Javascript engine inside JDK 8. In this presentation you will see an overview of all the features, and cool demos that will show you all the possibilities, from simple scripts to fully capable desktop applications in JavaFX. You will learn how to write Javascript applications that leverage the Java ecosystem.
|
|
12.20 |
Erik Hellman
Pushing the limits with Android Room: Youniverse

Level: Intermediate
Let's look at the latest, most advanced and exciting things you can do with Android today. From developer tools, APIs, services, hardware features and more, this session should inspire you to build the next billion-dollar mobile startup
|
|
13.20 |
David Syer
Building Bootiful Applications with Spring Boot Room: Beerboarding

Level: Beginner
Spring Boot, the convention-over-configuration centric framework from the Spring team at Pivotal, marries Spring's flexibility with conventional, common sense defaults to make application development not just fly, but pleasant! Ideal for microservices and for all your distributed systems and devops needs. Join Spring Boot co-lead Dave Syer for a look at what Spring Boot is, why it's turning heads, why you should consider it for your next application (REST, web, batch, big-data, integration, whatever!) and how to get started.
|
|
13.20 |
Chris Noessel
The Dawn of Agentive Technology Room: Cellfish

Level: Intermediate
There is a new category of technology that is emerging across the world, in which a system does complex work on behalf of its user. In these agentive systems, a low-level artificial intelligence acts as an agent on a user’s behalf to accomplish some task. It delivers on the promises of user-centered design more than ever before, but will require that designers and technologists think of them clearly and distinctly. It will require them to master new scenarios and new tools. Come get ahead of this trend as Chris introduces it and tours the tech across 7 key examples.
|
|
13.20 |
Francesc Campoy Flores
Go: the cool parts Room: Hiberdating

Level: Beginner
An introductory talk to Go where we will discuss why Go's popularity is raising so fast.
|
|
13.20 |
Simon Jäger
Office - develop solutions for everyone Room: Internest

Level: Intermediate
Let’s face it, we all want to bring our applications and services to everyone. In the end we don’t care if they're using a platform like Android, iOS, OS X or Windows… It’s about reaching every single potential customer that we possibly can. It’s about reaching people. But the reality is that it’s hard – it’s costly in terms of time, money and knowledge. No matter if you’re a large company or a small startup – it’s challenging. Join me as I show you our transformation with Office – and our journey to create a single developer platform for you. A developer platform where you can use what you already know and love, to bring your solutions to more than one billion users – cross-platform and cross-device. Let’s break the traditional way of targeting platforms and developing solutions. This session is intended for developers (we will get our hands dirty and code!).
|
|
13.20 |
Christian Pendleton
Boosting your agile organization with Continuous Delivery Room: Nerdjacking

Level: Beginner
We will describe why agile methods benefits from continuous delivery and how we have applied this in two very different real life cases (one large scale and one quite small). The presentation have only partially been given before.
|
|
13.20 |
Ashley Grant
Aurelia - Simple App Development on Every Platform Room: Textpectation

Level: Beginner
In this session Ashley Grant (Core Team Member) will introduce you to Aurelia, a next generation open source JavaScript framework for building apps on every platform. With its focus on clean JavaScript code, modern architecture, data binding, extensible HTML and testability, you'll wonder how you ever got along without it.
|
|
13.20 |
Lars Sjödahl
Rocket Science - how hard can it be? Room: Unkeyboardinated

Level: Beginner
Model rocketry and high powered rocketry as a hobby for anyone. The thrill and joy, the many different challenges, the community and resources and how to get started.
|
|
13.20 |
Ty Smith
Building First Class Android SDKs Room: Youniverse

Level: Advanced
Fabric, formerly Crashlytics, is well-known for its focus on SDK quality, and has been deployed on billions of devices. In this session, attendees will learn the skills to develop and distribute SDKs for Android. We’ll cover an overview of Fabric, deep dive into technical decisions we made, and present the learnings on developing an SDK for stability, testability, performance, overall footprint size, and, most importantly, exceptional ease of implementation. Over the course of the session, we'll uncover and explain many of the challenges we encountered when building SDKs at Twitter. Topics include device feature detection, supporting multiple application types (from Widgets to Services to Foreground GUI applications), API design, deploying artifacts, and coding patterns to support developer customization. We'll conclude with advanced topics, from less-known but very useful tricks to minimizing impact on application start-up time to reducing memory footprint and persistent CPU use.
|
|
14.20 |
Niall Merrigan
Website Fuzzies Room: Beerboarding

Level: Intermediate
Do you know how your application will react when you throw the kitchen sink at it? What about when you add the water and plumbing? ;Most developers don’t think to use application fuzzers as part of their tests and this leaves nice security gaps for amateurs and professionals to find.;In this session, you will learn what application fuzzers are, how to use them and examples of using these tools to find vulnerabilities in your code before you deploy to the wild.;This session is rated at 200-300 for an audience of developers and testers. Pre knowledge of security concepts if not required, however knowledge of web application development and general web principles will make this session more enjoyable and relevant for you.
|
|
14.20 |
Rachel Reese
Patterns and practices for real-world event-driven microservices Room: Cellfish

Level: Intermediate
At Jet.com, we've based our architecture around cloud-based event-driven microservices, and over the last several months, have schooled ourselves on what works and what doesn't. This session will walk you through the lessons we have learned on our way to developing our platform.
|
|
14.20 |
Pete Hunt
Monolith-first apps with Node.js Room: Hiberdating

Level: Intermediate
It's easy to build and deploy monoliths, but they become difficult to manage once an app gets large. Microservices are a trendy pattern, but are often more trouble than they're worth when an app is small. In this talk I'll go over how we built a large Node.js app as a monolith and gradually moved it to a microservice architecture.
|
|
14.20 |
Doc Norton
Agile Metrics - Velocity is NOT The Goal Room: Internest

Level: Beginner
Velocity is one of the most common metrics used-and one of the most commonly misused-on agile projects. Velocity is simply a measurement of speed in a given direction-the rate at which a team is delivering toward a product release. As with a vehicle en route to a particular destination, increasing the speed may appear to ensure a timely arrival. However, that assumption is dangerous because it ignores the risks with higher speeds. And while it’s easy to increase a vehicle’s speed, where exactly is the accelerator on a software team? Michael “Doc" Norton walks us through the Hawthorne Effect and Goodhart’s Law to explain why setting goals for velocity can actually hurt a project's chances. Take a look at what can negatively impact velocity, ways to stabilize fluctuating velocity, and methods to improve velocity without the risks. Leave with a toolkit of additional metrics that, coupled with velocity, give a better view of the project's overall health.
|
|
14.20 |
Sam Aaron
Beating Threads - Live Coding with Real Time Room: Nerdjacking

Level: Deep Dive
Live Coding systems encourage us to think extremely differently about programming languages. Live Coders not only run and modify our code live - we often perform with it live on stage in front of large crowds of people who really don't want the code to miss a beat. In this code and demo-heavy talk we will take a deep technical dive into the internal ideas and innovations of Sonic Pi - a system designed specifically for live coding. We will explore Sonic Pi's novel temporal semantics which allow multiple concurrent threads to execute in synchronisation whilst still allowing live hot-swapping of code. For example, we will examine cue and sync, techniques which allow users to coordinate, manipulate and synchronise threads whilst they're still running. Ultimately, we will uncover an exciting area of programming language research in an approachable and instructive manner all whilst making some sick beats and drops.
|
|
14.20 |
Håkan Jonsson
Lifelogging for insights: Applying machine learning to behavior data at scale using Spark. Room: Textpectation

Level: Intermediate
Sony recently launched LifeLog API for application developers. Applications can now access users’ lifestyle, fitness and health data, collected through smartphone sensors and connected SmartWear devices. In this talk we will show how to derive insights from user’s LifeLog data using machine learning. We will take a look at how the Sony Lifelog team use Spark to scale analytics to large number of users, and how we use it to create new features for Lifelog users.
|
|
14.20 |
Steve Klabnik
JSON API: your anti-bikeshedding weapon Room: Youniverse

Level: Beginner
Software developers love to argue over irrelevant details. We even have a term for it: bikeshedding. When you're building an API, there is tons of opportunity to bikeshed. Do you wrap your data in an object? What HTTP status codes should you use, and in what situations? How do you do pagination? JSON API is a standard for writing APIs in JSON. Extracted from work done with Rails and Ember.js, JSON API gives you a foundation for making all of these kinds of decisions by creating a standardized format for your API. And when you follow a standard, you can use tools that also know the standard. In this talk, Steve will show off JSON API, and how you can use it to help you implement your own APIs.
|
|
15.40 |
Honza Král
Collect all the data! Room: Beerboarding

Level: Intermediate
Every part of a business is producing data - from the invoices in accounting to log records on our servers. i would like to demonstrate on real life examples how you can use Elasticsearch and other tools to make use of that data, regardless of their "shape" or volume.;We will start with gathering but focus mostly on the analysis Elasticsearch can provide us, from the straightforward analytics (and their visualizations) to the more specialized tools that will enable us to find the "uncommonly common" - exceptions to established patterns.;All tools used are open source.
|
|
15.40 |
Charles Nutter
Open Source the Right Way Room: Cellfish

Level: Beginner
You use open source software every day, whether you realize it or not. OSS runs the world, and yet few people have ever contributed. Why? This talk will try to answer that question and give you the motivation and confidence to help out your favorite OSS projects or start one of your own. We'll talk about how to get started, what it takes to run a successful project, strategies for finding OSS development time, and the ultimate benefits to you and your career. Every software developer needs to be an OSS contributor, and I want to help you get there.
|
|
15.40 |
James Shore
Agile Engineering for the Web Room: Hiberdating

Level: Advanced
Test-driven development, refactoring, evolutionary design... these Agile engineering techniques have long been established for back-end code. But what about the front-end? For too many teams, it's dismissed with a "JavaScript sucks!" and unreliable, brittle code. In this session, we look at what it takes to bring the best of Agile development to front-end code. Test-drive your JavaScript and refactor your CSS.
|
|
15.40 |
Emanuele Zattin
Writing Android Libraries Room: Internest

Level: Intermediate
At some point as a developer, you'll consider writing a library. Maybe you've invented a cool new way to perform a specific task and want to share it with the world. Maybe you just can't quiet the itch to modularize your huge code-base. Or perhaps you simply want to reuse your code in an elegant way. Whatever the motivation, writing a library is tough work. You'll hit unpredictable, hard-to-solve roadblocks. You'll face questions about the build system, the publishing process, Android vs. Java compatibility, and more. ;In this talk, I'll show you the best practices to write libraries both in Java or C/C++. We'll discuss API design, CI techniques, and performance considerations to provide you with the right tools for the job.
|
|
15.40 |
Neha Narula
Splitting and Replicating Data For Fast Transactions - Don't Give Up On Serializability Just Yet! Room: Nerdjacking

Level: Deep Dive
Having constraints and guarantees about the way a program executes makes it much easier for developers to reason about concurrency.;It's a common belief that providing serializability, one of the strongest forms of consistency in transaction processing, is too expensive for general use.;We describe research that introduces new techniques for making conflicting serializable transactions faster, on both multi-core and distributed systems.
|
|
15.40 |
Stefan Daugaard Poulsen
Internet of things...a road to success or absolute failure Room: Textpectation

Level: Intermediate
A magic ring that can push gestures to your smartphone, an egg tray that can tell you when you should have eaten all the eggs. There are many inventive ways to make sure you can be a part of the IoT wave. Unfortunately a good part of the devices end up in the trash can due to many reasons. Flaky, unusable and intrusive are terms that often describe these devices. Are we trying to hard to put every device on the internet or is it the fallacy of the next big thing? The world could sure use some enhancement, but that doesn't mean that every device in our home should be on the internet. Some of the most pushed devices are activity tracking and home automation, but we need to go even further. We will venture through the devices that can help us, and not skip the entire security aspect. How can can we mix and match sensors to create new and awesome things...behold IoT is coming.
|
|
15.40 |
Carl Vikman
Flow, the psychology and neuroscience. Room: Unkeyboardinated

Level: Beginner
What are the underlying neurological and psychological principles of flow? I will talk about how neuroscience is linked to a successful recording session in a studio and how these same principles also apply to developing video-games and other knowledge-work.
|
|
15.40 |
Martin Woolley
Bluetooth Beacon Applications and Real World Developer Issues Room: Youniverse

Level: Intermediate
Bluetooth® technology beacons are big news. 2014 was the year when many organizations ran initial pilot projects and 2015 is forecast to be the year of large beacon deployments to create major new services. In fact, ABI Research predicts we’ll see a 60 million unit market by 2019. That’s a whole lot of beacons.;This session will review fundamental beacon application concepts and issues facing developers in the real world. The AltBeacon beacon advertising data format will be introduced and we’ll explore how to develop an application for Android that works with AltBeacon. Finally, we’ll take a look at how boards such as the Intel Edison can be turned into a beacon for testing purposes.
|
|
16.40 |
Israel Ferrer
Android Development like a pro Room: Beerboarding

Level: Intermediate
The Android Sdk has changed much since its first version. Every new version comes with many new APIs. However, there is no perfect API, some do too much under the hood, others couple your classes to the context, others have more lifecycle events than you have years in your life.;The talk will show how to make your app scalable, your code clean, your performance optimized and your UI neat. The talk will show in a pragmatic way the pros and cons of using certain Android APIs, strategies and libraries. It will touch on Fragments, Loaders, AsyncTasks, OOP patterns (mvp vs mvvm vs viper) and styling.;This talk is a compendium of my experience in large code bases since I started to work in Android in 2009.
|
|
16.40 |
Paul Dix
Designing a performant distributed time series database Room: Cellfish

Level: Advanced
Time series data presents unique challenges when compared to other types of data. Write throughput is incredibly high while read throughput is even higher still. Deleting large ranges of data on a regular basis make updating indexes particularly hard. In this talk I'll cover how the time series data use case differs from normal database use cases. I'll go into detail on the tradeoffs we made in InfluxDB to create a distributed system that is highly available and maximizes scale and throughput. On the distributed side of things I'll cover how we handle consistency and coordination in the cluster. How we built a specialized MapReduce framework for time series data.
|
|
16.40 |
Emil Kvarnhammar
The Most Dangerous Software Errors Room: Hiberdating

Level: Intermediate
We find security vulnerabilities almost everywhere. Few developers build perfect systems, and dealing with security vulnerabilities is about managing risks. It’s becoming more important to deal with security in a structured way, as threats and attacks are on the rise. This session will introduce and discuss the "CWE/SANS Top 25 Most Dangerous Software Errors". You will learn how the Top 25 is structured, and how you can work with it in your development projects. You will see hack demos and examples of vulnerable products, and understand how such vulnerabilities can be avoided at an early stage in development.
|
|
16.40 |
Fiona Charles
Some Models Are Useful Room: Internest

Level: Intermediate
George Box wrote, “all models are wrong, but some are useful". Every software test is based on a model, because we can never test everything. We make choices about what to include in a test and what to leave out. Like a model of anything—an airplane, a housing development—a test model is a simplified reduction of the feature, system or business process we are testing. The test model we employ embodies our strategic choices, and then serves as a conceptual construct within which we make tactical choices. This is true whether or not we are aware that we are employing models. Every test approach is a model—even if we base our test design on user stories. If we’re not consciously modeling, we may not be doing it well. The presentation will look at how to use and combine common but powerful test modeling techniques. Using examples of visual test strategy models developed for customers, we’ll examine how to develop your own models and present them for stakeholder understanding and buy-in.
|
|
16.40 |
Stephen Chin
BYO Java Retro Console Room: Nerdjacking

Level: Intermediate
In this session I will walk you through how to build your own retro handheld console that is powered by Java, runs on a Raspberry Pi, and is printed on a 3D printer. Some of the topics that we will cover along the journey include: • Hacking Java on the Raspberry Pi • Rigging input devices with Pi4J • Insane performance tuning on the JVM • Why your boss [or SO] needs to buy you a 3D printer! And of course your retro gaming mettle will be put to the test, so make sure to dust off your old 8 and 16 bit consoles to prepare. This presentation is about the most fun you can have while still legitimately calling this conference “work.” In fact, I will hopefully inspire you to do your own creative “work” leveraging Java and Raspberry Pi to hack the real world.
|
|
16.40 |
Liz Keogh
Real Conversations in BDD Room: Textpectation

Level: Beginner
BDD uses examples in conversation to illustrate behaviour, allowing development teams to explore, specify, and test that they're writing software that matters. Most Agile developers are familiar with its scenarios and "Given, When, Then" template... but how easy is it to get started? In this beginners' session, we look at the language of examples. We'll look at easy ways to get the first scenarios out of business people, what questions to ask, and how we can improve our scenarios, independently of automation, to get a better understanding of what the software should do... or should it?
|
|
16.40 |
Daniel Friedman
From Functions to Relations in miniKanren Room: Youniverse
 
Level: Advanced
We will give a tour of functional and relational interpreters in Scheme and the logic-programming language miniKanren. We will begin with a traditional interpreter for a Scheme-like language in Scheme, and will ultimately develop an interpreter for the same language in miniKanren. The latter will run forward for values, backward for expressions, and will synthesize programs that are difficult to believe.
|
|
17.40 |
Sallyann Freudenberg
Understanding and supporting Neuro-diversity in software development. Room: Hiberdating

Level: Advanced
We begin by taking a historical trip through what we know about cognitive psychology and software development - the mechanisms which allow our brains to manipulate such an intangible and complex domain. We consider the rich mental imagery reported by expert software designers and the creative process itself - particular how we can encourage the incubation of new ideas. We discuss the specialist mind and the unusually large proportion of autism in software development. What do we know about high-functioning autism? How do our practices and workspaces already help? How could they still be improved? What are sensory processing issues? How can we provide kinder workspaces that cater for the different kinds of mind we so dearly need?
|
|