Supported by: TechAscent markTechAscent logo

Sessions

Welcome to the Macroexpand 2025 sessions! This year we have two focused conferences:

All Sessions

Macroexpand-Noj Sessions 🔬

Data Science with the Noj toolkit • October 17-18, 2025

Book Basket Analysis: A Beginner's Journey with Scicloj

Tomas Baranek

Abstract

As a newcomer to data science and Scicloj, I'll share my exploration of market basket analysis applied to publishing sales data. This case study demonstrates how even data science beginners can implement correlation analysis and the Apriori algorithm using Clojure tools. I'll walk through my learning process with Tablecloth for data manipulation and Kindly for visualizations, focusing on practical solutions rather than theoretical complexity. Join me to see how entry-level Scicloj implementations can transform customer order histories into meaningful cross-selling recommendations, proving that useful data insights are accessible without deep expertise.

Speaker

Tomas Baranek
Tomas Baranek

Tomáš Baránek is a blend of publisher and programmer who brings a beginner's curiosity to data science with Clojure. As co-founder of Jan Melvil Publishing, he leads a small independent house that has released over 166 high-quality non-fiction titles since 2007, with average sales of 10,000 copies per book. Tomáš graduated in Mathematical Informatics from Masaryk University in 1996, and after decades in publishing, returned to coding in 2022—working almost exclusively in Clojure. His background bridges technical and literary worlds, allowing him to approach basket analysis from both perspectives: as a publisher seeking business insights and as a programmer exploring Scicloj's capabilities. In 2021, he co-founded Servantes, developing software for modern publishers worldwide. This presentation reflects his recent journey, having attended machine learning classes at his alma mater last year, and represents his practical experiments applying these concepts to his publishing business with Clojure tools. He lives in the Czech Republic, in city of Brno.

Exploring the Breath-HRV Connection with Noj

Pierre BailleTiril ElstadDaniel Slutsky

Abstract

Does your heart beat like a clock? No. It turns out that your heart rate varies. How much it varies, that is the question. Heart Rate Variability is a healthy phenomenon that relates in various ways to sleep, stress, age, various health conditions, and more. In this talk, we will see how it relates to our breath. We will learn a bit about both, see some visualizations, and demonstrate their relation through data analysis with Tablecloth, Tableplot, Clay, Fastmath, and JDSP. This is a real-world application of Noj for health data, presented by the team of Endor, a Clojure startup building a wellness app using wearable biometric data.

Speakers

Pierre Baille
Pierre Baille

Pierre comes from a music background and transitioned to programming gradually by trying to generate music. He works at Endor Global and is interested in generative music/graphics and programming languages.

Tiril Elstad
Tiril Elstad

Tiril is a medical doctor, HRV researcher, yoga teacher and CEO of Endor Global. Her interest is holistic health and well-being.

Daniel Slutsky
Daniel Slutsky

Daniel Slutsky is a data scientist at Endor Global, part of a team of Clojurians building a wellness app using biometric data from wearable devices. His main focus in recent years has been the Scicloj group, where he is involved in community building and co-maintaining a few of the tools and libraries. His approach towards open-source communities is drawn from his past experiences in various activist groups.

Macroexpand 3

Abstract

This meeting is part of the macroexpand gatherings series. It will focus on discussing the state of our community and initiating new projects for the near future. The session will begin by a few brief experience reports and proposals by participants. Then we will expand the discussion till we converge to actionable steps we will follow up on.

Growing a DSL

Daniel Szmulewicz

Abstract

Bioscoop is a DSL to program videos (instead of non-linear editing). It builds upon FFmpeg's filtergraphs, but it transforms the notoriously complex and error-prone string-based syntax with a structured, data-first approach amenable to composition and enhanced programmability.

Speaker

Daniel Szmulewicz
Daniel Szmulewicz

Functional programmer. Closet philosopher. Emacs meshugge.

Noj Foundations

HaroldDaniel Slutsky

Abstract

This will be a tutorial session about some of the relevant high-performance libraries behind Noj such as ham-fisted, dtype-next, and tech.ml.dataset. See the session we had with Harold last May -- you may expect something similar.

Speakers

Harold
Harold

Owner: TechAscent - Mathematician | Software Engineer | Cloud (AWS) | Clojure | JS | Data Science | AI/ML

Daniel Slutsky
Daniel Slutsky

Daniel Slutsky is a data scientist at Endor Global, part of a team of Clojurians building a wellness app using biometric data from wearable devices. His main focus in recent years has been the Scicloj group, where he is involved in community building and co-maintaining a few of the tools and libraries. His approach towards open-source communities is drawn from his past experiences in various activist groups.

