The Hallway Track: Clojure/Conj 2023 in Durham

These are my notes and impressions from the hallway conversations during Clojure/Conj 2023 conference. I'm sharing them in the hope of capturing some of the atmosphere and provide a peek into what people in the Clojure community are up to and what companies are using Clojure.

General observations

  • Database announcements:
  • Several non-JVM dialects of Clojure are appearing:
  • Attendance:
    • Everyone was excited to be able to mingle and chat.
    • Mostly returning Conj’rs.
    • Lots of people, my guess is more than 500.
    • Rich’s keynote was packed to capacity.
  • Hiring
    • There was a conspicuous absence of “we are hiring” pitches. Attendees and sponsors were recruiting customers and clients rather than employees this year.
  • Swag
    • Metosin had an awesome black “programmer” t-shirt, bag, and chocolate!
    • The Conj trucker hat is cool
  • Themes
    • Appreciation of community the opportunity to congregate
    • High adoption of Malli and Reitit
  • Talks
    • All of the talks were excellent, I highly recommend watching them on ClojureTV
  • Travel
    • Passing over the magnificent snow-capped mountains of America is an inspiring thing to experience.

Conversations


  • Toby (Shortcut)

    • House construction

    • Hiking destinations

    • Dr Wolf chess app

    • Wishes there was a mid-priced support tier for Datomic; will the free tier be less responsive now?

  • Jon

    • Thinking about how to mine his own data

  • Mark (Metabase)

    • The importance of asking “what’s the problem?”

  • Francis (Shortcut)

    • We decanted our Datomic DB

    • Constant time lookup was crucial to decanting

    • Reading the TX log, running transformations

      • Throwing stuff away: attributes we don’t use, entities like VCS data (we don’t need to replicate git)

      • Large strings

    • Precompute the changes we need in a database

    • SQLite is fast but not fast enough for billions of entities. We used an on-disk hash table. Perfect hash, immutable

    • We now have less work per TX, more storage runway, and 20% speedups

    • Backups are 7x faster

    • Don’t use full text index

    • Thinking about how to optimize blobs and working on the GraphQL API

  • Dan (Metabase)

    • Great to see a fellow member of the LiSP reading group

  • Paul (sovaSage)

    • Solving sleep apnea

    • It would have been nice to have more time to discuss Rich’s keynote

  • Daniel (Shortcut)

    • Made a Clojure dialect PiLisp 

    • Pipe can be used for concatenative style

    • Dart is a good target, it’s fast

  • Evan (Shortcut)

    • Concerned about the rise of the unnecessary use of Kerbenutes

  • Denise (Viasat)

    • Starting a new project Java -> Clojure rewrite

    • Challenges of managing teams, and the value of hearing when people feel that it’s working

    • Launching rockets; launch delays are costly

    • Suggested a templates gallery of diagrams for Hummi.app would help new users figure out what they can make. Editable examples.

  • Aaron (Viasat)

    • Theory of constraints, Flying logic is awesome for diagrams, but expensive

    • Causal reasoning is interesting and applicable to medical/ethical questions

  • George (Cognitect/NuBank)

    • Love the Clojure community

      • Learning new things

      • Tight knit

      • Everyone is interested in what other people are doing

      • Less competition.

      • Approachability

      • More personal and intimate that big tech conferences

      • Contactable

      • Niche in numbers, but still able to have Clojurists together

    • Embracing change, things change, we evolve

    • I like Onyx. I used it for Climate data analysis

  • Jeremy Taylor (Juxt)

    • I’ve dedicated my life to building the cathedral of a DB XTDB, and it’s really good

  • Arni (Gaiwan)

    • New project: Ornament for styling. Particularly helpful when debugging to be able to connect named classes to your code.

    • BI and reporting for Datomic incoming

  • Dave (Kevel)

    • Created a music language Alda

    • Interested in diagrams, mostly using PlantUML, knows the → longer arrow trick.

  • Finn (Juxt)

    • Working on XTDB Cloud

  • Josh (RoamResearch)

  • Connor (RoamResearch)

    • It’s all about interface: data entry widgets and connections

    • We are doing everything all at once, experimenting on ideas to make the future tool for thought.

  • Ivan (Shortcut)

    • Data driven test scenario evaluator that creates and binds entities

  • Eli (Shortcut)

    • Strategy in the bird game is to gather eggs

  • Nathan

    • Mining PDF data

    • SQL

    • Lambda Island

    • Institutional research, students, reports, dashboards, classes need

    • Detective ability to explore

    • Nil, it’s always nil

    • Boolean edge cases are mysterious

  • Ravi (Nilenso)

    • Healthcare, public record

  • Deepa (Nilenso)

    • Solving hypertension. An ignored health issue tied to lifestyle.

    • Diagrams should be intuitive, shouldn’t be ugly

    • Excalidraw is good, but too much energy wasted dragging things around

    • Mermaid is good for seq diagrams

  • Jim

    • The best things come from one person who thinks deeply about one thing

  • Christophi

    • Recommended a book about the benefits of a diverse background: Range by David Epstein.

  • Chris (Treasury Prime)

    • Most popular project is chessboardjs from 2011, just rewrote v2 in ClojureScript

    • Played a lot as a youth, 1800 rated. (That means he can beat most chess players every time).

    • HumbleUI is awesome: Smooth, animation, save/reload

    • Writing a FAQ for parinfer to answer the many questions he gets about the status of the project.

    • Lua is convenient for plugins

    • Discussed HSDS and .app TLD requiring HTTPS

    • The sponsors are mostly consulting firms this year

    • Remembered my previous hallway track drawings. I haven’t been sketching this Conj, but he reminded me that I do like drawing charactures




  • Alex (Cognitect/NuBank)

    • I wish tool makers would adopt the error reporting features in Clojure 1.10+

    • Deps has finally overtaken Leiningen in popularity in this year’s survey.

  • Elango (Google)

    • The Clojure community is very approachable

  • Brandon

    • Saw the gap in the diagram solution space

    • Working with security questionnaire forms using Mali

    • Enjoys Clojurians Slack #ClojureScript channel

  • Russell

    • Electrical diagram layouts are tough due to the tendency towards overlapping lines

  • Dustin (Electric)

    • CSS styling spreadsheet controls

  • Proctor (Guaranteed Rate)

    • CLJS AWS Lambda functions

  • Kimmo (Metosin)

    • Lots of Clojure happening in Finland

  • Daniel2 (Guaranteed Rate)

    • Starting a new Mortgage underwriting automation (ML)

  • Mathew

    • How can we best help people learn Clojure?

  • Jayden

    • Building an e-commerce platform (like Shopify)

    • Interested in building a tool for thought

  • Carin

    • Book recommendation: The murderbot diaries

  • Janet (Freelance)

    • Enjoying the opportunity to network

  • David (Vouch)

    • Life is busy when you have a 5 year old!

  • Jeaye (EA)

    • Building Jank

      • Cling is a pain because releases are inconsistent

      • Yes, you can use .cljc instead of .jank if you want to

      • let* instead of let

    • Pricing drives perceptions of quality

  • Rich

    • Turns up to the talks, mixes with everyone

    • Design, preparing to design, stuff happens before you can design

    • There’s more to it than hammock time

    • Communicating progress and backtracking

      • Tickets

    • Define the problem

    • List possible solutions

    • Create a criteria for evaluating solutions

    • Sleep on it before you code

    • Diagrams are useful for planning and documenting




Final thoughts


My favorite part of the conference came from a humorous, cheeky, and insightful audience question: “Is there the risk of an unintended consequence of putting Clojure code measuring 7 lines in length right next to the output measuring hundreds of lines of length and causing a world wide crash in interest in languages like Java? On a more serious note, I’ve heard that Clojure has a weakness in error messages. Has the answer been staring us in the face? Can we compile Clojure to Rust and get the error messages from Rust?” Earning applause and laughs from the entire audience who could see both the appeal of the idea, and the funny/ironic side of it. To me this exemplified that Clojurists are innovative thinkers, open to new ideas, and retain a keen sense of humor. I really enjoyed soaking up the ideas, ambitions, enthusiasm, and humor from everyone I met at the Conj.