Supported by: TechAscent markTechAscent logo

Macroexpand-Noj - growing the Noj ecosystem

📅 October 17-18, 2025 | Online Conference

The Macroexpand-Noj conference is focused on the growth of the Noj toolkit for data science. Noj is a Clojure toolkit that brings together data processing, visualization, and scientific computing libraries into a cohesive whole. This conference is one of the Macroexpand 2025 pair of conferences organized by Scicloj.

About the Conference

A two-day online event for sharing practical data science experiences, showcasing Noj ecosystem tools, and advancing Clojure’s data science capabilities through tutorials, case studies, and technical discussions. Designed for Clojure programmers at all levels interested in data science.

📌 How to participate, register, and join →

🎟️ Register Now (Free)

Tentative Schedule

💬
Talk
📚
Tutorial
🗣️
Discussion
⚙️
Practice
📋
Administrative
Time Friday, October 17 Saturday, October 18
09:00

Opening & Welcome

Abstract

We will just spend some time together and discuss what is coming for the day.

Opening & Welcome

Abstract

We will just spend some time together and discuss what is coming for the day.

10:00

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.

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.

11:00

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.

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.

12:00
TBD

Open Practice

Abstract

We will spend some time together practicing the tools, methods, and ideas we have seen at other talks.

13:00

Open Practice

Abstract

We will spend some time together practicing the tools, methods, and ideas we have seen at other talks.

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.

14:00

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.

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.

15:00

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.

16:00

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.

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.

17:00

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.

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

18:00

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.

Lightning Talks

Abstract

Various short talks by conference participants

19:00

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.

Conclusion

Abstract

We will spend some time together with closing thoughts.

Friday, October 17

09:00

Opening & Welcome

Abstract

We will just spend some time together and discuss what is coming for the day.

10:00

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.

11:00

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.

12:00
TBD
13:00

Open Practice

Abstract

We will spend some time together practicing the tools, methods, and ideas we have seen at other talks.

14:00

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.

15:00

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.

16:00

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.

17:00

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.

18:00

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.

19:00

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.

Saturday, October 18

09:00

Opening & Welcome

Abstract

We will just spend some time together and discuss what is coming for the day.

10:00

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.

11:00

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.

12:00

Open Practice

Abstract

We will spend some time together practicing the tools, methods, and ideas we have seen at other talks.

13:00

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.

14:00 - 16:00

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.

16:00

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.

17:00

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

18:00

Lightning Talks

Abstract

Various short talks by conference participants

19:00

Conclusion

Abstract

We will spend some time together with closing thoughts.

Detecting your timezone...

* Schedule is subject to change. Final schedule with confirmed speakers will be published closer to the conference date.

Connect & Discuss

Join the conversation at the Clojurians Zulip chat where we coordinate projects and help each other with data science in Clojure.

Questions? Let's talk