Rotterdam, 29 May 2015

A one-day conference celebrating the art, craft, science and joy of software development

Learn new stuff

Great value

By devs, for devs

Rotterdam, 29 May 2015

Welcome to Joy of Coding! A one-day conference celebrating the art, craft, science and joy of software development.

The next edition will be held 29 May 2015 at the Van Nelle ontwerpfabriek in Rotterdam. Reasons why you should attend:

Learn new stuff

We're not happy unless you go home after Joy of Coding feeling inspired and full of new ideas. That's why we're cramming the conference full of renowned speakers, passionate developers like yourself, and (un)sessions that we hope you'll love.

Great value

We know you can't go to every conference every year, but we really want you to come to ours, so we're working to keep the entry price completely reasonable by teaming up with sponsors. Our goal: be the best value for money conference in 2015. Our very-early bird tickets start selling at the meager price of only EUR 128,-!

By devs, for devs

Like you, we're a bunch of developers who like going to interesting conferences and meetups. So there will be no commercial agenda or ulterior motive to Joy of Coding. It's just a place where we can all get together and talk about code.

Buy your ticket!


Room 2

Room 3

Room 4



  1. Opening keynote - Programming as distributed cognition: defining a super power

    Chris Granger

    9:30 - 10:20

    With the constant barrage of frameworks, languages, and methodologies, it's easy to forget that programming isn't an end unto itself, but instead merely a means to get somewhere else. With the help of a computer, we can think and create things we never would have been able to before. Programming isn't simply a skill, it's a fundamental upgrade to our capabilities as humans - a way to distribute and externalize computation that would otherwise have to take place in our heads. So what would it be like if *everyone* could use computers as the thinking tools we originally meant for them to be?
    Let's try to find out.

    About Chris Granger

    I grew up as part of the nintendo generation, having learned the parts of a computer at the age of two and later learning numbers and colors from a Sesame Street game on the NES. I started programming at the age of ten and took my first paid development gig at 17. Since then I’ve built websites large and small, written frameworks and libraries used by thousands, taught developers around the world, and helped envision the future of development at Microsoft. These days, I’m the co-founder and CEO of Kodowa, where we built the next generation code editor Light Table and now Eve, a new vision for putting computation in the hands of everyone.

  1. Joy of Testing

    John Hughes

    10:30 - 11:00

    Even the best test suites can't entirely prevent nasty surprises: race conditions, unexpected interactions, faults in distributed protocols and so on, still slip past them into production. Yet writing even more tests of the same kind quickly runs into diminishing returns. I'll talk about new automated techniques that can dramatically improve your testing, letting you focus on what your code should do, rather than which cases should be tested--with plenty of war stories from the likes of Ericsson, Volvo Cars, and Basho Technologies, to show how these new techniques really enable us to nail the hard stuff. And best of all—it’s fun!

    About John Hughes

    John Hughes has been a functional programming enthusiast for more than thirty years, at the Universities of Oxford, Glasgow, and since 1992 Chalmers University in Gothenburg, Sweden. He served on the Haskell design committee, co-chairing the committee for Haskell 98, and is the author of more than 75 papers, including "Why Functional Programming Matters", one of the classics of the area. With Koen Claessen, he created QuickCheck, the most popular testing tool among Haskell programmers, and in 2006 he founded Quviq to commercialise the technology using Erlang. Along the way he’s learned to take great joy in buggy code.

  2. The Joy of Debugging Ourselves

    Laurent Bossavit

    11:10 - 11:40

    Here's a guilty secret of programming: a little debugging is a lot of fun. Granted, too much debugging can be the opposite of fun. Therein lies a mystery: why can't we ever seem to write *just the right amount* of bugs? The discipline tasked with answering these questions, known as Software Engineering has for the past four decades (and a bit) managed to ignore some fundamental facts about programming, such as why a little debugging can be a lot of fun, and more interestingly where bugs come from in the first place. Laurent's talk reveals some dismal truths about this sad state of affairs, but also offers more uplifting suggestions on how we can bring tons of fun back into programming, by developing new skills such as leprechaun hunting and brain debugging.

    About Laurent Bossavit

    Free electron, Extreme Programming and Agile enthusiast, a passion for learning and Things That Work

  3. Just enough crypto for the web

    Angelo van der Sijpt

    11:50 - 12:20

    Cryptography is a staple of the modern web, and most developers don’t make it past “it uses HTTPS, so it must be secure, right?”. In 30 minutes, I will show you what you need to understand to make your web application secure, and explain everything you need to know about the file types used in public key infrastructure.

    Note: this talk is certified math-free.

    About Angelo van der Sijpt

    Angelo is a Fellow and Software Architect at Luminis, where he focuses on connected devices, security, and is a firm believer in the power of service design and simplicity in software. The main thing that binds his projects is that all have a "twist", be it in hardware, scale, or security requirements. Angelo is an Apache committer on the Apache ACE project, and has spoken at conferences such as Apachecon and Oredev. He is a frequent flyer at hands-on sessions such as those of Devnology and Agile Holland.

  4. Lunch break

  5. Exercises in Programming Style

    Crista Lopes

    13:30 - 14:20

    Back in the 1940s, a French writer called Raymond Queneau wrote an interesting book with the title Exercises in Style featuring 99 renditions of the exact same short story, each written in a different style. In my book "Exercises in Programming Style" I shamelessly do the same for a simple program. From monolithic to object-oriented to continuations to relational to publish/subscribe to monadic to aspect-oriented to map-reduce, and much more, you will get a tour through the richness of human computational thought by means of implementing one simple program in many different ways. This is more than an academic exercise; large-scale systems design feeds on these ways of thinking. I will talk about the dangers of getting trapped in just one or two prescribed styles during your career, and the need to truly understand this wide variety of concepts when architecting software.

    About Christa Lopes

    Crista Lopes is a Professor of Informatics in the School of Information and Computer Sciences at the University of California, Irvine. Her research focuses on software engineering for large-scale data and systems. Early in her career, she was a founding member of the team at Xerox PARC that developed Aspect-Oriented Programming. Along with her research program, she is also a prolific software developer. Her open source contributions include being one of the core developers of OpenSimulator, a virtual world server. She is also a founder of Encitra, a company specializing in online virtual reality for early-stage sustainable urban redevelopment projects. She has a PhD from Northeastern University, and MS and BS degrees from Instituto Superior Tecnico in Portugal. She is the recipient of several National Science Foundation grants, including a prestigious CAREER Award. She claims to be the only person in the world who is both an ACM Distinguished Scientist and Ohloh Kudos Rank 9.

  6. You can be a kernel hacker!

    Julia Evans

    14:30 - 15:00

    Writing operating systems sounds like it's only for wizards, but it turns out that operating systems are written by humans like you and me. I'm going to tell you what a kernel is and why you should care. Then we'll talk about a few concrete ways to get started with kernel hacking, ranging from the super-easy to the terrifyingly difficult.

    About Julia Evans

    Engineer at Stripe's machine learning team. Organizer of !!Con, Alumnus of Hacker School.

  7. Hello, declarative world

    Tom Stuart

    15:10 - 15:40

    We know that a computer is an imperative machine: a CPU reads one instruction after another, and performs one operation after another, with each operation modifying the state of its registers and memory. But although it’s completely natural to think of computer programs as imperative recipes, there are other interesting ways to specify a computation. One such alternative is declarative programming, where we tell the computer what we want to achieve instead of exactly how to achieve it. This idea has been around for a long time but has recently begun to reappear everywhere. In this talk we’ll look at some modern examples of declarative programming and explore how it can help us with the applications we build today.

    About Tom Stuart

    Tom is a computer scientist and programmer. He has lectured on optimising compilers at the University of Cambridge, co-organises the Ruby Manor conference, and is a member of the London Ruby User Group. His latest book, Understanding Computation, was published by O'Reilly in 2013.

  8. Modelling complex game economy with Neo4j

    Yan Cui

    15:50 - 16:20

    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.

    About Yan Cui

    Yan works as a server side developer at Gamesys where he develops scalable backend services for Gamesys's social games on mobile and Facebook. He's a co-author of the upcoming book F# Deep Dives for Manning Publishing. He's a regular speaker on topics such as Aspect-Oriented Programming, F# and NoSQL, and he keeps an active blog at

  9. Closing keynote - Cool Code

    Kevlin Henny

    16:30 - 17:20

    In most disciplines built on skill and knowledge, from art to architecture, from creative writing to structural engineering, there is a strong emphasis on studying existing work. Exemplary pieces from past and present are examined and discussed in order to provoke thinking and learn techniques for the present and the future. Although programming is a discipline with a very large canon of existing work to draw from, the only code most programmers read is the code they maintain. They rarely look outside the code directly affecting their work. This talk examines some examples of code that are interesting because of historical significance, profound concepts, impressive technique, exemplary style or just sheer geekiness.

    About Kevlin Henny

    Kevlin Henney is an independent consultant, trainer and writer based in the UK. His development interests are in patterns, programming, practice and process. He has been a columnist for many magazines and web sites and is co-author of A Pattern Language for Distributed Computing and On Patterns and Pattern Languages, two volumes in the Pattern-Oriented Software Architecture series. He is also editor of 97 Things Every Programmer Should Know.

