Dutch Clojure Days 2022

About DCD 2022

The Annual International Gathering of Clojure Enthusiasts and Practitioners in the Netherlands! We welcome you to the 6th edition of our free and non-profit Clojure conference organised by the community, for the community with a full day of amazing talks in a friendly welcoming atmosphere.


Dutch Clojure Days happened on Saturday, October 29th, 2022.


Dutch Clojure Days was hosted by the wonderful people at Cloud Pirates, in the heart of Amsterdam (Piet Heinkade 217, 1019 HM Amsterdam).


The conference is currently sold out, but fear not! As a free event, it often happens that tickets become available later during to cancellations. Stay tuned for updates!

In the meanwhile you can always join the waitlist so you can get in as soon as a spot frees up.

Call for Proposals

Our CFP is open until August 15th, 2022.

You can submit your proposal at Sessionize.

We look forward to receive your groudbreaking, breathtaking, parenssurfing proposals on topics such as (but not limited to) real-world experiences and lessons learned from putting your clojure(script) applications to production, fancy new library tool that just landed on the clojure planet, etc. Be creative!


DCD is a free event that is made possible thanks to our amazing sponsors and volunteers.



Friends and family







Opening#DCD22 team



Clojure + UI = ❤️Nikita Prokopov



A Library ReckoningPaula Gearon



Lightning Talks



Golfing Clojure: Check Checker under 280 characters of ClojureDaniel Janus



Sorry For The Convenience: The Importance of Progressive EnhancementBrendon Walsh



tagfl, task analysis generated from lispAdrien Siegfried



Clojupedia, linking the Clojure ecosystemAdam Helins



Coffee break



Automated Correctness Analysis for core.asyncSung-Shik Jongmans



Got a Guru?Jordan Miller



ClojureScript reimaginedMichiel Borkent



Closing#DCD22 team





Nikita Prokopov

Clojure + UI = ❤️

The web became a de-facto way of building UIs these days. But is it good? Or fast?
I argue that the web has its unique features, but it also brings a lot of unnecessary complexity to desktop apps, both in performance, resource use, compatibility, and stability.
Another point is that REPL-driven development is a perfect environment for building UIs, which ClojureScript + Figwheel has proven. Zero time feedback loop + persistent state + no reloads == a blessing for any visual project, yet many modern tools get there.
Finally, in the true spirit of Clojure and JVM, write once, run anywhere means desktop apps should run the same on all platforms, respecting platforms but also giving a lot of common ground to share development efforts, just like Electron apps do.
I feel Clojure has a unique opportunity to lead a new era in GUI app development — cross-platform Clojure desktop apps.
In this talk, we’ll present Humble UI, a brand-new way of building desktop apps in Clojure that doesn’t rely on the web ecosystem or any of the existing cross-platform UI frameworks. Instead, it’s custom-tailored from the ground up for the interactivity and portability of Clojure.
We’ll talk about graphical stack, OS integration, layout, components and reuse, state management, and also some unique twists you probably always wanted in the UI framework but didn’t know to ask for.
About the speaker: Clojure enthusiast, author of DataScript, Rum, Fira Code
Nikita has been programming in Clojure, Java, Python, Erlang for 17 years, been interested in UI/UX design for about the same amount of time, and created a few notable projects, including DataScript, Rum and Fira Code.

Paula Gearon

A Library Reckoning

Clojure was about to release a namespace for doing math, but only on the JVM. Why not ClojureScript as well? When I asked, the answer was that Java offered certain mathematical guarantees. Could ClojureScript offer the same? The answer turned out to be a lesson in IEEE 754 floating-point numbers; a question of portability between JavaScript and Java; a framework for cross platform testing; discovery of bugs in Clojure; optimizing ClojureScript for the compiler; the ClojureScript contribution process; and finally, renaming the clojure.java.math namespace, along with the creation of a new namespace for ClojureScript.
This talk will be an introduction to these topics for people who haven't seen them before, and possibly have some interesting things for more advanced developers as well.
About the speaker: Ontology Architect at IMO, and Graph database enthusiast, and Clojurista
An avid Clojure developer, Paula likes to work in the most technical parts of a system building the infrastructure that lets other developers do their jobs. She has been the technical lead on several commercial and open source projects, with a focus on data storage and processing, and was a lead editor for the SPARQL standard for accessing RDF databases. When not coding, she does triathlons, cooks, helps her children with homework, and mentors and supports young members of Women Who Code. Originally from Australia, she currently lives with her family in Virginia, in the USA.