Noj Intro

Daniel Slutsky

Abstract

We will practice basic data exploration with Tablecloth and Tableplot, and maybe a few other parts of the Noj toolkit. It will be a free-form session with audience participation.

Speaker

Daniel Slutsky
Daniel Slutsky

Daniel Slutsky is a data scientist at Endor Global, part of a team of Clojurians building a wellness app using biometric data from wearable devices. His main focus in recent years has been the Scicloj group, where he is involved in community building and co-maintaining a few of the tools and libraries. His approach towards open-source communities is drawn from his past experiences in various activist groups.

Computer Graphics with Clojure, LWJGL, and Fastmath

Jan Wedekind

Abstract

sfsim is a space flight simulator under development. It makes use of Clojure, LWJGL, and Fastmath among other libraries. More than half of the code deals with graphics. This talk gives a short introduction using LWJGL's cross-platform OpenGL bindings to get started with rendering data from NASA's CGI Moon Kit.

Read more at Clojure Civitas

Speaker

Jan Wedekind
Jan Wedekind

Jan studied compiler construction and robotics and later did a PhD in computer vision. He currently works in industry developing inspection software. His first programming languages were Omikron Basic and later Borland Pascal. In industry he used C++, Ruby, and Python. In his spare time he got interested in Ruby, GNU Guile, and finally Clojure.

Clojure Civitas Workshop

Timothy Pratley

Abstract

We will explore the workflow and ergonomics for publishing at Clojure Civitas, the new platform where Clojurians share their ideas and explorations.

Speaker

Timothy Pratley
Timothy Pratley

Timothy grew up exploring jungles, fighting kangaroos, surfing, and programming computers. After a career of leveraging computational graphs for companies he is now building Hummi.app, a diagramming app that puts the power of graphs in the hands of individuals.

Computing with units in Clojure

Teodor Heggelund

Abstract

A quantity's unit plays a prominent role in science and engineering. Is it 5 milliseconds, 5 tons or 5 light-years? If you've ever named your variables now-instant, time-ms or force-kn to convey the interpretation of a number, this talk is for you!

Come learn about units and unit systems, demonstrated in a Clojure REPL.

Speaker

Teodor Heggelund
Teodor Heggelund

Teodor has designed floating bridges, hotels and high-pressure containers with engineering, and built tools for engineers, journalists and knitters with software. He wants great tools and workflows for computation.

Water Quality - Remote Sensing

Luke Zeitlin

Abstract

Using multispectral satellite imagery in cloud-optimized geotiffs to perform simple band-ratio indices of water quality in the browser in a Clay notebook.

Read more at Clojure Civitas

Speaker

Luke Zeitlin
Luke Zeitlin

I'm a programmer, musician and clojure enthusiast and former co-founder of Gybe, a water quality remote sensing startup. I'm interested in music, DSP, functional programming and plants.

Clay Workshop

Timothy Pratley

Abstract

We will learn about how to use Clay for interactive data visualization, documentation, and publishing.

Speaker

Timothy Pratley
Timothy Pratley

Timothy grew up exploring jungles, fighting kangaroos, surfing, and programming computers. After a career of leveraging computational graphs for companies he is now building Hummi.app, a diagramming app that puts the power of graphs in the hands of individuals.

Elements of Malli

Ben Sless

Abstract

Malli is a schema validation library, similar to spec. Unlike spec, it sets its aim higher, aiming for all schema-related needs, like explanation, coercion, parsing, generation, and the best performance possible. We'll go over Malli's building blocks, how it differs from spec, how to use it effectively, and engage in a non trivial example.

Speaker

Ben Sless
Ben Sless

Software engineer, father of three, enthusiastic Clojurian

Functional Quantum Computing with QClojure

Ludger Solbach

Abstract

QClojure is a functional quantum computing library for Clojure with backend protocols, simulation backends and visualizations. This talk gives a short introduction to quantum computing and the goals and features of QClojure. In a short live coding session we will create some quantum states and circuits and run some algorithms on a quantum computing simulation. We will also address some implementation topics like complex linear algebra and quantum algorithms. The talk will close with future plans for QClojure, like running on real quantum hardware and quantum machine learning (QML).

Speaker

Ludger Solbach
Ludger Solbach