Room 2

  1. BreakIn: Making a Breakout clone in F#

    Andrea Magnorsky

    10:30 - 12:20

    In this workshop, we will start of with the skeleton of a Breakout clone in F# and turn it into a more functional version of Breakout. By the end of the workshop you will write a cool power up, so brush up on your game skills for extra bonus points!!

    You will need a windows machine (a VM on OSx has worked for many people) with F# installed . A mouse will come handy too because we have an editor where clicking things is necessary.

    This is an ideal way to try some F# and/or game development.

    About Andrea Magnorsky

    I am a developer that makes games, at the moment Onikira:Demon Killer. I like to learn how to do things in different ways, in the hope that one day I will have to do nothing and just do things because I can.

    Conferences and meetups are a great way to learn more, so I try to help when I can to make them happen.

    I worked on enterprise (not the one with Piccard sadly) for too many years and then we created the company where we now make games, the future unknown.

  2. Lunch break

  3. The story of one who ever finally shipped something

    Ole Michaelis

    14:30 - 15:00

    Everyone knows that, you have that one idea, it might be the next facebook or just the thing somehow nobody build yet but you are dying for it. So what does a programmer do? Right, going to build it. We are makers, builders we have the powers to create our own tooling and make our dreams come true! But somehow only a very few of these ideas actually will ever see a production environment. Contrary to popular belief, some ship! And this is the story how I shipped my pet project!

    About Ole Michaelis

    Ole Michaelis is the co-founder of SoCoded, a hackfest and web development conference in Hamburg. He’s a Software Engineer at Jimdo, a DIY website creator, where he focuses on backend development. In his free time, he’s building, a hazzle-free slide sharing platform. Ole is passionate about open source software, enjoys traveling, and loves Mexican food. He classifies himself as a 'bad' German as he dislikes beer and soccer – the traditional German past-times.

  4. Functional Programming for Beginners

    Nicole Rauch

    15:10 - 15:40

    Functional programming is currently booming. This is partly driven by the growing number of hybrid languages like Scala or F#. But even if you are not directly interested in one of these languages, you can benefit from looking into functional programming: It widens the horizon and can provide new stimuli for developers working in an object-oriented or procedural environment.

    In this talk, I will demonstrate the basic aspects of functional programming languages, showing examples in Haskell and JavaScript, and I will point out what is so special about functional programming.

    About Nicole Rauch

    Nicole Rauch is an independent software developer and development coach with a solid background in compiler construction and formal methods. Over the last three years, she worked on the restructuring of large legacy code applications with different technologies. She is also involved in the development of a web platform in node.js. Nonetheless, her secret love is for functional programming. Alongside her occupation as developer, she took part in conducting a number of self-organized conferences related to software craftsmanship and agile coaching. She is also one of the initiators of Softwerkskammer, the german-speaking Software Craftsmanship community.

  5. Building Applications With AWS Lambda

    J Randall Hunt

    15:50 - 16:20

    AWS Lambda is a really exciting new way to abstract away complex infrastructure and focus solely on building your application. Imagine being able to take a javascript, python, or Java method and have it just run. No servers, no queues, no ops. That's what the vision of AWS Lambda is and I want everyone to try it out. In this demo I'll share my love of space and show you how to write simple AWS Lambda functions for changing your twitter background to the astronomy picture of the day. Finally I'll stick around to answer any questions you have about AWS and Lambda.

    About J Randall Hunt

    J. Randall Hunt Developer Advocate and Software Engineer at Amazon Web Services in New York City. Python is his favorite language but he can sometimes be found in the dark realm of C++. Randall loves databases and enjoys talking about them from the developer perspective. Author of gitshots, a ridiculous and amusing platform for sharing git commits. Contributor to MongoDB and lots of other open source tools and libraries. Formerly of MongoDB, hackNY, and NASA. A total space nerd.