Daniel Janus

lightning talkGolfing Clojure: Check Checker under 280 characters of Clojure

I spent one hot July weekend solving a CodeWars challenge: write a program to find out whether the king is in check on a given chessboard. The trick? Squeeze it in fewer than 280 characters of Clojure code.
It was a lot of fun! In this talk, I’d like to share some of that fun with the audience. We’ll see some _very_ dirty tricks and experience some ‘aha!’ moments along the way to squeeze out just another handful of bytes. And again, and again, until we make it.
About the speaker: Code cruncher at Fy!
Daniel has been in love with functional programming ever since his uni days, and in Clojure since before Leiningen was a thing. That is to say, pretty much forever.
He enjoys cycling, reading, playing Scrabble and spending time with cats (though not necessarily the other way round).

Brendon Walsh

lightning talkSorry For The Convenience: The Importance of Progressive Enhancement

A summary of progressive enhancement techniques and how breaking GUI changes can be just as harmful to users as breaking API changes are to developers.
About the speaker: Software Developer
Software Developer for 15 years (Clojure for 9). Accessibility extremist and web archival enthusiast.

Adrien Siegfried

lightning talktagfl, task analysis generated from lisp

Task analysis is an effective tool to capture the why and how's of a business requirement. Although some efforts are made to make this analysis more readable and capable of representing objects in use - such as the HAMSTERS notation, building such graphs are yet a challenge. A new approach is to consider the automatic generation of such graphs by using a graph visualization tool such as graphviz.
Tagfl is a lisp interpreter that aggregates multiple s-expressions describing tasks and automatically generates the corresponding graph. This approach helps designers create well-formatted, versionable and extendable task analyses. It opens the possibility to generate documentation automatically while taking minutes from an interview.
This talk will go through what and how to use task analysis, followed by a live demo of a task analysis being generated with tagfl.
About the speaker: Founder of UXlambda
From UX designer to Clojure developer, I have been helping companies build user-centred web applications for 6 years as an independent consultant.
One of my key contributions is with the Starling web portal, an Airbus and Earthworm collaboration to help companies fight deforestation with satellite imagery and supply-chain knowledge: a contribution highlighted at the SIG 2019 conference where I have talked about how to include design principles into gis application.
Currently, I am building Daisy, a tool that transforms Figma design into a React library; my take on the gap between design and development.

Adam Helins

lightning talkClojupedia, linking the Clojure ecosystem

A new initiative funded by Clojurists Together, Clojupedia aims to bridge our rich ecosystem by using personal knowledge management software in a non-personal fashion. We shall have a quick look at how we can centralize our libraries and tools to make them easily searchable. More importantly, link all those pieces together to make them discoverable.
About the speaker: Founder of Protosens SRL
After navigating through the Clojure ecosystem for many years, Adam Helins founded Protosens, a consulting company notably specialized in this wonderful language. He is also actively working on Convex.world, a super fast blockchain heavily inspired by Clojure constructs.

Sung-Shik Jongmans

Automated Correctness Analysis for core.async

It's been over nine years ago since Rich Hickey wrote the first blog post on the core.async library. At the time, Rich already hinted at the potential for "automated correctness analyses" but also stated that "no work has been done on that front for core.async as yet". To celebrate almost a decade of channels in Clojure, let's take another swing at this!
In this talk, I'll present the Discourje project. In a nutshell, the project allows Clojure programmers to specify communication patterns for core.async usage (as a kind of textual sequence diagrams), after which a run-time monitor can automatically verify channel traffic for compliance. The main correctness guarantee is safety: puts/takes that are forbidden by the spec never take effect (an exception is thrown instead). The project has mathematical foundations and originates from research on type systems in Computer Science, but that's all outside the scope of this talk.
About the speaker: Assistant professor at Open University of the Netherlands
Sung-Shik Jongmans is assistant professor at Open University of the Netherlands and researcher at the Dutch National Research Institute for Mathematics and Computer Science (CWI, Amsterdam). His interests include programming languages, concurrency theory, and software engineering. Since he met Clojure a few years back, he's been excited to use the language to explore new research ideas. His long term aim: to make concurrent programming easier.

Jordan Miller

Got a Guru?