Ludger Solbach is a software architect for 'msg for automotive' in Germany. He is the creator of Overarch, a lightweight system modeling and visualization tool and QClojure, a library for programming quantum computers. His favorite programming language by far is Clojure, a modern functional LISP. He uses it for his open source work, at work when feasible, and to create models for his 3D-Printer.

Rolling Regressions in Clojure for Real-Time Alpha and Beta Monitoring

Matthias BuehlmaierEdward WidjajaTanvi Nagar

Abstract

This paper / talk presents a functional, reproducible implementation of rolling regression in Clojure to estimate time-varying alpha(α) and beta(β) for student-managed portfolios at the Centre for Investment Management (CIM), The University of Hong Kong. Unlike traditional CAPM tests based on passive index data, our analysis uses actual (synthetic) trades executed by junior portfolio managers- undergraduate students who manage simulated equity portfolios over multiple semesters.

Read more at Clojure Civitas

Speakers

Matthias Buehlmaier
Matthias Buehlmaier

Matthias Buehlmaier is an associate professor of teaching in finance and the BBA(IBGM) program director at HKU Business School, University of Hong Kong (HKU). He is a winner of several teaching and research awards, e.g. the Outstanding Teaching Award and the Teaching Innovation Award granted by HKU. His research has appeared in the Review of Financial Studies (Oxford University Press) and has been featured in the Harvard Law School Forum on Corporate Governance and Financial Regulation.

Edward Widjaja
Edward Widjaja

Edward Widjaja is a final-year Data Science and Engineering student at the University of Hong Kong. He's always been interested in anything nerdy; from algorithms and trading systems to quirky side projects, he is now channeling that curiosity into finance. Currently taking a semester off to work at a bank, he's exploring how emerging technologies intersect with financial markets. His goal is to build a career that combines data-driven decision-making with practical financial solutions. In his spare time, Edward enjoys swimming, gaming, and chatting about anything from market trends to tech experiments, so feel free to reach out!

Tanvi Nagar
Tanvi Nagar

Tanvi Nagar is a final year student at the University of Hong Kong, studying International Business and Global Management. She is passionate about mathematics, finance and their integration with technology - which is why she chose Information Systems and Analytics as her second major. Hoping to build a career in finance, she has solidified her technical and professional skills through roles in Financial Services Consulting, Corporate Banking and Wealth Management. Being a curious mind, she is always looking to broaden her horizons through learning about new things, travelling the world and plays badminton in her free time along with reading voraciously.

Macroexpand-Deep Sessions 🤖

The first Clojure AI conference • October 24-25, 2025

Building Event Sourced Agentic Applications with Grain

Cameron Barre

Abstract

Learn how ObneyAI uses its open source Clojure framework called Grain to build Event Sourced applications with first-class agentic workflows that blend the best of the Clojure and Python ecosystems.

Speaker

Cameron Barre
Cameron Barre

Cameron Barre has been a professional Clojure developer since 2016 and is currently CTO at a small consultancy in the AI engineering space called ObneyAI.

Building Realtime Voice AI Agents with Clojure - Best Practices

Stoica Ovidiu

Abstract

Exploring how to build reliable voice AI agents in a functional data-driven way with Clojure. This talk will go over all of the pieces involved in voice ai from best models to use, turn detection, context management to scripting and instruction following to hosting and scaling. By the end you will better understand what it takes to build highly reliable voice AI agents with Clojure

Speaker

Stoica Ovidiu
Stoica Ovidiu

Ovidiu Stoica is a software developer with 10 years of experience, out of which the last 5 are in Clojure. He has been building voice AI agents for the last 1.5 years for enterprise clients and is the creator of simulflow - a voice AI agent clojure framework.

Architecting reliability in LLM systems

Siavash Mohammady

Abstract

Large Language Models have captured the imagination of developers worldwide, yet many LLM-powered systems fail in production despite impressive demos. The root cause is often not technical incompetence, but rather an over-optimistic faith in LLM capabilities without accounting for their fundamental limitations. Just as an engineer hanging a heavy shelf wouldn't rely solely on manufacturer specifications without safety margins, building reliable LLM systems requires a "Murphy's Law" mindset that anticipates failure modes. Through our experience building StartCheck, a production document analysis platform, we've learned that true reliability comes from understanding and designing around core LLM limitations: input quality sensitivity, task complexity degradation, reasoning constraints, output length trade-offs, hallucinations, and consistency challenges.

Speaker

Siavash Mohammady
Siavash Mohammady

