Want to get to grips with one of the fastest growing Functional languages around? How about joining 150+ Clojure developers and some of the world's leading experts on Clojure, Simplicity and Functional Programming?

Then come and be part of the forth annual Clojure eXchange taking place on December 4th-5th. Immerse yourself in two days of talks, discussions and networking with Europe's Clojure community to learn and share skills, exchange ideas and meet like minded people.

Keynoting this year is Kyle Kingsbury (@aphyr) who will be speaking on concurrent folds. Other topics include Clojure in Cloud, Clojure in Government, Lenses, and what Art and Dance have to do with it.

Thanks to our sponsors

Day 1: Clojure eXchange

Pick your sessions!

Reactive GUI Implemented in Clojure
Denys Lebedev

I’m working on my personal project (I call it FlatGUI) which is a GUI toolkit for any software that runs on JVM. It may be considered as an alternative to Swing. I work for a company developing powerful multi-asset broker-neutral trading system and I already have 9 years of experience working with Swing GUI there.

I know a lot about complexity and typical issues that frontend developers have to deal with. A year ago I decided to start implementing my own vision of good GUI toolkit where key advantages are: reactive programming paradigm, testability, simplicity. I found Clojure the most suitable language for implementing this toolkit.

About the speaker...

I received master's degree from the Computer Science department of Dnipropetrovsk University of Railway Transport in 2008.

In 2005, while being a student, I started working for InfoReach, Inc. part-time at a junior software developer position in Ukraine office.

I started full-time work schedule as soon as I graduated, and I still work for InfoReach. Currently, my position is team leader in Ukraine office. Almost all my work is related to our reach GUI client, so after gathering plenty of use cases and insights, in 2013, I started my personal project: reactive GUI toolkit which I implement in Clojure. I live in the city of Dnipropetrovsk, Ukraine. I'm married and happy with my marriage.

Pathogens & Parentheses: How we use Clojure in the molecular surveillance of infectious disease
Russell Dunphy

Watch now!

I work for an organisation called BUGS Bioscience: a not-for-profit collaborative enterprise combining the latest developments in molecular biology and genomics with advanced mathematics and software. We provide integrated molecular surveillance services to help tackle global health challenges such as vaccine preventable diseases and antibiotic resistance.

We use Clojure, Clojurescript and Reagent as a large part of our stack (as well as everything else you need to do well at the game of buzzword bingo… Docker, AWS, etc. etc.). We believe Clojure is the perfect language for bioinformatics thanks to its great concurrency story and powerful sequence abstractions, and so I’d like to present a short talk on how we use the language, what our future plans are, and maybe even start a discussion on the benefits Clojure could bring to the field of bioinformatics and genomics projects as a whole.

About the speaker...

Russell is HealthUnlocked's Head of Engineering. After language-hopping quite a bit in his early career, he found Clojure a little over four years ago and since then he is happy to report that the grass has stopped looking greener on the other side. (Except, idk, Erlang/Elixir is pretty cool. And Elm is interesting...)

When not programming Russell likes to do the odd cat or dog painting, or make songs about the small dogs you can see in the park near his office.

Resource management in clojure
Rob Ashton

Watch now!

I wrote a database in Clojure, it's not a very good database but I had a lot of fun doing it. One of the common questions I found myself asking the Clojure community was ""how on earth do you deal with resources in a non-pure and lazy functional programming language?""

The database had file handles, pointers to native code and various network sockets and loading all of the data into memory wasn't an option. What was tried and discarded and what patterns did I end up with? This will be a very quick whirlwind tour with a potentially controversial set of conclusions.

About the speaker...

Rob Ashton is a freelance developer providing project-based development efforts to clients all over the world. He has been a core committer to the RavenDB project since the early days of pre-release, contributing features such as the dynamic indexes

We're just about finding enough time to extract common patterns and tools into isolated libraries, enough to create a talk about the practice of building time-based performance systems for screen-based art.

He is currently working on choreographic visualisation tools for Wayne McGregor|Random Dance at Sadler's Wells, interactive sound and sensing systems for Eddie Ladd's ongoing tour of Ras goffa Bobby Sands (The Bobby Sands Memorial Race), music composition for Shobana Jeyasingh Dance Company, and large-scale outdoor algorithmic video animation for Simeon Nelson in Poland, Estonia and the UK. Nick has just returned from an algorithmic video project at the UNESCO heritage site at Boudhanath in Kathmandu, possibly marking the first use of Clojure in the whole of Nepal.

Pragmatic Clojure Performance Testing
Korny Sietsma

Watch now!

Knuth said it first: ""97% of the time, premature optimisation is the root of all evil"". And it's become a mantra: ""You aren't going to need it - Don't worry about speed - wait until we performance test and then tweak the slow parts"".
But it's not always that simple. Will you actually get around to those tests? Will you be able to understand the results? And by the time you understand them, will it be too late or too expensive to fix?

In this talk I will discuss my experiences diagnosing and fixing performance problems in real-world clojure applications, and some practical approaches to making this less painful.

About the speaker...

Korny works for ThoughtWorks as a developer, consultant and compensating optimist. He has been developing mostly in Clojure for the past 2 years, and in a range of lesser languages for a long time before that.

Dragonmark: distributed core.async
David Pollak

Watch now!

Communicating Sequential Processes (CSP) provides excellent patterns for building concurrent systems. Clojure's core.async provides a Clojure implementation of CSP in a single address space.
However, very few programs run in a single address space. Web applications run in a combination of the browser and one or more servers. Very often, applications will span a cluster of servers.