Room 3

  1. Coding Dojo

    Emily Bache

    10:30 - 12:20

    In this hands-on session we will be working on a rather smelly piece of code which helpfully has a fairly comprehensive suite of automated tests. Refactoring is one of the key skills of Test-Driven Development, and this is your chance to really practice it. The idea is not to rewrite the code from scratch, but rather, by taking small refactoring steps, gradually transform the code into a paragon of readability and elegance.

    We’ll be stepping into the Coding Dojo together, which is a safe place designed for learning, where it doesn’t matter if we make mistakes. In fact all the code will be thrown away afterwards. You should feel free to experiment, try out different refactoring approaches, and get feedback from your peers. The great thing about this Kata is that since the tests are very good and very quick to run, they will catch every little refactoring mistake you make. You should experience how programming is supposed to be – smooth, calm, and always minutes away from committable code. The last part of the session is the retrospective, when we discuss what we’ve learnt, and how we can apply our new skills in our daily production code.

    The code kata we’ll be looking at is “Tennis”, and the starting code is available here: (Java, Python, C++ etc). If you want to practice using your familiar development tools, please download the code and set up a project in advance of the session. Otherwise you can just come and use the cyber-dojo practice environment, which runs in a browser.

    About Emily Bache

    Emily Bache is an independent consultant specializing in automated testing and agile methods. With over 15 years of experience working as a software developer in organizations as diverse as multinational corporation to small startup, she has learnt that to be truly agile, teams need to learn use agile engineering practices. Emily is the author of "The Coding Dojo Handbook: a practical guide to creating a space where good programmers can become great programmers" and loves to coach and teach developers about Clean Code, Test Driven Development, Refactoring, and more. Emily speaks regularly at international events such as Agile Testing Days, XP2014, ACCU, and recently gave a keynote address at Europython in Berlin.

  2. Lunch break

  3. Property Based Testing Hands-on

    Marc Evers, Rob Westgeest & Willem van den Ende

    14:30 - 16:20

    Most unit/integration testing as we know it is example-based: we describe examples of how the code under test behaves in our favourite testing framework.

    Property based testing is a new and promising approach to automated unit testing. It is very different from example-based approaches: in property based testing, you don't write examples but you describe properties of the code under test (statements about the outputs based on the inputs). Based on this, a property-based test framework generates many different inputs and checks if the code under test satisfies everything.

    It started in QuickCheck in the functional programming language Haskell and currently frameworks are available for many languages, from Java/Scala to C++.

    Property based testing forces you to think carefully about specifications: what are the preconditions, postconditions, invariants? It looks like a useful new tool for the crafts(wo)man's tool chest. This session will give you a good impression of how it works and what possible applications could be.

    About Marc, Rob & Willem

    Marc: works as an independent coach, trainer and consultant in the field of (agile) software development and software processes. Marc develops true learning organizations that focus on continuous reflection and improvement: apply, inspect, adapt. Marc also organizes workshops and conferences on agile and lean software development, extreme programming, systems thinking, theory of constraints, and effective communication. He is co-founder of the Agile Open and XP Days Benelux conferences.

    Rob: after years of experience with Object Oriented Software Development with UML, several development processes and project approaches as developer, architect, trainer and project leader, Rob worked on his first XP project in 2000. And with great success! He supports projects and people in the application of agile practices, principles and values since then. Rob develops himself and others continuously by visiting, organising and hosting workshops at conferences and user group meetings like SPA, XP Days, XP-NL and Agile Open.

    Willem: is a Dutch eXtreme Programming pioneer. As a coach, developer and coach he guides organisations in introducing agile software development since 1999.

