Reactive Programming is a new programming paradigm providing an higher level abstraction to build event-driven, scalable, resilient and responsive applications. Its main idea is extending the observer pattern to support sequences of data/events and adds operators allowing to compose those sequences together in a declarative and functional style. In this talk we'll go over reactive programming principles and then dive into implementation level details showing in a live coding session how to develop a reactive application using RxJava, a library for composing behaviors applied to event streams.