Siavash is a Clojure developer with a knack for trying new things and crafting solutions through creative combinations of technology. He's worked on GIS software for agriculture, building a low-code BI tool powered by Clojure, LLMs, and rule engines to extract key reports for executives. These days, he's working on startcheck.xyz, an automatic pitch deck evaluation software.

Experimenting with LLM Subliminal Learning in Clojure

Justin Tirrell

Abstract

I read the paper "Subliminal Learning: Language models transmit behavioral traits via hidden signals in data" and wanted to explore these concepts myself. In this talk I replicate some of the results from the paper interactively in a live coding demo. Specifically, we will look at running multiple interdependent batch processing jobs from a Clojure REPL.

Speaker

Justin Tirrell
Justin Tirrell

I'm Justin, I'm a Clojure maximalist and independent software developer. I like working on trading systems and GUIs and rolling my own software tools and yak shaving.

2D CFD Simulation based optimization of airfoils using freecad & openfoam

Siavash MohammadySiyoung Byun

Abstract

TBA

Speakers

Siavash Mohammady
Siavash Mohammady

Siavash is a Clojure developer with a knack for trying new things and crafting solutions through creative combinations of technology. He's worked on GIS software for agriculture, building a low-code BI tool powered by Clojure, LLMs, and rule engines to extract key reports for executives. These days, he's working on startcheck.xyz, an automatic pitch deck evaluation software.

Siyoung Byun
Siyoung Byun

Siyoung Byun is currently a freelance fullstack Clojure developer living in Seoul, South Korea. She studied Astrophysics for her undergrad in Canada, where she first got into programming and data analysis while running simulations of dying stars crashing into each other. Ever since she was introduced to Clojure at a previous employer in 2018, it quickly became her favorite programming language and her passion. Beyond software development and data analysis, she likes to hike, bike, knit, sew and snuggle with her cat in her free time.

Building QClojure with AI assistance

Ludger Solbach

Abstract

QClojure is a functional quantum computing library for Clojure with backend protocols, simulation backends and visualizations. It has been built with AI assistance right from the beginning. Four months into the implementation, I have gained some experience with AI assisted coding, which I'd like to share in this talk.

First I like to give an overview of QClojure to set the stage. I will show the tools and the workflow for AI assisted coding, including some prompts. Then we look at the actual process of working with the AI. Finally I will give you some of my best practices and summarize with the lessons learned.

Speaker

Ludger Solbach
Ludger Solbach

Ludger Solbach is a software architect for 'msg for automotive' in Germany. He is the creator of Overarch, a lightweight system modeling and visualization tool and QClojure, a library for programming quantum computers. His favorite programming language by far is Clojure, a modern functional LISP. He uses it for his open source work, at work when feasible, and to create models for his 3D-Printer.

A Clojure-based Portfolio Analysis Tool based on LLM Integration

Matthias BuehlmaierEdward WidjajaTanvi Nagar

Abstract

This research paper / talk presents the design and implementation of a Portfolio Analysis Program built almost entirely in Clojure for The University of Hong Kong's Center for Investment Management.

The program enables users to construct custom portfolios from individual stocks or asset classes, evaluate performance using key financial metrics, and visualize results interactively.

What sets this tool apart is its integration of financial market narratives through a Large Language Model (LLM), which contextualizes portfolio performances using real-time financial news.

Read more at Clojure Civitas

Speakers

Matthias Buehlmaier
Matthias Buehlmaier

Matthias Buehlmaier is an associate professor of teaching in finance and the BBA(IBGM) program director at HKU Business School, University of Hong Kong (HKU). He is a winner of several teaching and research awards, e.g. the Outstanding Teaching Award and the Teaching Innovation Award granted by HKU. His research has appeared in the Review of Financial Studies (Oxford University Press) and has been featured in the Harvard Law School Forum on Corporate Governance and Financial Regulation.

Edward Widjaja
Edward Widjaja

Edward Widjaja is a final-year Data Science and Engineering student at the University of Hong Kong. He's always been interested in anything nerdy; from algorithms and trading systems to quirky side projects, he is now channeling that curiosity into finance. Currently taking a semester off to work at a bank, he's exploring how emerging technologies intersect with financial markets. His goal is to build a career that combines data-driven decision-making with practical financial solutions. In his spare time, Edward enjoys swimming, gaming, and chatting about anything from market trends to tech experiments, so feel free to reach out!

Tanvi Nagar
Tanvi Nagar