Dragonmark Circulate provides a mechanism for distributing core.async channels across address spaces while providing the same semantics to all the address spaces.

David Pollak (Dragonmark and Lift founder) will discuss using Dragonmark to create a web-based chat app as well as recruiting members of the audience to participate in the open source project (aka, please help whitewash my fence).

Oh... and I'll hug Bruce and anyone else who wants a hug... but I'll do that anyway.

Herding cattle with Clojure at MixRadio
Neil Prosser

Watch now!

At MixRadio we use Clojure to power our micro-service architecture and loved it so much we used it to build our AWS deployment tooling.

We'll give you a quick overview of our architecture and introduce you to our newly open-sourced deployment tooling; explaining the problems we faced and how we solved them. Expect code and a live deployment to our production environment.

DataScript for web development
Nikita Prokopov

Watch now!

DataScript is an open-source implementation of Datalog and Datomic in-memory storage, in ClojureScript, for browser. I’m going to talk about motivation behind DataScript, how it was created, how it can be used, what kind of problems it solves and how simple and sane web app development is when you have a database in your browser.

About the speaker...

Nikita is a Clojure hacker from Siberia. He builds backends, web apps and distributed systems in Clojure for a living. He also blogs about Clojure, web and UX. He’s the author of DataScript, Rum, Tongue, Fira Code and AnyBar.

Ephemeral-first data structures
Michal Marczyk

Watch now!

Clojure programmers are used to working with highly sophisticated persistent data structures, using managed references when mutable state is unavoidable. In some applications, however, a compelling alternative presents itself in the form of concurrent data structures with lock-free (""global progress guaranteed"") updates that admit fully persistent snapshots.

A data structure of this kind suitable for implementing maps was described by Prokopec, Bronson, Bagwell and Odersky. This talk aims to introduce it to the Clojure community, to present a Clojure implementation and to describe API choices that make using it feel natural in Clojure.

About the speaker...

Longtime contributor to all parts of ClojureScript, including the compiler and the core library; most notably, author of the ClojureScript ports of the persistent map and set types and PDS-related functionality such as transients.

The Future of Clojure
Bodil Stokke

About the speaker...

Bodil is a compulsive conference speaker in the fields of functional programming and internets technologies, and is a co-organiser of multiple developer conferences in Scandinavia and the UK, mostly because she’s still learning how to stop.

She is a prolific contributor to the Free Software community, and has recently taken up designing new programming languages as a hobby. In her spare time, she works as a developer for Future Ad Labs, a London based startup that wants to make advertising a productive member of society. Her favourite pony is Pinkie Pie.

About the speaker...

Martin has been doing Clojure full time for 4 years in various projects ranging from finance, property websites and IOT startups. Currently he is head of engineering at Opensensors.io building solutions with a Clojure backend and frontend stack. He is very interested in programming languages and is always trying to learn new (and old!) ones.

Trojan Horsing Clojure with Javascript
Robert Rees

Watch now!

Love using Clojure but can't get your static typing colleagues to get with the LISP programme. Well Javascript (the Scheme in the browser) is your friend. It's already dynamic and uses maps for everything, it's like a second home!

Not only that but lots of Clojure code has already been ported (include the Clojure language itself, twice) or has inspired pure Javascript equivalents.

In the talk I'll introduce ImmutableJS, Mori, Wisp, Omniscient and maybe even Clojurescript.

About the speaker...

Robert Rees is currently a Developer Manager at the Guardian and the former CTO of Wazoku. He started his career as a tester and went on to be a C and Java developer in telecoms and dabbled in management.

My Componentised Clojure Crusade
Adrian Mowat

Watch now!

One of the great things about coming to conferences is seeing ideas you’ve heard about for real. Well, Stuart Sierra’s components and reloaded workflow have been a popular topic for a while now and I’ll use this lightning talk to bring them to life by showing you how we use them to separate concerns and streamline our development workflow.

I’ll also show how we use off the shelf components to make it easy to create a componentised website or add a database and show a few patterns I have found useful for running unit tests real fast and dealing with large volumes of data in development.

About the speaker...

Adrian is the development lead for the web team at Arnold Clark. His background is an unusual mix of Ruby on Rails and enterprise data integration using Ab Initio (ETL language). He’s been working with Clojure for the last 3 years and is passionate about building the community in Scotland.

He co-hosts the Glasgow Clojurians group with Simon Brooke, runs public "Clojure Launchpad” training courses aimed at beginners and improvers, and he recently helped as a teaching assistant at Ali King’s Clojure Bridge in Edinburgh.

Flow - learnings from writing a ClojureScript DSL
James Henderson

Watch now!

Flow is a ClojureScript library that I've been writing in my spare time over the last four months, allowing developers to write webapps in a declarative style.
The idea for Flow came out of my ClojureX talk last year, when I proposed a couple of CLJS UI design patterns that we'd evolved over time - after the talk, I spoke to a few of the attendees who suggested that a library would be very helpful!

I'll be talking a bit about Flow as a library, its usage, and give a few examples of what's possible - but the majority of the talk will be discussing the design and implementation of the DSL, as well as what I've learned about developing in ClojureScript, using macros, manipulating Clojure forms, and writing a compiler. I'll probably also talk about the progression of ideas that led to Flow's current incarnation, time permitting.

Super Charging Cyanite
Tom Coupland

Watch now!

