This Saturday (yesterday, as I write these words) marked the first septiversary (one-week anniversary is just so wrong, y’all!) of Dutch Clojure Days, the annual (see, ano means “year”) free Clojure conference in Amsterdam. This is my third one in a row, and I left it with a great feeling and a strong desire to write a blog post on the airplane back home to Stockholm on the following day. When I pulled my pen out, however, I found that the pressure changes had wreaked havoc with the liquid ink therein, so the post had to wait.
Now that my feeble excuse for tardiness is out of the way, let me move on to the conference itself.
In short, it was fantastic! I left it full of inspiration, which is not unusual for a Clojure conference, but this inspiration was not to write code, but rather to be more thoughtful and spend more time on things that matter. This was partly due to the talks, partly due to the great conversations I had with speakers and fellow attendees in between the talks, and partly due to this year’s special guest: an 11 year old girl who had attended a ClojureBridge workshop, really enjoyed the parentheses, and continued with it. Apparently, Clojure is something like her third or forth programming language, and she’s also interested in Racket. I’m really proud of the organisers for inviting her, and grateful to her mum for encouraging her love of programming!
Before I move on to the talks — both onstage and off — I do want to address the one aspect of the conference where there’s definitely room for improvement: lack of gender diversity. Compared to other European Clojure conferences I’ve attended (namely EuroClojure and Clojure eXchange, where I felt like the percentage of women was actually higher than at non-Clojure conferences), DCD had very few women in attendance. Fewer than 10 in fact, which is quite a small number for a conference with well over 100 attendees.
I noticed this last year as well, and wondered why it was. I had this theory about it being a free conference, and maybe men were more likely to snap up the tickets without deliberating first. I was talking with one of my teammates who is a woman about this year’s conference, and when I brought this up, she gave me quite a well-deserved eye roll and suggested that I stop spouting rubbish unless I had some data to support such speculation. Chastened, I admitted that I was out of ideas to explain it, at which point she looked up the talk lineup.
This year, 1 of the 11 speakers was a women. Last year, none of the 11 speakers were. The year before? 1 of 11. The fact that fewer than 10% of the speakers were women might go some way to explaining why fewer than 10% of the attendees were women.
To be fair, whilst the other two conferences I mentioned do a little better in terms of gender diversity in their speakers, they’re not much better. EuroClojure 2017 (the last occurrence) had 2 of 17 women; 2016, 4 of 18; and 2015, 2 of 18. Clojure eXchange 2018 had 5 of 27; 2017, 6 of 24; and 2016, 1 of 24 (sounds like the organisers might have made an effort to improve matters in subsequent years).
It’s not an easy problem to solve, to be sure. Conferences shouldn’t invite speakers because they are women, but because they’ll give great talks. Luckily, there are many great engineers and speakers out there who are women! I’m one of the organisers of my company’s internal tech conference (we have around 800 engineers), and we’ve tried to address this by reaching out to engineers who are women and encouraging them to submit talks. When we choose talks, they are anonymised. Despite fewer than 20% of our engineers being women (we have quite a lot of room for improvement ourselves!), around 40% of the talks we select were submitted by women! And those talks have consistently gotten higher ratings than talks given by men over the past two years.
I’m sure there are many other ways to encourage greater diversity (Ashe Dryden has a few in her blog post So you want to put on a diverse, inclusive conference), but I wanted to give one example to show that the problem is not intractable, and that we shouldn’t just throw up our hands and accept the ways things are.
I apologise for focusing on only two genders in my discussion of gender diversity. The low number of women was simply the most obvious issue that I could discern visually.
As I said, I think Dutch Clojure Days is a wonderful conference, and I would love for a more diverse crowd to share in the goodness!
Speaking of a more diverse crowd, there’s one other thing I noticed when listening to the talks that I’d like to point out to prospective conference speakers: y’all say “guys” a lot when addressing a crowd of mixed gender. I know that American pop culture has spread this usage of “guys” around the world, and that it can be tricky for non-native speakers, but “guys” is not gender-neutral. When you’re giving a talk, you want to pull the audience in and bring them along on the journey with you, right? Using a term of address that potentially makes some audience members feel excluded runs counter to this aim.
Luckily, there are many inclusive alternatives to “guys”! “Everyone”, “people”, “friends”, and my personal favourite, “y’all”, are but a few examples. It can be hard to break the “guys” habit, but I think it’s well worth it to make the effort!
If you’d like more ideas on how to make an effort, check out my friend Beverly Lau’s “How to be a Kick-Ass Ally” talk:
Aurynn Shaw has a great blog post on this called Contempt Culture, which I’d encourage you all to read. It was extremely eye-opening to me, and led to me making a concerted effort to stop treating other tech (and by extension, users of that tech) with contempt.
I point these things out not because I thought they were especially rife at DCD, or in the Clojure community at large. In many ways, I think the Clojure community is one of the most welcoming and friendly of any language-centred tech community (Ruby, naturally, would be the other notable one). I point these things out because I would like us to make our community even more inclusive.
Now, let me get back to talking about the things I loved about the conference. First, the talks. I thought all of the talks were good, and a few really stood out. Here they are, in order of appearance during the day:
“nREPL Redux”, by Bozhidar Batsov (@bbatsov). Bozhidar is one of my favourite speakers, with his mix of humour and interesting content. This talk was no different! It was an update on the progress of nREPL since it left Clojure Commons, and a call to support Open Source projects financially. The call was heeded by a few in the audience, not least Heimo Laukkanen, who announced that his company, Siili, was sponsoring nREPL development starting immediately!
“Decentralized evolutionary computation with Clojure and ClojureScript”, by Rakhim Davletkaliyev (@freetonik). An explanation of the basics of reproduction, featuring cute donkeys, and ending with a live demo of a genetic algorithm for finding solutions to the famous travelling salesman problem. For another great talk on genetic algorithms, check out my colleague Maja Kontrec’s “Evolution Through Genetic Algorithms” talk.
“How I Supercharged Learning Clojure through Gamification”, by Mey Beisaron (Lady Mey on Medium, @ladymeyy). This talk was my favourite of the day, due to a combination of the contents (learning programming languages by writing old school 2D games) and Mey’s sheer enthusiasm and great delivery.
“The Rise and Fall of E2E Testing at Scale”, by Phillip Mates (@philomates). Phillip followed up his previous year’s talk on single-service testing with an exploration of the limitations of end-to-end testing of a large microservices architecture, and the eventual the rise of light-weight cross-service generative-based schema validation tests.
In addition to the talks, I had a lot of great conversations with old friends and new. One such old friend and I discussed the environment, public policy, and maybe a little technology over lunch. The thrust of the conversation is that the Establishment has done a wonderful job of convincing us that if we want to combat global warming, we should turn off the water whilst brushing our teeth or take the train, whilst continuing to make huge profits from business as usual. Only policy can actually move the needle, as we need communal responsibility, not individual responsibility.
My friend had a great metaphor for this. In Belgium, every time a cyclist is killed by a car, there’s a cry for making bicycle helmets mandatory. The root cause of the problem is that bicycle and car traffic are mixing, and it only takes a moment of distraction by the driver of a car to create a dangerous situation for vulnerable cyclists (helmet or not). In the bike-obsessed Netherlands, the government has invested in proper infrastructure for safe (and environmentally friendly) cycling. Bicycle lanes are separated from car lanes by a paved curb in the cities, and by grass and trees in the countryside. This public policy has led to an 80% reduction in cycling fatalities over a 30 year period. Helmets, meanwhile, cut serious and fatal injuries by around 30%. Encouraging helmet use is sensible, but blaming cyclists for their own deaths because they eschewed a helmet is overlooking the actual cause, which is almost always a car hitting them.
Another attendee was also full of ideas. After expressing some skepticism about serverless (functions as a service, not the Serverless framework), he laid out his grand vision for computation, where you write units of code and then tell the system, “go run this stuff”, without caring where or how the stuff gets run. He cited the prolific Carin Meier’s work on getting Clojure to run on MXNet as a big step towards this bright future, but admitted that he still needs to do a lot of thinking before the dream can be realised.
We also discussed bang-for-the-buck with testing, our annoyance with unit tests in a REPL-driven development process, and our increasing feeling that we’re old men shaking our sticks at the whippersnappers with our insistence on using venerable Unix tools like sed and awk and the like. He is a really friendly, thoughtful, and hilarious guy.
Speaking of friendly, hilarious people, DCD organiser Vijay Kiran was in top form, even minus his defn podcast co-conspirator Ray McDermott. Vijay has really mastered the art of self-deprecating humour, and had us all in tears of laughter after the conference. Despite Vijay’s protestations, he’s a huge asset to the community. Organising a conference like Dutch Clojure Days is quite an undertaking, and it’s a strictly volunteer effort. Not to mention the defn podcast, which was a breath of fresh air on the Clojure podcast scene and really gave the European Clojure community some visibility. Thanks for everything, Vijay!
Arne Brasseur was also in attendance. I’ve said before that he’s one of the nicest people in a community filled with really nice people, and I stand by that. He’s the main organiser behind the upcoming Heart of Clojure conference, which is filling the gap left by the demise of EuroClojure. It’s on August 1–2 this year in Leuven, Belgium, and I heartily recommend that you go, if possible. Especially since the lineup of speakers is shaping up to be much more gender diverse!
I’ll wrap this post up by saying a huge thank you to all of the DCD organisers: Carlo Sciolla, Vijay Kiran, Eugene Lukyanchuk, Iulia Mastacaneanu, Joost Diepenmaat, and Max Gonzih. Dutch Clojure Days is my favourite conference, and truly one of the highlights of the spring for me.
See y’all next year!