Mississippi
My own bit of Clojure nostalgia, fifteen years on
It’s November 2010. My brother moved to Chicago a few years ago, and I don’t see him much any more. So when I get to go to a tech conference in New Orleans, I talk him into coming with me. Spending time together isn’t something you get to do once you grow up, so I go all in. A week at his place with the family, and then my big idea: taking the train instead of flying.
I’d wanted to ride one of those long American routes ever since the idea had occurred to me, about a fortnight earlier. Against his curmudgeonly nature, he agrees. Which is why we’re sitting on an Amtrak at Chicago Union Station. Our cabin has those blue bunk beds folded up, just like in the pictures. We leave the question of who gets the top bunk for later.
The train pulls out, and the hipster-infested industrial cityscape gives way to fields. A few hours in, I’m convinced it’s the same field on a loop. I’d assumed the scenery would be the point. I hadn’t actually checked. My brother gives me a look. It says, what on earth were you thinking?
The last time we’d spent this much time together in a small space, it was the bedroom we shared as kids. We were good at filling empty hours then. We’d make our own radio shows for Captain Scarlet on a tape recorder, then listen back, rolling around laughing.
My hopes of experiencing that again fade as the field loops in the background.
Looking to salvage the trip, I wander along the train. I find the pointlessly glass-roofed dining car. A few awkward conversations later, I realise my fellow travellers are mostly nervous flyers. They tell me about all the scenic routes I should try. I retreat to the cabin.
The geeks we are, we’ve both brought our grown-up toys: laptops. At some point, we realise we both share an emerging love of Clojure, a new language built on old ideas. One of us suggests we build something with it.
In the 90s, our culturally obligatory grunge band never got off the ground. Practice on our school stage descended into Muddy Waters-esque blues improv. This time, we pick a shared problem: data structure validation. Not glamorous, but appropriately “train journey to New Orleans” shaped. We sketch a few ideas, open our laptops, and start.
For what remains of the journey, the nervous flyers barely see us. We only surface at mealtimes to share their glass-roofed view of the fields, then head back to the cabin. There, we just hack. Emacs, a REPL, and a problem. That’s all we need.
Well, I also need my brother. He takes the laptop from me for the umpteenth time after I do the easy bit and get stuck. He takes over, I watch him work it out, and he hands it back. The tests turn from red to green. Same ritual as rewinding the tape recorder. Did what we made work? Less fall-over-funny this time. The cabin’s too small to roll around on the floor anyway.
At some point, we look up. The field has become swamp. Nothing like a deadline to focus the mind. We push to finish before the train beats us to it. Perhaps for the first time in history, a developer’s estimate turns out to be accurate. We commit the first complete version as the Amtrak rolls into Mississippi.
So that’s what we call it.
Then New Orleans arrives, and adult life resumes.
We eat incredible gumbo, drink a bit too much, stumble into marching bands and come home with beads. The project gets pushed to GitHub. A friend even designed a logo for it. It ends up running in production systems for years.
Something about that train ride made the through-line of what I was doing a bit more obvious. The time I’d spent with my brother growing up was the reason I was at that conference at all. And the desire to recreate what happened in that cabin with Clojure, in the teams and companies I’d go on to help build, is what’s driven me ever since.