Join me for a rapid journey through making metrics move rapidly. The medium in question for these metrics being Cyanite, an open source Clojure project that replaces Graphites default storage engine, Carbon, with a combination of Cassandra and ElasticSearch. We’ll look at the overall data flow, before looking at how it got dialled up to 11 using Clojure’s core.async, custom channels, changing database clients and modifying libraries to suit our needs. Expect code, graphs, words and, in the end, lots of metrics!

The session will walk through the performance enhancements i’ve added to the Cyanite project over the last few weeks. The initial conversation can be found on github:

About the speaker...

Tom Coupland is a developer at MixRadio Bristol. Having spent years working with transaction processing monoliths, producing one of his own in the process, he’s now enjoying the world of SOA and the freedoms it can bring. After subjective eons working with Java, he set out to find more productive and elegant tools.

Currently he can be found basking in the joy that is Clojure during the day, while keeping an eye out for other suitors in the evening. When not trying to make his bit of the world of software a better place, he can be found out in the real one, running around, preferably in the mud, wind and rain.

BirdWatch / Building a System in Clojure
Matthias Nehlsen

Watch now!

In this talk I will discuss the lessons learned while building a complex system for live Tweet Stream Analysis using multiple Clojure applications, ElasticSearch, Nginx and Redis (all inside Docker containers) on the server side plus a client connected over WebSockets using Om for the UI.

Clojure in the service of Her Majesty's Government
Philip Potter and Rachel Newstead

Watch now!

The Scenario:
You have thirteen weeks to build a prototype login system for businesses to use government services.
The code will be thrown away afterward, but it must be able to evolve rapidly in response to feedback about what a user journey should look like.
Half your team have never used Clojure or Emacs before.
How do you convince the government that building a prototype in Clojure is a good idea?
And if you manage that, how do you ensure the prototype is successful?

Clojure offers fast feedback and the ease of spinning up simple web services. It let us adapt quickly and explore complex flows of data. Our talk will be about how we got on, things we learnt, and what we'd do differently next time.

More Open-Source systems, please
Thomas Kristensen

Watch now!

This talk will describe how we build Clojure systems at uSwitch: development and deployment, metrics and monitoring. We’ve benefited greatly from the open-source work provided by the community and the way we build Clojure systems has evolved greatly since our first deployment in 2010.

Although there’s lots of source material for learning Clojure there are relatively few publicly available examples of Clojure systems in production. In this talk we will present examples of the practices we use at uSwitch when developing Clojure services, and describe the architecture of some of our sub-systems containing these vital Clojure services. We will centre our discussions around Clojure services we have open-sourced and which you can examine and use.

You will go away from the talk inspired to try out new things. Let’s share some good war stories and have some interesting discussions - maybe in future talks, maybe in the pub.

About the speaker...

Thomas Kristensen is a software developer and technical lead at
uSwitch. He believes in using the right tool and the right
methodologies for the tasks there. Luckily, quite often (but not
always) the right tool happens to be Clojure.

He holds a PhD from Aarhus University where he worked in the field of
bioinformatics. He now spends his time trying to help the British
public save money on their energy bills via the medium of Emacs and
whiteboard sketches.

Journey through the looking glass
Chris Ford

Watch now!

Lenses are a beautiful functional abstraction that subsume the getters and setters of object languages like Ruby and Java. Traversals are a related abstraction that subsume iteration.

These concepts are highly relevant to Clojure development, because they provide a way to resolve the tension between simple, coarse-grained state management, and simple, fine-grained functions that operate on parts of that state.

In this talk I will explore what form these concepts might take in an untyped (by default) language like Clojure.

About the speaker...

Chris is a certified BABE (Bachelor of Arts, Bachelor of Engineering), and consequentially an idiophile and technophobe. He began to make music with code partly to compensate for his poor technique, and partly because air piano is unsatisfying. When he works, he works for ThoughtWorks, though that isn't all the time.

I've been working on concurrent folds, where we sacrifice some order in exchange for parallelism. Tesser generalizes reducers to a two-dimensional fold: concurrent reductions over independent chunks of a sequence, and a second reduction over those values. Higher-order fold combinators allow us to build up faceted data structures which compute many properties of a dataset in a single pass. The same fold can be run efficiently on multicore systems or transparently distributed--e.g. over Hadoop.

About the speaker...

Kyle Kingsbury, a.k.a "Aphyr", is a computer safety researcher working as an independent consultant. He is the author of the Riemann monitoring system, the Clojure from the Ground Up introduction to programming, and the Jepsen series on distributed systems correctness. He grills databases in the American Midwest.

How to contact Skills Matter

Skills Matter

10 South Place, London, EC2M 7EB, GB

Skills Matter's community conferences are made possible thanks to our passionate community - who constantly feed us with their ideas - and thanks to the generous support of our amazing partners, who help us keep tickets affordable, organize great workshops and are keen to meet you at their booths, to share their projects, tools and frameworks with you.

To learn more about our partners, click on their logo!

If you would like to sponsor this conference, we'd love to hear from you!

Available Packages

64-BIT SPONSORSHIP

Engage with the Clojure eXchange community! Show off your team, projects, tools or devices at your ClojureX conference booth!

Brand Visibility Benefits

Your logo (large) on all #ClojureX web pages

Your own dedicated partner page on skillsmatter.com

Your logo (large) on all in-venue conference banners

Visibility of your brand and your support for #ClojureX in regular social media updates.

Engagement Benefits

Two items (leaflet, device, pen or notepad) included in all #ClojureX swag bags

10 free tickets to the conference which you can gift to your clients, your engineering team or members of Computing At School (teachers learning computing to teach the new National Computing Curriculum).