Tanvi Nagar is a final year student at the University of Hong Kong, studying International Business and Global Management. She is passionate about mathematics, finance and their integration with technology - which is why she chose Information Systems and Analytics as her second major. Hoping to build a career in finance, she has solidified her technical and professional skills through roles in Financial Services Consulting, Corporate Banking and Wealth Management. Being a curious mind, she is always looking to broaden her horizons through learning about new things, travelling the world and plays badminton in her free time along with reading voraciously.

Panel: broader implications of AI

Kira HoweRay McDermottJosh GloverSiavash MohammadySiyoung Byun

Abstract

We will discuss the broader implications of the AI rush, a few of the ways it affects our lives, and what we might be able to do about it.

Speakers

Kira Howe
Kira Howe

Kira's been writing software for the past decade with a focus on data-intensive web apps and a particular interest in Clojure programming and data visualization. She loves open source development, fostering communities online and in-person, and learning new things. When she's not at her desk, you can find Kira teaching yoga, playing violin, or running with her dog.

Ray McDermott
Ray McDermott

Ray has decades of experience writing commercial software for databases, finance, manufacturing and cloud services. He is a Clojure enthusiast and advocate and produces and participates in several podcasts and YouTube channels. The impact of hyper-scaled LLMs is the subject of his most recent project. While not raging, he’s gardening, out on a bike or in the woods with a camera.

Josh Glover
Josh Glover

Josh is a software engineer, engineering leader, podcast host, and union organiser hailing from Stockholm. A technology enthusiast from early in life, he has been becoming increasingly aware of the social impacts of technology. He advocates a Luddite perspective, where the worth of technologies is determined by whether they contribute to or detract from human thriving.

Siavash Mohammady
Siavash Mohammady

Siavash is a Clojure developer with a knack for trying new things and crafting solutions through creative combinations of technology. He's worked on GIS software for agriculture, building a low-code BI tool powered by Clojure, LLMs, and rule engines to extract key reports for executives. These days, he's working on startcheck.xyz, an automatic pitch deck evaluation software.

Siyoung Byun
Siyoung Byun

Siyoung Byun is currently a freelance fullstack Clojure developer living in Seoul, South Korea. She studied Astrophysics for her undergrad in Canada, where she first got into programming and data analysis while running simulations of dying stars crashing into each other. Ever since she was introduced to Clojure at a previous employer in 2018, it quickly became her favorite programming language and her passion. Beyond software development and data analysis, she likes to hike, bike, knit, sew and snuggle with her cat in her free time.

Jank & Torch: Native Deep Learning in Clojure

Monty BichounaShantanu SardesaiJianling Zhong

Abstract

In the field of AI, Python is the current reigning champ. But the Python ecosystem's dirty secret is that most of the libraries holding the system together are wrappers around C/C++ libraries that do most of the important work. Jank is the native Clojure dialect built on compiler technologies like LLVM, giving it access into the same native libraries powering the Python ecosystem. As Jank heads towards its first alpha release, its most highly anticipated feature, seamless C++ interop is already capable of wrapping and using native C++ libraries for machine learning and artificial intelligence. In this talk, we will show how to leverage Jank's C++ interop to wrap the most popular deep learning library in usage right now, libtorch, which most would have known through its Python frontend, PyTorch. As a proof of concept, we will display an implementation of GPT-2, the LLM released in 2019 using our Torch wrapper. This talk will give Clojure practitioners interested in using Clojure for ML/AI a glimpse into the future of how important C++ libraries can be utilized with Jank.

Speakers

Monty Bichouna
Monty Bichouna

Monty is an aspiring compiler engineer who enjoys Lisps and always wanted a reason to learn Clojure. He found an excellent reason with jank, the native Clojure dialect.

Shantanu Sardesai
Shantanu Sardesai

Shantanu is a budding Clojure programmer and the newest member of the jank mentees team. With a background in mainstream languages like Kotlin and TypeScript, and a longstanding fascination with Clojure, compilers, and runtimes, he was naturally drawn to jank.

Jianling Zhong
Jianling Zhong

Jianling is a software engineer with a focus on machine learning. He has always been intrigued by how compilers work. He has been hacking on jank, even though he had little experience with Clojure! The work of bringing torch to jank is right up his alley.

Panel: AI assistants

Eric DalloPeter StrombergBruce Hauman

Abstract

We will have a conversation with a few of the toolmakers behind Clojure's main AI assistants.

Speakers

Eric Dallo
Eric Dallo

Eric Dallo is a Emacs, NixOS fanatic, he loves programming, especially when focused on dev tooling, He maintains clojure-lsp, ECA, deps-bin, lsp-mode, and other related libraries, Eric works with Clojure at Nubank and currently is focused on AI pair programming multi-editors with ECA.

