# GOTO is a vendor independent international software development conference with more that 90 top speaker and 1300 attendees. The conference cover topics such as .Net, Java, Open Source, Agile, Architecture and Design, Web, Cloud, New Languages and Processes

# Erik Meijer, TweetUniversity of Delft

## Biography: Erik Meijer

Erik Meijer is a Dutch computer scientist and entrepreneur. From 2000 to early 2013 he was a software architect for Microsoft where he headed the Cloud Programmability Team. Before that, he was an associate professor at Utrecht University. He received his Ph.D from Nijmegen University in 1992.

Meijer's research has included the areas of functional programming (particularly Haskell) compiler implementation, parsing, programming language design, XML, and foreign function interfaces.

His work at Microsoft included C#, Visual Basic, LINQ, Volta, and the Reactive programming framework (Reactive Extensions) for .NET. He has been involved in over 300 software patent applications of which 101 have been granted.

In 2009, he was the recipient of the Microsoft Outstanding Technical Leadership Award and in 2007 the Outstanding Technical Achievement Award as a member of the C# team.

Meijer lived in the Netherlands Antilles until the age 14 when his father retired from his current job and the family moved back to the Netherlands.

In 2011 Erik Meijer was appointed part-time professor of Cloud Programming within the Software Engineering Research Group at Delft University of Technology. He is also member of the ACM Queue Editorial Board.

Twitter: @headinthebox

## Presentation: TweetMachine Learning == Automated TDD

There is a lot of hype and mystique around Machine Learning these days. The combination of the words "machine" and "learning" induces hallucinations of intelligent machines that magically learn by soaking up Big Data and then both solving world hunger and making us rich while we lay on the beach sipping a cold one.

Worse yet, the esoteric and mathematical terminology of many Machine Learning textbooks and research papers fuels the mystique, resulting in the persona of the Data Scientist as the 21st century druid that mystically distills insight and knowledge from raw data.

However, just as normal programmers can write code without needing to understand Universal Turing Machines, power domains, or predicate transformers, we believe that normal programmers can use Machine Learning without needing to understand vectors, features, probability density, Jacobians, etc. In fact, the very essence of Machine Learning is creating code from a finite set of sample input/output pairs. This is something that programmers are already deeply familiar with; and in this talk, we will explain how Machine Learning is Test Driven Development performed by code (TDD).

## Presentation: TweetKEYNOTE: A Monadic Model for Big Data

Since its inception in 1970, Codd's relational model has fueled a multi-billion dollar industry that after 40 years still experiences double digit growth. Because the relational database and SQL are based on strong mathematical foundations of sets and relations, complementary producers such as educators, tool vendors, consultants, etc., can all target the same underlying conceptual model, creating a strong ecosystem of users and domain experts.

If we look at the relational model through our developer eyes, we notice that the relational algebra is one particular implementation of a more general interface, an interface that mathematicians call monads. By generalizing from relations to arbitrary monads, we are able to query many different kinds of data using a single query language, in particular we can formulate queries over data of any size, finite or infinite. Similarly, when we use another programmer’s trick to swap around fk/pk relationships between flat rows into pointers between nested structures, we can query both relational and pointer-based data, which includes documents, graphs, using a single monadic algebra of query operators. Lastly, by leveraging the mathematical trick of duality, we can implement our monadic interface over both push- as well as pull-based data.

By generalizing from sets and relations to monads we have created a three-dimensional design space for data spanned by the dimensions of Volume, Variety, and Velocity, together with a set of monadic standard query operators. Looking at data in the context of this “cube” we can categorize many data sources according to these three elementary dimensions. For example, a mouse is a database whose (a) volume is infinite, (b) whose variety is flat, and (c) whose velocity is push, or the typical document database is (a) finite, (b) nested, and (c) pull-based, etc. In other words, monads provide a mathematical and practical basis for what the industry nowadays calls “big data”.

In this talk we will explain how any programmer could have invented this unified model of big data herself, and perhaps even more importantly, how any modern programming language allows you to use these principles to simplify your day to day data programmability problems.

## Presentation: TweetLightning Talks: Hard Things Made Easy part 2

**Folds made easy / 11:30 - 11:40**

by **Erik Meijer**

**Let types do the work / 11:40 - 11:50**

by **Erik Meijer**

**Lexical Closure - it is actually pretty simple! / 11:55 - 12:05**

**Really truly Bayesian Inferencing without Tears / 12:10 - 12:20**

by **Ted Dunning**

** Speaking times are subject to change*