32-BIT SPONSORSHIP

Brand Visibility Benefits

Your logo (medium) on #ClojureX web pages

Your own dedicated partner page on skillsmatter.com

Your logo (medium) on all in-venue conference banners

Visibility of your brand and your support for #ClojureX in regular
social media updates.

Engagement Benefits

One item (leaflet, device, pen or notepad) included in all #ClojureX swag bags

5 free tickets to the conference which you can gift to your clients, your engineering team or members of Computing At School (teachers learning computing to teach the new National Computing Curriculum).

16-BIT SPONSORSHIP

Brand Visibility Benefits

Your logo (small) on #ClojureX web pages

Your own dedicated partner page on skillsmatter.com

Your logo (small) on all in-venue conference banners

CLOJUREX PARTY SPONSOR

Be remembered! Have your logo printed on all #ClojureX Party beer mats and party badges, provided to conference attendees, speakers and sponsors attending the party this year.

Brand Visibility Benefits

Exclusive to two party sponsors only!

Your logo displayed on #ClojureX Party beer mats and party badges

Your logo displayed on #ClojureX Party pop-up banners

Get your logo featured in lots of pictures taken at the #ClojureX Party!

Plus 16-bit sponsorship benefits

CLOJUREX T-SHIRT SPONSORSHIP

Be remembered! Have your logo printed on all #ClojureX t-shirts, provided to all conference attendees, speakers and sponsors attending this year.

Brand Visibility Benefits

Your logo on 125 #ClojureX t-shirts

Exclusive to one t-shirt sponsor only!

CLOJUREX SWAG BAG SPONSORSHIP

Be remembered! Have your logo printed on all #ClojureX swag bags, provided to conference attendees, speakers and sponsors attending this year.

Thanks to our sponsors

I wrote a database in Clojure, it's not a very good database but I had a lot of fun doing it. One of the common questions I found myself asking the Clojure community was ""how on earth do you deal with resources in a non-pure and lazy functional programming language?""

The Scenario: You have thirteen weeks to build a prototype login system for businesses to use government services. The code will be thrown away afterward, but it must be able to evolve rapidly in response to feedback about what a user journey should look like. Half your team have never used...

Join me for a rapid journey through making metrics move rapidly. The medium in question for these metrics being Cyanite, an open source Clojure project that replaces Graphites default storage engine, Carbon, with a combination of Cassandra and ElasticSearch. We’ll look at the overall data flow,...

One of the great things about coming to conferences is seeing ideas you’ve heard about for real. Well, Stuart Sierra’s components and reloaded workflow have been a popular topic for a while now and I’ll use this lightning talk to bring them to life by showing you how we use them to separate...

Love using Clojure but can't get your static typing colleagues to get with the LISP programme. Well Javascript (the Scheme in the browser) is your friend. It's already dynamic and uses maps for everything, it's like a second home!

Knuth said it first: ""97% of the time, premature optimisation is the root of all evil"". And it's become a mantra: ""You aren't going to need it - Don't worry about speed - wait until we performance test and then tweak the slow parts"". But...

DataScript is an open-source implementation of Datalog and Datomic in-memory storage, in ClojureScript, for browser. I’m going to talk about motivation behind DataScript, how it was created, how it can be used, what kind of problems it solves and how simple and sane web app development is when...

This talk will describe how we build Clojure systems at uSwitch: development and deployment, metrics and monitoring. We’ve benefited greatly from the open-source work provided by the community and the way we build Clojure systems has evolved greatly since our first deployment in 2010.

Clojure programmers are used to working with highly sophisticated persistent data structures, using managed references when mutable state is unavoidable. In some applications, however, a compelling alternative presents itself in the form of concurrent data structures with lock-free...

In this talk I will discuss the lessons learned while building a complex system for live Tweet Stream Analysis using multiple Clojure applications, ElasticSearch, Nginx and Redis (all inside Docker containers) on the server side plus a client connected over WebSockets using Om for the UI.

I work for an organisation called BUGS Bioscience: a not-for-profit collaborative enterprise combining the latest developments in molecular biology and genomics with advanced mathematics and software. We provide integrated molecular surveillance services to help tackle global health challenges...

Two days in London

If you're looking for the best place to learn about Clojure, Functional Programming and network with like-minded people, then the Clojure eXchange 2018 is the conference you simply can't miss! Meet with the world's leading experts, learn how to use Clojure in your team and discuss war...

Two days in London

If you're looking for the best place to learn about Clojure, Functional Programming and network with like-minded people, then the Clojure eXchange 2017 is the conference you simply can't miss! Meet with the world's leading experts, learn how to use Clojure in your team and discuss war...

One day in London

hackthetower.co.uk is a hack day for any and all developers to come and collaborate on projects or discover new technologies together and enhance their skills. Bring your laptop and your desire to try things out & have fun!

Two days in London

If you're looking for the best place to learn about Clojure, Functional Programming and network with like-minded people, then the Clojure eXchange 2016 is the conference you simply can't miss! Meet with the world's leading experts, learn how to use Clojure in your team and discuss war...

One day in London

hackthetower.co.uk is a hack day for any and all developers to come and collaborate on projects or discover new technologies together and enhance their skills. Bring your laptop and your desire to try things out & have fun!

One day in London

With the great interest in Clojure and the fabulous success of recent London Clojure meetups, we decided the time is right for a proper, intensive, interactive day here at Skills Matter for everyone interested in this great technology to learn and share skills.

