Friday, 23 June 2017

Teaching Children about Clean Code - Felienne Hermans



In the future, everyone will be a programmer! Not just to fill the millions of software vacancies, but also as part of other jobs. A teacher performing some data analysis on their students results, a car mechanic updating a car's firmware, or an artist creating an interactive website as an art piece.

Now how are we going to prepare our children for such a future? This is what Felienne researches at Delft University of Technology.

She wants to understand how children are programming currently, and how they are learning to program. She is mainly interested in teaching children to code well: how to create source code that is easy to read and maintain.

Luckily, there is Scratch, a massively popular programming language for kids, made by MIT. There are over 18 million programs made by kids in their public repository!

So, kids are programming :) That is the good news. But do make pretty programs? Are their programs simple or complex? Do they apply programming concepts or do they just play with the blocks? Do kids develop good programming habits? Are there common code patterns?

To answer those questions, we scraped the Scratch repository, retrieved 250,000 projects and performed source code analysis on them. In this talk, Felienne will show the results of this analysis and the lessons learned.

Thursday, 22 June 2017

When & How to Explore: an Engineer's Guide - Julie Pitt




I'm willing to bet that you want to become a better engineer and problem-solver. You have probably already seen the benefits of exploring unfamiliar technologies, patterns, algorithms and approaches that make you better at your job, leading to efficiency gains and innovations at your company.

In this talk, I'll tell you the story of my confrontation with the classic dilemma: exploration vs. exploitation. You'll hear about my journey from developing large-scale production applications to experimenting in sparsely-charted territory, including lessons learned in the process. I hope you walk out of this talk with a renewed enthusiasm for exploration and a framework that you can use to decide when to explore and when to exploit.

Wednesday, 21 June 2017

Blockchain: The Slowest (and most Fascinating) Database in the World - Stefan Tilkov



As the foundation of Bitcoin's virtual currency, the blockchain technique is now the starting point for numerous new business ideas. The usual suspects surpass each other with superlatives how "disruptive" the Blockchain based startups will be.

In this talk, we look first at the technical foundations and then examine the advantages and disadvantages. We then identify practical scenarios and discuss how to implement them in practice.

Tuesday, 20 June 2017

Patterns of Effective Teams - Dan North



Some teams are orders of magnitude more effective than others, turning around business solutions in days or even hours. Their secret is a combination of smart technology choices, great development habits and a powerful team dynamic. In this talk Dan describes a number of patterns of behaviour that he's identified working with some great teams, beyond the basics of co-location, stand-ups and pair rotation. You'll gain a new appreciation for old techniques like code reviews, and even working in silos won't seem so bad!


Monday, 19 June 2017

Hacking the Internet of Things for Fun & Profit - Ruben van Vreeland



The combined world of IoT has reached a state where it's actuators spread from control systems in the industry into the city you live in and the privacy of your home. Now that everything is connected, we can abuse gadgets and devices for purposes they were not originally constructed for, and turn them against their users.

We will discuss current attacks, potentially 0-days, projects and Proof of Concepts that show the Internet of Shit that inhabits the Internet of Things, by OWASP's Top 10 attacks to these devices.

During this talk we go into demonstrations that might inspire you to build a cool exploit, or radical security technology, during the conference.

Prerequisite attendee experience level: beginner

Friday, 16 June 2017

Managing Manager‐less Processes - Fred George



A new generation of Agile processes are emerging, frequently omitting the role of a dedicated manager. Erik Meijer has termed his flavor as One Hacker Way; my version was originally titled Programmer Anarchy.

We explore the reasons for the emergence of these managerless processes, suggesting they are particularly appropriate for solving “fuzzy problems” (Complex problems per the Cynefin framework of Dave Snowden), and that these fuzzy problems have become increasing prevalent and profitable.

As we decompose the traditional duties of the manager, we begin to see the irrelevance of many of these roles. While some roles are still important in this environment, we suggest alternative implementations for these roles. This includes an actual case study of these processes in action.

The nature of fuzzy problems renders traditional management controls ineffective. We suggest specific alternative strategies that have been effective in various engagements. In particular, we will describe the roles and responsibilities for:
  • Concierge
  • Ambassador
  • Leader
  • Mentor
We will also address other challenges such as performance appraisals and recruiting additional staff when managers don’t exist.

How do you direct the team without managers? Rather than “directing” the teams, the focus shifts to “influencing” and “assessing the effectiveness” of teams on a continuing basis. This dovetails nicely practices like continuous deployment.

Finally, we wrap up by emphasizing situations where managers do provide value, and should still exist. This will lead to hybrid organizations, some parts of which will have managers, while others will not.

Thursday, 15 June 2017

One Journey, Many Paths: A Pragmatic Guide for Migrating to Microservices - Z. Dehghani




Do you want to migrate your existing systems to a microservices ecosystem? If so, this talk is for you.

Whether your organization is a large enterprise with legacy systems; or whether your organization is a growing startup with a proven business model based on a monolith; or somewhere in between, you are here because you have decided that migrating towards a microservices ecosystem will liberate you from the constraints of your existing architecture.

The experience shows that navigating this journey is challenging. Each organization has its distinct culture, constraints and state of architecture that demands its own unique path of migration.

In this talk I offer you an essential set of pragmatic guides. I have distilled these guides from the lessons I’ve learned making the journey to microservices in different domains. The experience is drawn from domains such as finance, telecommunication, supply chain and retail.

I will leave you with a collection of:
  • patterns and anti-patterns for migrating and decomposing large monoliths that are in-use and alive,
  • trade-offs you need to repeatedly evaluate to prioritise your next steps,
  • founding principles that support the hard decisions you need to make, and
  • a sample roadmap for an organizational-wide migration.

This synthesis will help you build and execute a migration strategy unique to your needs.

Wednesday, 14 June 2017

SignalR .NET Core: Realtime cross-platform open web communication - Damian Edwards, David Fowler



SignalR is being reimagined for ASP.NET Core. In this session, we explore how we’re bringing the real-time web goodness you know and love to ASP.NET Core, while laying the foundations for bigger and bolder capabilities beyond HTTP.

Monday, 12 June 2017

Udi Dahan - If (domain logic) then CQRS, or Saga?



If (domain logic) then CQRS, or Saga?



The “if” statement – the guard clause that makes sure that what shouldn’t happen, can’t happen. We see it all over our code base, especially in our domain logic. The thing is, when we use properties of domain objects in those if-statements, we don’t even realize that other agents may have just changed that data – or will change it just a second later. In essence, hiding behind those little “ifs”, are all kinds of race conditions and collaborative domains – the places where CQRS approaches are necessary. Join Udi for a different perspective on domain logic, CQRS, and long-running processes. It will be quite a saga.



Udi Dahan is one of the world’s foremost experts on Service-Oriented Architecture and Domain-Driven Design and also the creator of NServiceBus, the most popular service bus for .NET.