Appearance in Microsoft Connect Keynote

During Xamarin Evolve 2014 I was asked to talk about Mobile Development and how it was influencing my life. During the talk many questions were asked and answered. Questions such as; how long have you been doing (mobile) development, what has changed since you have started and what do you think of those changes.

A small part of the conversation has taken and places into the Microsoft Keynote for the Connect Event last November in New York.

Watch the keynote here:

Gartner Hype Cycle for Application development and the Netflix adaptation

Everybody has probably heard of Gartner (Gartner is an information technology research and advisory company providing technology related insight ). 

In 2013 they released their ‘Hype Cycle for Application Development‘ (Url:


Below I have included a subset of the original 2013 hype cycle. As you can see a lot of these techniques that are (well) known to us as a company.

  • On the Rise

    • Kanban Development

    • Java Enterprise Edition Version 7

    • Reactive Programming

    • DevOps

    • Enterprise-Class Agile Development

    • Cloud-Enabled Application Platform (CEAP)

    • Cloud-Optimized Application Design

    • Mobile Containers

  • At the Peak

    • Public Web APIs

    • Responsive Design

    • Hybrid Mobile Development

    • Interactive Application Security Testing

  • Sliding Into the Trough

    • Apps

    • Enterprise Application Stores

    • Functional Programming Languages

    • Model Driven Architectures

    • Distributed Versioning

  • Climbing the Slope

    • Continuous Integration

    • Native Mobile Development

However for now I just want to focus our attention to a technique which hasn’t been used that much in our project; ‘Reactive Programming’.


According to “The Reactive Manifesto,” reactive applications do four key things:

  • “React to events: the event-driven nature enables the following qualities.”

  • “React to load: focus on scalability rather than single-user performance. “

  • “React to failure: build resilient systems with the ability to recover at all levels. “

  • “React to users: combine the above traits for an interactive user experience. “


Reactive Programming isn’t something that is ‘new’ in the world of programming languages. Functional Programming languages have known the concept for a while longer. 
One of the first occurrences of RP, known by me, is the paper on ‘Functional Reactive Animation’  by Conal Elliott and Paul Hudak which appear in the ICFP of 1997.


Since then many libraries have emerged to implement or follow the ideas described in the paper above. An example of some libraries written in Haskell are:


However, we are drifting away from the idea behind my original post; how NetFlix implemented Reactive Programming in their organisation.


In 2012 they decided to change their API to improve the performance. 
But to actually create the performance they had to also change their back-end architecture to match the new API. But why do they wanted to redesign their API?

At Netflix scale (that is at peaks 1/3 of internet traffic in USA), even REST style of communication is not efficient and good enough. 
So what are the problem(s) they wanted to solve and how did they solve it.


  1. REST needs to send multiple requests (and wait for responses) that is very dependent on specifics of more than 800 types of supported devices.

    1. The solution are custom, more high-level messages, that are implemented for and by client team and running on servers to prepare complete data and return in one optimized message.

  2. Make server-side processing efficient, without creating too much additional load on servers.

    1. Make use of “Reactive Functional Programming”, that is first introduced by Microsoft Research’s Eric Meyer as RX Framework and added to .NET and other tools.



I have collected a few articles on the changes they have made and the end result.