Want to get to grips with one of the fastest growing Functional languages around? How about joining 150+ Clojure developers and some of the world's leading experts on Clojure, Simplicity and Functional Programming?

Then come and be part of the forth annual Clojure eXchange taking place on December 4th-5th. Immerse yourself in two days of talks, discussions and networking with Europe's Clojure community to learn and share skills, exchange ideas and meet like minded people.

Keynoting this year is Kyle Kingsbury (@aphyr) who will be speaking on concurrent folds. Other topics include Clojure in Cloud, Clojure in Government, Lenses, and what Art and Dance have to do with it.

Thanks to our sponsors

Day 1: Clojure eXchange

Pick your sessions!

Reactive GUI Implemented in Clojure
Denys Lebedev

I’m working on my personal project (I call it FlatGUI) which is a GUI toolkit for any software that runs on JVM. It may be considered as an alternative to Swing. I work for a company developing powerful multi-asset broker-neutral trading system and I already have 9 years of experience working with Swing GUI there.

I know a lot about complexity and typical issues that frontend developers have to deal with. A year ago I decided to start implementing my own vision of good GUI toolkit where key advantages are: reactive programming paradigm, testability, simplicity. I found Clojure the most suitable language for implementing this toolkit.

About the speaker...

I received master's degree from the Computer Science department of Dnipropetrovsk University of Railway Transport in 2008.

In 2005, while being a student, I started working for InfoReach, Inc. part-time at a junior software developer position in Ukraine office.

I started full-time work schedule as soon as I graduated, and I still work for InfoReach. Currently, my position is team leader in Ukraine office. Almost all my work is related to our reach GUI client, so after gathering plenty of use cases and insights, in 2013, I started my personal project: reactive GUI toolkit which I implement in Clojure. I live in the city of Dnipropetrovsk, Ukraine. I'm married and happy with my marriage.

Pathogens & Parentheses: How we use Clojure in the molecular surveillance of infectious disease
Russell Dunphy

Watch now!

I work for an organisation called BUGS Bioscience: a not-for-profit collaborative enterprise combining the latest developments in molecular biology and genomics with advanced mathematics and software. We provide integrated molecular surveillance services to help tackle global health challenges such as vaccine preventable diseases and antibiotic resistance.

We use Clojure, Clojurescript and Reagent as a large part of our stack (as well as everything else you need to do well at the game of buzzword bingo… Docker, AWS, etc. etc.). We believe Clojure is the perfect language for bioinformatics thanks to its great concurrency story and powerful sequence abstractions, and so I’d like to present a short talk on how we use the language, what our future plans are, and maybe even start a discussion on the benefits Clojure could bring to the field of bioinformatics and genomics projects as a whole.

About the speaker...

Russell is HealthUnlocked's Head of Engineering. After language-hopping quite a bit in his early career, he found Clojure a little over four years ago and since then he is happy to report that the grass has stopped looking greener on the other side. (Except, idk, Erlang/Elixir is pretty cool. And Elm is interesting...)

When not programming Russell likes to do the odd cat or dog painting, or make songs about the small dogs you can see in the park near his office.

Resource management in clojure
Rob Ashton

Watch now!

I wrote a database in Clojure, it's not a very good database but I had a lot of fun doing it. One of the common questions I found myself asking the Clojure community was ""how on earth do you deal with resources in a non-pure and lazy functional programming language?""

The database had file handles, pointers to native code and various network sockets and loading all of the data into memory wasn't an option. What was tried and discarded and what patterns did I end up with? This will be a very quick whirlwind tour with a potentially controversial set of conclusions.

About the speaker...

Rob Ashton is a freelance developer providing project-based development efforts to clients all over the world. He has been a core committer to the RavenDB project since the early days of pre-release, contributing features such as the dynamic indexes

We're just about finding enough time to extract common patterns and tools into isolated libraries, enough to create a talk about the practice of building time-based performance systems for screen-based art.

He is currently working on choreographic visualisation tools for Wayne McGregor|Random Dance at Sadler's Wells, interactive sound and sensing systems for Eddie Ladd's ongoing tour of Ras goffa Bobby Sands (The Bobby Sands Memorial Race), music composition for Shobana Jeyasingh Dance Company, and large-scale outdoor algorithmic video animation for Simeon Nelson in Poland, Estonia and the UK. Nick has just returned from an algorithmic video project at the UNESCO heritage site at Boudhanath in Kathmandu, possibly marking the first use of Clojure in the whole of Nepal.

Pragmatic Clojure Performance Testing
Korny Sietsma

Watch now!

Knuth said it first: ""97% of the time, premature optimisation is the root of all evil"". And it's become a mantra: ""You aren't going to need it - Don't worry about speed - wait until we performance test and then tweak the slow parts"".
But it's not always that simple. Will you actually get around to those tests? Will you be able to understand the results? And by the time you understand them, will it be too late or too expensive to fix?

In this talk I will discuss my experiences diagnosing and fixing performance problems in real-world clojure applications, and some practical approaches to making this less painful.

About the speaker...

Korny works for ThoughtWorks as a developer, consultant and compensating optimist. He has been developing mostly in Clojure for the past 2 years, and in a range of lesser languages for a long time before that.

Dragonmark: distributed core.async
David Pollak

Watch now!

Communicating Sequential Processes (CSP) provides excellent patterns for building concurrent systems. Clojure's core.async provides a Clojure implementation of CSP in a single address space.
However, very few programs run in a single address space. Web applications run in a combination of the browser and one or more servers. Very often, applications will span a cluster of servers.

