Using Julia for Advent of Code | Kittisopikul,  | JuliaCon Global 2025 @TheJuliaLanguage
Using Julia for Advent of Code | Kittisopikul,  | JuliaCon Global 2025  @TheJuliaLanguage
Uploaded November 2025 | Updated September 2026, 2 weeks ago
Using Julia for Advent of Code by Mark Kittisopikul, Ph.D.

PreTalx: pretalx.com/juliacon-2025/talk/DPBRHC

Using Julia to complete twenty-five days of Advent of Code programming puzzles is a fantastic experience given the nature of the Julia language and the Julia community. The Julia Programming Language provides an interactive read-evaluate-print-loop (REPL) interface while also being fast to execute using just-in-time (JIT) compilation based on LLVM. This allows Advent of Code participants to quickly experiment, interactively see partial results, and rapidly execute brute force solutions when needed. The language is backed by a vibrant community interested in both succinct and efficient solutions to these puzzles.

Julia's wide array of features offers many benefits when solving Advent of Code puzzles. For example, operator overloading allows for the easy expression of unusual binary operators. Julia's metaprogramming capabilities allow for the representation of puzzles as domain-specific languages. The Julia standard library offers built-in linear algebra and mathematical capabilities when needed.

Meanwhile, some of Julia's conventions add complexity to the puzzles. Julia is column-major and its standard Array type is one-based leading to potential transposition and off-by-one errors. Additionally, the standard library lacks facilities for certain kinds of common collections and functional tools. However, these difficulties can be overcome by judicious use of abstract arrays and the wide variety of available packages from the community.

The Julia community is also highly competitive and eager to demonstrate both concise solutions and fast solutions. Many participants will discuss how to optimize solutions via community Zulip and Slack channels. The resulting solutions are often among the most succinct while the performance is competitive with the fastest programming languages. In the rare circumstance where this is not the case, the Julia community will often strive to understand why and seek improvements to the languages.

I will share my experience of using Julia to solve all twenty-five days of Advent of Code puzzles over three of the last five years. I will highlight where Julia has shined, where Julia has stumbled, and how Julia has evolved over many years to improve the experience. Along the way, I will also highlight how Julia's technical features interact with competitve and recreational coding. For example, I will touch upon how the module namespace system can help the Advent of Code user stay organized while allowing reuse of code while needed.
Using Julia for Advent of Code | Kittisopikul,  | JuliaCon Global 2025Tyler.jl: map tiles in Julia | Singhvi | JuliaCon Global 2025Julia in C World: Fast, Safe and Seamless | Nuzhdin | JuliaCon Global 2025JuliaCon Proceedings: behind the scenes | Räss | Paris 2025Static Compilation and I/O Vignettes: Using  trim with HDF5 | Baraldi | JuliaCon Global 2025Quiqbox.jl 0.6: Basis design for electronic structure and beyond | Wang | JuliaCon Global 2025FerriteCon 2025 Dennis Ogiermann: Order MattersEvoTrees.jl: Efficient Boosted Trees on CPUs & GPUs in Julia | Desgagne-BouchardFunctionFusion.jl - the algorithm composition framework | Nuzhdin | JuliaCon Global 2025Optimizing Gaussian Basis Sets with Automatic Differentiation | Madureira | JuliaCon Global 2025Krang.jl: Physics inference from images of black holes | Chang | JuliaCon Global 2025Introducing Quarto’s Native Julia Engine: Easier, Faster, Better | Krumbiegel
The Julia Programming Language |

Using Julia for Advent of Code | Kittisopikul, | JuliaCon Global 2025

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER