Learning Clojure

Published in Polar Mobile

Today marks another very exciting opportunity for me at Polar Mobile. As a part of my next project, I will be required to learn Clojure, a dialect of Lisp that runs in the JVM. The Analytics and Reporting team has been tasked with production-izing one of the recent Hack Day projects that I mentioned briefly in my previous post, the Polar Popular articles project. The majority of this project will be written in Clojure so that it can effectively interface with Storm, which is used to perform the real-time calculations of popular articles.

Getting a chance to work with new and cool technologies like this is one of the main reasons that I love the technology industry and working at a young company like Polar. I have stocked up on several Clojure books as recommended by my team members and from my initial readings it is clear that this will be a language that is vastly different from what I am used to.

As of right now, there are no official projects written in Clojure at Polar (mainly a Python shop) so there is a lot of preliminary work that needs to be done to make that happen. All style and project management techniques are up in the air at the moment and chances are the way that these projects are defined will become a standard for all future Clojure based projects. One piece of this initial work that needs to be done is to port several of our python based projects over to Clojure to be utilized. My first task with Clojure will be to create a Redis client that is specific to Polar's infrastructure in that it will communicate with the internal naming service to figure out the appropriate IP address and port for a Redis server based on a hostname. This is particularly useful in that our Redis cluster can be moved from server to server and a single entry can be updated in the naming service rather than breaking and subsequently updating a multitude of different projects.

One of the things that I really want to get out of my coop placement is to learn as many new technologies and tools that I can to ultimately make my job easier in the future. Now that I am learning Clojure I can happily say that I am continuing toward that goal. Now to get back to reading...

Written By

Andrew Halligan

Published June 21, 2012