Dragonmark Circulate provides a mechanism for distributing core.async channels across address spaces while providing the same semantics to all the address spaces.

David Pollak (Dragonmark and Lift founder) will discuss using Dragonmark to create a web-based chat app as well as recruiting members of the audience to participate in the open source project (aka, please help whitewash my fence).

Oh... and I'll hug Bruce and anyone else who wants a hug... but I'll do that anyway.

Herding cattle with Clojure at MixRadio
Neil Prosser

Watch now!

At MixRadio we use Clojure to power our micro-service architecture and loved it so much we used it to build our AWS deployment tooling.

We'll give you a quick overview of our architecture and introduce you to our newly open-sourced deployment tooling; explaining the problems we faced and how we solved them. Expect code and a live deployment to our production environment.

DataScript for web development
Nikita Prokopov

Watch now!

DataScript is an open-source implementation of Datalog and Datomic in-memory storage, in ClojureScript, for browser. I’m going to talk about motivation behind DataScript, how it was created, how it can be used, what kind of problems it solves and how simple and sane web app development is when you have a database in your browser.

About the speaker...

Nikita is a Clojure hacker from Siberia. He builds backends, web apps and distributed systems in Clojure for a living. He also blogs about Clojure, web and UX. He’s the author of DataScript, Rum, Tongue, Fira Code and AnyBar.

Ephemeral-first data structures
Michal Marczyk

Watch now!

Clojure programmers are used to working with highly sophisticated persistent data structures, using managed references when mutable state is unavoidable. In some applications, however, a compelling alternative presents itself in the form of concurrent data structures with lock-free (""global progress guaranteed"") updates that admit fully persistent snapshots.

A data structure of this kind suitable for implementing maps was described by Prokopec, Bronson, Bagwell and Odersky. This talk aims to introduce it to the Clojure community, to present a Clojure implementation and to describe API choices that make using it feel natural in Clojure.

About the speaker...

Longtime contributor to all parts of ClojureScript, including the compiler and the core library; most notably, author of the ClojureScript ports of the persistent map and set types and PDS-related functionality such as transients.

The Future of Clojure
Bodil Stokke

About the speaker...

Bodil is a compulsive conference speaker in the fields of functional programming and internets technologies, and is a co-organiser of multiple developer conferences in Scandinavia and the UK, mostly because she’s still learning how to stop.

She is a prolific contributor to the Free Software community, and has recently taken up designing new programming languages as a hobby. In her spare time, she works as a developer for Future Ad Labs, a London based startup that wants to make advertising a productive member of society. Her favourite pony is Pinkie Pie.

About the speaker...

Martin has been doing Clojure full time for 4 years in various projects ranging from finance, property websites and IOT startups. Currently he is head of engineering at Opensensors.io building solutions with a Clojure backend and frontend stack. He is very interested in programming languages and is always trying to learn new (and old!) ones.

Trojan Horsing Clojure with Javascript
Robert Rees

Watch now!

Love using Clojure but can't get your static typing colleagues to get with the LISP programme. Well Javascript (the Scheme in the browser) is your friend. It's already dynamic and uses maps for everything, it's like a second home!

Not only that but lots of Clojure code has already been ported (include the Clojure language itself, twice) or has inspired pure Javascript equivalents.

In the talk I'll introduce ImmutableJS, Mori, Wisp, Omniscient and maybe even Clojurescript.

About the speaker...

Robert Rees is currently a Developer Manager at the Guardian and the former CTO of Wazoku. He started his career as a tester and went on to be a C and Java developer in telecoms and dabbled in management.

My Componentised Clojure Crusade
Adrian Mowat

Watch now!

One of the great things about coming to conferences is seeing ideas you’ve heard about for real. Well, Stuart Sierra’s components and reloaded workflow have been a popular topic for a while now and I’ll use this lightning talk to bring them to life by showing you how we use them to separate concerns and streamline our development workflow.

I’ll also show how we use off the shelf components to make it easy to create a componentised website or add a database and show a few patterns I have found useful for running unit tests real fast and dealing with large volumes of data in development.

About the speaker...

Adrian is the development lead for the web team at Arnold Clark. His background is an unusual mix of Ruby on Rails and enterprise data integration using Ab Initio (ETL language). He’s been working with Clojure for the last 3 years and is passionate about building the community in Scotland.

He co-hosts the Glasgow Clojurians group with Simon Brooke, runs public "Clojure Launchpad” training courses aimed at beginners and improvers, and he recently helped as a teaching assistant at Ali King’s Clojure Bridge in Edinburgh.

Flow - learnings from writing a ClojureScript DSL
James Henderson

Watch now!

Flow is a ClojureScript library that I've been writing in my spare time over the last four months, allowing developers to write webapps in a declarative style.
The idea for Flow came out of my ClojureX talk last year, when I proposed a couple of CLJS UI design patterns that we'd evolved over time - after the talk, I spoke to a few of the attendees who suggested that a library would be very helpful!

I'll be talking a bit about Flow as a library, its usage, and give a few examples of what's possible - but the majority of the talk will be discussing the design and implementation of the DSL, as well as what I've learned about developing in ClojureScript, using macros, manipulating Clojure forms, and writing a compiler. I'll probably also talk about the progression of ideas that led to Flow's current incarnation, time permitting.

Super Charging Cyanite
Tom Coupland

Watch now!

Join me for a rapid journey through making metrics move rapidly. The medium in question for these metrics being Cyanite, an open source Clojure project that replaces Graphites default storage engine, Carbon, with a combination of Cassandra and ElasticSearch. We’ll look at the overall data flow, before looking at how it got dialled up to 11 using Clojure’s core.async, custom channels, changing database clients and modifying libraries to suit our needs. Expect code, graphs, words and, in the end, lots of metrics!

The session will walk through the performance enhancements i’ve added to the Cyanite project over the last few weeks. The initial conversation can be found on github:

About the speaker...

Tom Coupland is a developer at MixRadio Bristol. Having spent years working with transaction processing monoliths, producing one of his own in the process, he’s now enjoying the world of SOA and the freedoms it can bring. After subjective eons working with Java, he set out to find more productive and elegant tools.

Currently he can be found basking in the joy that is Clojure during the day, while keeping an eye out for other suitors in the evening. When not trying to make his bit of the world of software a better place, he can be found out in the real one, running around, preferably in the mud, wind and rain.

BirdWatch / Building a System in Clojure
Matthias Nehlsen

Watch now!

In this talk I will discuss the lessons learned while building a complex system for live Tweet Stream Analysis using multiple Clojure applications, ElasticSearch, Nginx and Redis (all inside Docker containers) on the server side plus a client connected over WebSockets using Om for the UI.

Clojure in the service of Her Majesty's Government
Philip Potter and Rachel Newstead

Watch now!

The Scenario:
You have thirteen weeks to build a prototype login system for businesses to use government services.
The code will be thrown away afterward, but it must be able to evolve rapidly in response to feedback about what a user journey should look like.
Half your team have never used Clojure or Emacs before.
How do you convince the government that building a prototype in Clojure is a good idea?
And if you manage that, how do you ensure the prototype is successful?

Clojure offers fast feedback and the ease of spinning up simple web services. It let us adapt quickly and explore complex flows of data. Our talk will be about how we got on, things we learnt, and what we'd do differently next time.

More Open-Source systems, please
Thomas Kristensen

Watch now!

This talk will describe how we build Clojure systems at uSwitch: development and deployment, metrics and monitoring. We’ve benefited greatly from the open-source work provided by the community and the way we build Clojure systems has evolved greatly since our first deployment in 2010.

Although there’s lots of source material for learning Clojure there are relatively few publicly available examples of Clojure systems in production. In this talk we will present examples of the practices we use at uSwitch when developing Clojure services, and describe the architecture of some of our sub-systems containing these vital Clojure services. We will centre our discussions around Clojure services we have open-sourced and which you can examine and use.

You will go away from the talk inspired to try out new things. Let’s share some good war stories and have some interesting discussions - maybe in future talks, maybe in the pub.

About the speaker...

Thomas Kristensen is a software developer and technical lead at
uSwitch. He believes in using the right tool and the right
methodologies for the tasks there. Luckily, quite often (but not
always) the right tool happens to be Clojure.

He holds a PhD from Aarhus University where he worked in the field of
bioinformatics. He now spends his time trying to help the British
public save money on their energy bills via the medium of Emacs and
whiteboard sketches.

Journey through the looking glass
Chris Ford

Watch now!

Lenses are a beautiful functional abstraction that subsume the getters and setters of object languages like Ruby and Java. Traversals are a related abstraction that subsume iteration.

These concepts are highly relevant to Clojure development, because they provide a way to resolve the tension between simple, coarse-grained state management, and simple, fine-grained functions that operate on parts of that state.

In this talk I will explore what form these concepts might take in an untyped (by default) language like Clojure.

About the speaker...

Chris is a certified BABE (Bachelor of Arts, Bachelor of Engineering), and consequentially an idiophile and technophobe. He began to make music with code partly to compensate for his poor technique, and partly because air piano is unsatisfying. When he works, he works for ThoughtWorks, though that isn't all the time.

I've been working on concurrent folds, where we sacrifice some order in exchange for parallelism. Tesser generalizes reducers to a two-dimensional fold: concurrent reductions over independent chunks of a sequence, and a second reduction over those values. Higher-order fold combinators allow us to build up faceted data structures which compute many properties of a dataset in a single pass. The same fold can be run efficiently on multicore systems or transparently distributed--e.g. over Hadoop.

About the speaker...

Kyle Kingsbury, a.k.a "Aphyr", is a computer safety researcher working as an independent consultant. He is the author of the Riemann monitoring system, the Clojure from the Ground Up introduction to programming, and the Jepsen series on distributed systems correctness. He grills databases in the American Midwest.

How to contact Skills Matter

Skills Matter

10 South Place, London, EC2M 7EB, GB

Thanks to our sponsors

Skills Matter's community conferences are made possible thanks to our passionate community - who constantly feed us with their ideas - and thanks to the generous support of our amazing partners, who help us keep tickets affordable, organize great workshops and are keen to meet you at their booths, to share their projects, tools and frameworks with you.

To learn more about our partners, click on their logo!

If you would like to sponsor this conference, we'd love to hear from you!

Available Packages

64-BIT SPONSORSHIP

Engage with the Clojure eXchange community! Show off your team, projects, tools or devices at your ClojureX conference booth!

Brand Visibility Benefits

Your logo (large) on all #ClojureX web pages

Your own dedicated partner page on skillsmatter.com

Your logo (large) on all in-venue conference banners

Visibility of your brand and your support for #ClojureX in regular social media updates.

Engagement Benefits

Two items (leaflet, device, pen or notepad) included in all #ClojureX swag bags

