-
Not Synced
I'm Steve.
-
Not Synced
That's me. That's my twitter handle.
-
Not Synced
I sometimes wear cowboy shirts,
-
Not Synced
I'm blonde, I'm from Canada.
-
Not Synced
I'm from a tiny little village in the middle of seriously nowhere.
-
Not Synced
That's a picture of-- actually, it's right beside the pond I used to play in as a kid.
-
Not Synced
I'm looking back at my town, so there's nothing there [laughter].
-
Not Synced
[coughs] There are cowboys.
-
Not Synced
So this is a website that some friends in Canada sent me this week, which I think is amazing -
-
Not Synced
farmersonly.com - this is actually the town that I went to university.
-
Not Synced
These are people looking to marry farmers, or farmers looking to marry farm girls [laughter].
-
Not Synced
It's pretty sweet. Uh, I'm not a cowboy - I'm a Smug Lisp Weenie.
-
Not Synced
I'm not a particularly good Smug Lisp Weenie, so uh...
-
Not Synced
I don't really know what this is.
-
Not Synced
I did a Google image search for 'Smug Lisp Weenie' and it gave me a cute bunny,
-
Not Synced
[laughter] and I know you're supposed to include one cute animal slide, so there it is.
-
Not Synced
I've worked these places.
-
Not Synced
So I worked at ADX Studio, ThoughtWorks, and DRW Trading - which is in Chicago.
-
Not Synced
DRW is where I've done all my Clojure so far.
-
Not Synced
Introducing Clojure into an environment is kind of difficult.
-
Not Synced
We started with just a t-logger.
-
Not Synced
It was listening to a really terrible messaging framework called LBM -
-
Not Synced
which is some UDP, drop all your packets, head loss piece of junk.
-
Not Synced
So we just had an old application that was written in JRuby
-
Not Synced
which would connect to this thing, and dump all the messages out to a file.
-
Not Synced
So we figured, that thing is like 50 lines of Ruby, we'll rewrite it in Clojure.
-
Not Synced
So we got then 12 lines of Clojure. That was a start.
-
Not Synced
Then we moved on to market data republisher, which is also boring.
-
Not Synced
So it basically gets a data-stream from an exchange,
-
Not Synced
and broadcasts it out to the rest of the companies,
-
Not Synced
so that not everyone needs to connect to the exchange all at once.
-
Not Synced
It was a little bit more interesting, because we had to deal with Java Interop and things like that.
-
Not Synced
It was 300 lines of Clojure.
-
Not Synced
And then the last thing that I wrote before I left was a web application and service,
-
Not Synced
so it was basically your standard RESTful web service,
-
Not Synced
in behind what would normally be kind of a Rails app.
-
Not Synced
So we were using Compojure and stuff for that.
-
Not Synced
That was about 2000 lines of Clojure.
-
Not Synced
It was actually kind of cumbersome, because it was also speaking LBM in addition to HTTP.
-
Not Synced
Okay, people are tweeting at me, so I'm just going to...
-
Not Synced
Nokia phones - they're amazing.
-
Not Synced
So the last thing that was written just as I was leaving,
-
Not Synced
was our trade capture and positions management system.
-
Not Synced
So this was an application that we'd taken from
-
Not Synced
60,000 lines of C#, down to about 5,000 lines of Ruby.
-
Not Synced
The code samples that people were sending me after I left and joined C42
-
Not Synced
made it look like it would probably go down to about 3,000 lines of Clojure, which is pretty cool.
-
Not Synced
So now I work at C42.
-
Not Synced
I'm their token white guy.
-
Not Synced
They can only have one until they hire 100 more employees,
-
Not Synced
according to Indian 'import white people from Canada' laws.
-
Not Synced
I work on RubyMonk, so I've inherited
-
Not Synced
a pretty sweet code-base from