Peter Stromberg
Peter Stromberg

Peter Strömberg is a curious coder since 40+ years and is extra fascinated by making software that he uses do new things. These days he practically lives in VS Code and is making Clojure related extensions for it. Peter maintains Calva, Joyride, and Calva Backseat Driver. Backseat Driver is an AI extension for VS Code Copilot, giving the AI tools for using the Clojure REPL, as well as for structural editing.

Bruce Hauman
Bruce Hauman

Bruce Hauman is a prolific toolmaker and long-time contributor to the Clojure community, perhaps best known as the creator of Figwheel—the build tool that introduced live code reloading and made real-time browser development a reality for ClojureScript developers. Bruce’s legendary 2014 “Flappy Bird” demo not only turned heads, but set a new standard for interactive coding, enabling developers to see their changes instantly and stay in the creative flow. Bruce also built Devcards, a library for interactive documentation that brings a visual REPL experience to ClojureScript, and Rebel Readline, the feature-rich REPL for Clojure and ClojureScript, complete with syntax highlighting, code completion, and inline documentation. Bruce’s latest project, Clojure MCP, tackles the next frontier: enabling AI assistants to work Clojure projects by connecting directly to live REPLs, providing real-time feedback and validation to improve the quality of AI-generated Clojure code. Beyond his tool building chops, Bruce is guided by a profound respect for users and a conviction that developer tooling should be radically better—simple, powerful, and joyful to use. He’s also a fan of the outdoors: an avid canoe tripper, Appalachian Trail thru-hiker, and, currently, the hands-on renovator of a former church-turned-home in Saskatchewan.

Building Dynamic Entity Extraction with Bosquet

Žygimantas Medelis

Abstract

Every text processing application needs to answer a question: what is this text about? Named entity extraction is one part of the answer to this. It identifies and links words to real-world entities—turning "Macroexpand 2025" into structured data about a specific technology conference happening in a specific year.

This extraction process involves multiple steps that can be implemented using LLMs. This presentation demonstrates how Bosquet, an LLM orchestration library, can help with building entity extraction pipelines.

Speaker

Žygimantas Medelis
Žygimantas Medelis

Author of Bosquet, Clojure user since its v1.0. I have been working with unstructured text data processing for over a decade - hence the topic of the talk.

Compiling Probabilistic Programs to Neural Networks

Christian Weilbach

Abstract

We will take a look at how one can write a stochastic simulator for a simple business model, how embeddings and a graph neural network architecture for the compute graph of the simulator can be constructed, and how this neural network can be trained to provide fast inference over unknown variables of the simulator to guide the business process in real-time. We will then discuss the underlying methodology of probabilistic programming more systematically through the Daphne compiler, and how it provides different ways to compile a subset of Clojure simulator programs to neural network architectures, and as of lately also CUDA. The goal of this discussion is to provide understanding of both the methodology and applications of probabilistic programming, as well as to gather more feedback from the Clojure community to render Daphne not only an academic platform, but also more practical. One such potential practical integration we will discuss is with LLMs that can help with the simulator construction.

Speaker

Christian Weilbach
Christian Weilbach

Christian Weilbach is a long-time Clojure developer working on distributed systems such as replikativ, Datahike, and supporting libraries. He has also worked with Clojure during his PhD on probabilistic programming, besides work on different simulators and inference systems in Julia, Python and C++. He has published many machine learning & AI related papers in top tier venues and is working on an organizational framework of life & intelligence (both in theory and implementation).

Bridging Worlds: Building Graph Neural Networks with Clojure and Python Interoperability (+ Practice)

Jelena Losic

Abstract

Discover how to build Graph Neural Networks by combining Clojure's functional elegance with Python's ML ecosystem. This talk demonstrates practical interoperability using libpython-clj to call PyTorch Geometric from Clojure, creating powerful GNN solutions while maintaining REPL-driven development workflows. We'll live-code a complete Graph Convolutional Network, from data ingestion to visualization, showing how Clojure's immutability and Python's deep learning capabilities create a useful combination for modern AI development. After the talk and discussion, we will practice some things in the REPL together: using PyTorch from Clojure, and maybe more.

Speaker

Jelena Losic
Jelena Losic

I am Jelena, functional programming developer with 10 years of industry experience and mathematical educational background. I am curious about the networks and laws that are applicable in large scales, leading to better understanding of big data.


Learn more about Macroexpand 2025 and our speakers.