James Golick

James Golick is an engineer, entrepreneur, speaker, and above all else, a grinder.

As CTO (or something?) of BitLove, he scaled FetLife.com's traffic by more than an order of magnitude (and counting).

James spends most of his time writing ruby and scala, building infrastructure, and extinguishing fires.

He speaks regularly at conferences and blogs periodically, but James values shipping code over just about anything else.

Latest Tweets

follow me on Twitter

James on the Web

Off-Topic: Café Myriade

Oct 27 2008

I'm a coffee geek. About half my kitchen is dedicated to espresso gear, and various tools for brewing filtered coffee, including a vacuum pot, and the newest addition, a cafe solo. Anyway, being a coffee geek, I also hang out with coffee geeks. And, it just so happens that the guy who taught me everything I know about coffee, competitive barista Anthony Benda, just opened his very own cafe.

If you like coffee, you owe it to yourself to check this place out. There's a huge difference between the crapstuff you get at starbucks (which we lovingly refer to as 'dirty water'), or even your local coffee shop, and what they're brewing over at Myriade.

The rest of this article is cross-posted from Daniel Haran's blog.

Daniel and I went to visit Cafe Myriade (praized page) for their Grand Opening. He grabbed this shot after a friendly latte art challenge:

Latte Art at Cafe Myriade

Myriade is worth visiting if you care about either coffee or chocolate. Baristas Anthony Benda and Scott Rao are both obsessive about coffee: Anthony is a competitive barista and Scott is the author of The Professional Barista’s Handbook.

Seeing them at work refining techniques and recipes is amazing and inspiring; they had received a new type of coffee maker akin to a french press and were testing different quantities and steep times.

For chocolate fanatics this is the only retail spot I know of in Montreal that carries SOMA chocolate, including their hot chocolate. SOMA is one of only 2 chocolatiers in Canada that make their own chocolate; I religiously visit them every time I’m in Toronto.

One of Anthony’s signature drinks is a coffee with melted chocolate. For his last competition he tried over a dozen different chocolates to find the perfect fit. Rather than being satisfied with his choice, it only seems to have ignited another obsession.

Cafe Myriade is located at 1432 Mackay, close to Maisonneuve at Guy-Concordia.

Our Rumble App: What Does this Error Mean?

Oct 20 2008

Francois, Daniel, and I (and Mat, in spirit) spent the weekend rumbling. It was a great time coding with these two superstars, but you don't care about that.

Our app is called what does this error mean?. We all see error messages, and until now, the best way to look for solutions to those error messages was doing a google search. The problem with google searches, though, is that the results are ordered by the quality of the site, not by the quality of the solution. What does this error mean solves that problem, and a few more.

But, really, reading sucks. So, watch our screencast to learn all about wdtem.

Rails & Merb Integration

As part of our rumble project, we built plugins for both rails and merb that override their default development mode error messages. With our plugin installed, you'll see our logo below the error message. Simply click on the logo to automatically jump to a what does this error mean search!

For rails:

$ script/plugin install git://github.com/giraffesoft/what_does_this_error_mean-rails.git

For merb:

sudo gem install what_does_this_error_mean-merb

Please Vote for Us!

If you think our app is cool, please consider voting for us once rails rumble voting starts! We don't know the url yet, but have been told to point people to our team page.

Watch François Beausoleil Train for Rails Rumble

Oct 15 2008

My Rails Rumble team is all set to win, because we trained the hardest. Check out the video François made of some of his hard work preparing for the competition.

RailsRumble 2008 Training from François Beausoleil on Vimeo.

Blank: A Starter App for r_c and shoulda Users

Oct 10 2008

Bort was released recently. Peter Cooper speculated that "...it could well catch on as the de facto bare bones / generic Rails application". But, what about us non-RSpec users? There are dozens of us, I tell you. Dozens!

We build a lot of apps at GiraffeSoft — we love to experiment with whatever ideas excite us on any given day. We're all sick of editing restful_auth code, and moving tests over to Shoulda and the one assertion per test pattern. Bort doesn't suit our needs. So, blank was born.

Right now, it's pretty simple. It has authentication, and forgot password. That's about it. But, it's no biggie. Since blank creates your new app as a git repo that shares history with blank's repo, you can pull in changes we make at any time. So, when we finally get around to implementing openid support, you'll get it for free, if you start with blank.


All of our standard tools (and rails) are vendored:

  • active_presenter
  • andand
  • attribute_fu
  • hoptoad
  • mocha
  • rake
  • restful_authentication
  • ruby-openid
  • will_paginate


Installing blank is as easy as running a rake task. Except that blank uses thor instead, because it’s the new hotness, and it supports remote tasks.

Just install thor:

$ sudo gem install thor

…then install blank’s thor tasks:

$ thor install http://github.com/giraffesoft/blank/tree/master%2Fthorfiles%2Fblank.thor?raw=true

…then you’re ready to create a new app with blank:

$ thor blank:new_app the_name_of_my_app the@git.repo.it.will.live.in

That’s it! The thorfile will display a couple of rake notes where you should replace blank app with your app's name. Also, you'll want to fill in your hoptoad API key in config/initializers/hoptoad.rb.

If we improve the thor file, all you have to do is run:

$ thor update blank

before creating your next app, and you’ll get the changes automagically.


All development will be done at the github repo. Fork away :)


Blank was created by me, with contributions from Daniel Haran.