10 free tickets to the conference which you can gift to your clients, your engineering team or members of Computing At School (teachers learning computing to teach the new National Computing Curriculum).

32-BIT SPONSORSHIP

Brand Visibility Benefits

Your logo (medium) on #ClojureX web pages

Your own dedicated partner page on skillsmatter.com

Your logo (medium) on all in-venue conference banners

Visibility of your brand and your support for #ClojureX in regular
social media updates.

Engagement Benefits

One item (leaflet, device, pen or notepad) included in all #ClojureX swag bags

5 free tickets to the conference which you can gift to your clients, your engineering team or members of Computing At School (teachers learning computing to teach the new National Computing Curriculum).

16-BIT SPONSORSHIP

Brand Visibility Benefits

Your logo (small) on #ClojureX web pages

Your own dedicated partner page on skillsmatter.com

Your logo (small) on all in-venue conference banners

CLOJUREX PARTY SPONSOR

Be remembered! Have your logo printed on all #ClojureX Party beer mats and party badges, provided to conference attendees, speakers and sponsors attending the party this year.

Brand Visibility Benefits

Exclusive to two party sponsors only!

Your logo displayed on #ClojureX Party beer mats and party badges

Your logo displayed on #ClojureX Party pop-up banners

Get your logo featured in lots of pictures taken at the #ClojureX Party!

Plus 16-bit sponsorship benefits

CLOJUREX T-SHIRT SPONSORSHIP

Be remembered! Have your logo printed on all #ClojureX t-shirts, provided to all conference attendees, speakers and sponsors attending this year.

Brand Visibility Benefits

Your logo on 125 #ClojureX t-shirts

Exclusive to one t-shirt sponsor only!

CLOJUREX SWAG BAG SPONSORSHIP

Be remembered! Have your logo printed on all #ClojureX swag bags, provided to conference attendees, speakers and sponsors attending this year.

I wrote a database in Clojure, it's not a very good database but I had a lot of fun doing it. One of the common questions I found myself asking the Clojure community was ""how on earth do you deal with resources in a non-pure and lazy functional programming language?""

The Scenario: You have thirteen weeks to build a prototype login system for businesses to use government services. The code will be thrown away afterward, but it must be able to evolve rapidly in response to feedback about what a user journey should look like. Half your team have never used...

Join me for a rapid journey through making metrics move rapidly. The medium in question for these metrics being Cyanite, an open source Clojure project that replaces Graphites default storage engine, Carbon, with a combination of Cassandra and ElasticSearch. We’ll look at the overall data flow,...

One of the great things about coming to conferences is seeing ideas you’ve heard about for real. Well, Stuart Sierra’s components and reloaded workflow have been a popular topic for a while now and I’ll use this lightning talk to bring them to life by showing you how we use them to separate...

Love using Clojure but can't get your static typing colleagues to get with the LISP programme. Well Javascript (the Scheme in the browser) is your friend. It's already dynamic and uses maps for everything, it's like a second home!

Knuth said it first: ""97% of the time, premature optimisation is the root of all evil"". And it's become a mantra: ""You aren't going to need it - Don't worry about speed - wait until we performance test and then tweak the slow parts"". But...

DataScript is an open-source implementation of Datalog and Datomic in-memory storage, in ClojureScript, for browser. I’m going to talk about motivation behind DataScript, how it was created, how it can be used, what kind of problems it solves and how simple and sane web app development is when...

This talk will describe how we build Clojure systems at uSwitch: development and deployment, metrics and monitoring. We’ve benefited greatly from the open-source work provided by the community and the way we build Clojure systems has evolved greatly since our first deployment in 2010.

Clojure programmers are used to working with highly sophisticated persistent data structures, using managed references when mutable state is unavoidable. In some applications, however, a compelling alternative presents itself in the form of concurrent data structures with lock-free...

In this talk I will discuss the lessons learned while building a complex system for live Tweet Stream Analysis using multiple Clojure applications, ElasticSearch, Nginx and Redis (all inside Docker containers) on the server side plus a client connected over WebSockets using Om for the UI.

I work for an organisation called BUGS Bioscience: a not-for-profit collaborative enterprise combining the latest developments in molecular biology and genomics with advanced mathematics and software. We provide integrated molecular surveillance services to help tackle global health challenges...

Two days in London

If you're looking for the best place to learn about Clojure, Functional Programming and network with like-minded people, then the Clojure eXchange 2018 is the conference you simply can't miss! Meet with the world's leading experts, learn how to use Clojure in your team and discuss war...

Two days in London

If you're looking for the best place to learn about Clojure, Functional Programming and network with like-minded people, then the Clojure eXchange 2017 is the conference you simply can't miss! Meet with the world's leading experts, learn how to use Clojure in your team and discuss war...

One day in London

hackthetower.co.uk is a hack day for any and all developers to come and collaborate on projects or discover new technologies together and enhance their skills. Bring your laptop and your desire to try things out & have fun!

Two days in London

If you're looking for the best place to learn about Clojure, Functional Programming and network with like-minded people, then the Clojure eXchange 2016 is the conference you simply can't miss! Meet with the world's leading experts, learn how to use Clojure in your team and discuss war...

One day in London

hackthetower.co.uk is a hack day for any and all developers to come and collaborate on projects or discover new technologies together and enhance their skills. Bring your laptop and your desire to try things out & have fun!

One day in London

With the great interest in Clojure and the fabulous success of recent London Clojure meetups, we decided the time is right for a proper, intensive, interactive day here at Skills Matter for everyone interested in this great technology to learn and share skills.