Room 4

  1. Intro to Musical Programming with ChucK

    Bonnie Eisenman

    10:30 - 12:20

    Learn to programmatically generate music with the ChucK programming language! ChucK is an easy-to-learn, versatile way to program music, intended for use by musicians with no programming knowledge and experienced programmers alike. It is particularly useful if you wish to create your own musical projects or installations. In this workshop, I'll walk through the basics of ChucK, and participants will learn to program their own musical pieces.

    About Bonnie Eisenman

    Bonnie Eisenman is a software engineer at Codecademy. She recently graduated from Princeton with an engineering degree in Computer Science. Besides her work at Codecademy, she also works on side projects involving Arduinos and electronic music.

  2. Lunch break

  3. Coda Lisa

    Rico Huijbers

    14:30 - 16:20

    "In this laid-back workshop, we're going to make art! Or more precisely, we're going to make computer programs that are going to make art for us.

    Intricate patterns are going to emerge on our shared virtual canvas, as the rules of our little automatons combine to form some emergent behavior that nobody expected. We'll even incorporate stimuli from the real world to make our installation interactive. So grab a beer and a laptop, sling some JavaScript, and be part of this creative event that is bound to win several awards!(*)"

    About Rico Huijbers

    Rico Huijbers is a software development Jack-of-all-trades, who hates web development yet for some reason can't stop talking about it.

  1. Closing keynote - Cool Code

    Kevlin Henney

    16:30 - 17:20

    In most disciplines built on skill and knowledge, from art to architecture, from creative writing to structural engineering, there is a strong emphasis on studying existing work. Exemplary pieces from past and present are examined and discussed in order to provoke thinking and learn techniques for the present and the future. Although programming is a discipline with a very large canon of existing work to draw from, the only code most programmers read is the code they maintain. They rarely look outside the code directly affecting their work. This talk examines some examples of code that are interesting because of historical significance, profound concepts, impressive technique, exemplary style or just sheer geekiness.

    About Kevlin Henney

    Kevlin Henney is an independent consultant, trainer and writer based in the UK. His development interests are in patterns, programming, practice and process. He has been a columnist for many magazines and web sites and is co-author of A Pattern Language for Distributed Computing and On Patterns and Pattern Languages, two volumes in the Pattern-Oriented Software Architecture series. He is also editor of 97 Things Every Programmer Should Know.


