Andy Marks


Office Principal at ThoughtWorks

Andy Marks is the Office Principal for ThoughtWorks Melbourne and Perth. Originally an itinerant teacher of programming at university, Andy has been writing code professionally since 1996 in Melbourne, Brisbane, San Francisco, Leeds and Singapore. Joining ThoughtWorks as a technical lead in 2002, Andy has deep experience in agile development and has, since 2013, become one of those dreary functional programming evangelists you dread speaking to at parties.

Andy is a frequent speaker at conferences in Australia as well as user groups in Melbourne, even though he does not understand monads… not even a little bit.

YOW! Lambda Jam 2015 Brisbane

Functional DevOps: Event Processing in Clojure


Riemann ( is an event stream processor, usually deployed as a router for events generated by software systems. As Kyle Kingsbury, the author states: “Riemann’s job is to process, analyze and react to the event stream”. In effect, event stream processing is functional transformation writ large; events from various sources (e.g., hardware stats, application metrics, network data etc) are received then grouped, filtered, mapped, averaged, coalesced, forwarded, etc.

Riemann is written in Clojure. Riemann is also configured via Clojure. It’s “parentheses all the way down”.

But does a tool for functional transformation of data require a functional language? To what extent does the implementation language impact the capabilities Riemann exposes to the end user?

This presentation will take a deep dive into both the capabilities of the configuration system and the core Clojure implementation to see why a functional language is such a good choice to implement this type of application.