Do you have a mentor? You definitely should. Guidance and mentorship is essential to growth and is relevant during all stages of an engineer’s career. Intentionally forming and maintaining these types of positive relationships ensures your professional progression and inspires a sense of well-being. Giving and receiving knowledge has a trickle down effect that touches and changes lives. Engaging in this practice can be one of the most impactful things that you do.
For some folks, establishing this type of interpersonal connection comes less naturally, especially as we advance in our careers. Going beyond *why* seeking and offering guidance is vital, we’ll explore *how* to form this type of alliance from an architect's perspective. Visualizing how to build, integrate and sustain these processes so that kinship based on meaningful knowledge sharing becomes second nature. Illustrating practices that work on an individual level and that have the propensity to scale to create a culture of mentorship within any group, community or company.
At Vouch.io we've carefully cultivated this kind of culture organically and would love to share our secrets with the larger clj(s) community!
About the speaker: Software Engineer at Vouch.io
Jordan Miller is an autodidact, a she/her, a modern dev, a dev for the millennium. She enjoys cats, clojure(script) and community building. Sometimes known by her online pseudonym "Lambduhh" she is a Cognitect sponsored content creator, podcast host, conference speaker and organizer (and soon to be author!) She resides in sunny Sarasota, FL where you may catch her spinning fire hoop, doing aerial dance, practicing circus arts or inspiring others by producing instructional technical content on multiple platforms. Here are some places to find her content https://linktr.ee/lambduhhh

Michiel Borkent

ClojureScript reimagined

For the last three years I've occupied myself mostly with building new Clojure tooling and libraries: clj-kondo, babashka, nbb, etc. These tools opened up use cases for Clojure(Script) that were previously less feasible and also attracted new audiences to Clojure. With babashka it is very easy to sneak in a small script at your non-Clojure job. Similar for nbb: writing a Node script for your colleagues who just use NPM became easy.
What if we could pull off the same trick with ClojureScript in the browser?
What if sneaking in a little bit of ClojureScript into a JavaScript project was as easy as installing one extra library in your package.json? What if interop between JavaScript and .cljs files was seamless? What if JS devs could still use Node for all your tooling and didn't have to pull in a JVM? What if you could publish libraries with compiled CLJS to NPM that all share the same CLJS core functions?
Would this increase the adoption of ClojureScript in the mainstream? Would this approach be helpful to existing ClojureScript users for a new category of projects? In this talk we're getting a glimpse of what that may look like.
About the speaker: Clojure OSS developer
Michiel Borkent, also known as @borkdude on the web, is an open source software developer who loves Clojure. He is the author of clj-kondo, babashka, SCI, nbb and other tools that you might have heard of. When he is not coding, he likes to go for a walk outdoors or eat vegetables!

Code of Conduct

All attendees, speakers, sponsors and volunteers at our conference are required to agree with the following code of conduct. Organisers will enforce this code throughout the event. We expect cooperation from all participants to help ensure a safe environment for everybody.

Need Help?

You can always reach out to us at events@clojuredays.org or on twitter.

The Quick Version

Our conference is dedicated to providing a harassment-free conference experience for everyone, regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, ethnicity, religion (or lack thereof), or technology choices. We do not tolerate harassment of conference participants in any form. Sexual language and imagery is not appropriate for any conference venue, including talks, workshops, parties, Twitter and other online media. Conference participants violating these rules may be sanctioned or expelled from the conference without a refund at the discretion of the conference organisers.

The Less Quick Version

Harassment includes offensive verbal comments related to gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, ethnicity, religion, technology choices, sexual images in public spaces, deliberate intimidation, stalking, following, harassing photography or recording, sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual attention.

Participants asked to stop any harassing behavior are expected to comply immediately.

Sponsors are also subject to the anti-harassment policy. In particular, sponsors should not use sexualised images, activities, or other material. Booth staff (including volunteers) should not use sexualised clothing/uniforms/costumes, or otherwise create a sexualised environment.

If a participant engages in harassing behavior, the conference organisers may take any action they deem appropriate, including warning the offender or expulsion from the conference with no refund.

If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of conference staff immediately. Conference staff can be identified as they'll be wearing branded clothing and/or badges.

Conference staff will be happy to help participants contact hotel/venue security or local law enforcement, provide escorts, or otherwise assist those experiencing harassment to feel safe for the duration of the conference. We value your attendance.

We expect participants to follow these rules at conference and workshop venues and conference-related social events.