Van Nelle Ontwerpfabriek

This years edition will be held at the former Van Nelle factory, a world heritage site since 2014. In the 20th century it was a factory, processing coffee, tea and tobacco and later on additional chewing gum, cigarettes, instant pudding and rice. The operation stopped in 1996. Currently it houses a wide variety of new media and design companies and is known as the Van Nelle Design Factory ("Van Nelle Ontwerpfabriek" in Dutch).

The Van Nelle Factory

How to get there

car: use your car navigation to get to Van Nelleweg 1, Rotterdam. Parking space is available at the venue.

public transport: travel to Rotterdam central station, take bus 38 towards Schiedam central station and get off at Beukelsbrug. From there it is only a 5 minute walk towards the venue.

If you stay at the Van der Valk hotel you can easily walk towards the venue

The Van Nelle Factory

Code of conduct

All attendees, speakers, hosts, sponsors and volunteers (further referred to as participants) involved in our events are subject to the following code of conduct. We will enforce this code throughout our events and expect cooperation from all participants to help ensure a safe environment for all.

No harassment

We are dedicated to providing harassment-free events for everyone, regardless of gender, age, sexual orientation, disability, physical appearance, body size, race, or religion (or lack thereof). We do not tolerate harassment of participants in any form.

Harassment includes offensive verbal comments related to gender, age, sexual orientation, disability, physical appearance, body size, race or religion, sexual images in public spaces, deliberate intimidation, stalking, following, harassing photography or recording, sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual attention.

Participants asked to stop any harassing behaviour are expected to comply immediately.

We will help

If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact one of the organisers immediately. We will make sure that during our conferences the organisers can be easily identified, for example through recognisable t-shirts.

If you are travelling to or from our event, and during the event, we will be happy to help you contact hotel/venue security or local law enforcement, provide escorts, or otherwise assist those experiencing harassment to feel safe for the duration of our event. We value your attendance and will take serious any breach of this code of conduct.

No offensive content

It is not appropriate to link any offensive content, such as sexual language and imagery, to our events in any form, including talks, workshops, parties, Twitter and other online media. Speakers are asked to review their material and be considerate and friendly to a diverse audience.

No alcohol abuse

Thanks to the help of our sponsors, food and drinks are often freely available during or after our events. We hope this will be appreciated and used in good spirits, but we ask you to drink responsibly.


We expect participants to follow these rules at all of our events and related social events. Participants who violate these rules may be expelled from the event without a refund at the discretion of the organisers.

Credit: parts of this code of conduct were taken from

Together with



Media partners

Previous editions


Feeling nostalgic? We still have the Website available for you. The slides, photos and videos can be found at the linked sites.


The website is still available in its final form. You can look at the photos and videos at the linked sites.