A weekly newsletter and podcast diving into Clojure programs and libraries by Daniel Compton.

101: Brave Clojure job board relaunch, Michiel Borkent quit his job, and I'm looking for work

Friday, 8 October 2021

Recently, I’ve been working on a new office and have finished painting and flooring. I still have a few things left to do: painting and installing the skirting, getting a heat pump installed, wiring up ethernet, and installing acoustic panels to reduce echo.

I’m also looking for my next job. I recently left my job at GitHub as a Technical Program Manager to move back to writing software. I learned a lot of valuable things at GitHub including that my true passion lies in writing software. If you know of any companies that are hiring and open to New Zealand based employees/contractors, let me know. Thanks!

Lastly, a housekeeping note that there is now an RSS feed available for The REPL newsletter, you can find it at https://www.therepl.net/subscribe/.


Adrian Smith on Membrane and UI frameworks

Nikita Prokopov talks to Adrian Smith about Membrane and UI frameworks.


A Better Clojure Job Board

The Brave Clojure jobs board has been relaunched and now includes free listings, and import from other sites. You can still pay to promote your listing (you should pay though!). I’ve found the new site very helpful.


“This week I took a hard decision: I quit my long-time job to work more on #clojure OSS.”

In more job related news, congratulation to Michiel Borkent for going full time on his open source Clojure projects! He’s created an amazing variety of projects already while working a full-time job, I can’t wait to see what comes next. I’m happy Clojurists Together was able to help, along with many other generous companies and developers. If you want to support him, you can do so using GitHub Sponsors


Shipping Clojure code with Paulus Esterhazy

I talked with Paulus Esterhazy about how Pitch ships code.


Clojure pre-history with Chris Houser

I also talked with Chris Houser about Clojure pre-history, features of Clojure and how Clojure’s principles can be applied elsewhere.


Faster JSON parsing with Erik Assum

And I also talked with Erik Assum about how he sped up JSON parsing in clojure.data.json, clj-commons, and he interviewed me about what I’ve been up to recently.


re:Clojure 2021

The re:Clojure CFP is closing on 10th of October. This is the last Clojure conference of 2021, so if you have a talk idea, now’s the time to submit it.


Thoughts on Clojure UI framework

Nikita Prokopov outlines ideas for a new Clojure framework for desktop apps. This work is funded by Roam Research and Clojurists Together.


Libraries & Books.

“It was fun 18 months for me as a maintainer of Rum.”

Roman Liutikov and Nikita Prokopov are looking for a new maintainer for Rum.



“Today is OpenJDK 17 release day.”

OpenJDK 17 was released recently, and you can download a copy from https://adoptium.net. I haven’t heard of too many issues with upgrading, but let me know if you see any.


How much faster is Java 17?

Good analysis comparing JDK 17 to JDK 11 and JDK 16. There’s a nice (but small) performance boost on their very CPU heavy code. I wouldn’t necessarily expect as big a speed up on most code, but it’s still worth upgrading for.


clj-easy/graal-build-time: Library to initialize Clojure packages at build time with GraalVM native-image.

Graal’s native-image is deprecating the --initialize-at-build-time flag. This was commonly used in Clojure builds, graal-build-time provides an alternative build method so you don’t need to list each package manually.


JEP 410: Remove the Experimental AOT and JIT Compiler

The AOT compiler was removed from the main JDK distribution due to low usage, but it remains part of GraalVM. Don’t miss this clarification from the GraalVM lead that AOT native image is still going to be developed in Graal, this only affects the hybrid HotSpot/AOT approach which few used.




api-diff can print a list of API diffs between library versions. Another useful tool from Michiel Borkent.


Why We Killed Our End-to-End Test Suite

Nubank switched from End-to-End testing to Contract and Acceptance testing to speed up their CI time. They show how it reduced cycle time and increased their deploys/week metric. Slow/flaky CI is a common problem at larger companies, it was good to see this shown as one possible solution.


Native Clojure with GraalVM

A good guide to building native-image Clojure apps, especially when you’re using Clojure libraries with dynamic class loading. It also shows startup time going from 6 seconds to ~1 millisecond!



Ella Hoeppner has released Vlojure, a very unique visual programming environment for Clojure. Check out the demo video too.


Cursive 1.11.0 is out!

Cursive 1.11.0 is out with support for Babashka, better support for spellchecking, and some tools.deps fixes.


Travis CI security incident

In early September, Travis CI had a security incident which leaked secure env vars. If you’re using Travis CI, it’s a good idea to cycle all of your credentials.


Allow CIDER to load its own middleware via the sideloader

CIDER can now upgrade an nREPL connection to one with CIDER’s middleware. This lets you jack in to a running nREPL session and get all of CIDER’s features.


Recent Developments.

CLJ-2350 Improve keyword aritiy exception message

A nice patch from Marc O’Morain to improve error messages when you call keywordwith the wrong number of arguments.



Clojure deftype with unsynchronized-mutable

Dainius Jocas explains when you’d want to use unsynchronized-mutable and volatile-mutable in a deftype.


Setting up a basic Clojure backend

Let Arne Brasseur take you through setting up a basic Clojure web backend.


I’m Daniel Compton. I maintain public Maven repositories at Clojars, private ones at Deps, and help fund OSS Clojure projects (along with tons of generous members like LatacoraRoamWhimsicalPitchNubankCiscoAppsFlyerJUXTMetosinSolitaAdgojiNextjournalFlexianaToyokumoGriffin, and Parkside) at Clojurists Together. If you’ve enjoyed reading this, tell your friends to sign up at therepl.net, or post a link in your company chatroom. If you’ve seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.

If you’d like to support the work that I’m doing, consider signing up for a trial of Deps, a private, hosted, Maven Repository service that I run.