Hi, I'm Gio

About

I'm a computer scientist specialized in machine learning.
I've studied and worked in Gothenburg, Singapore and Sydney, and I'm now based in Ferrara.
I mainly work with software engineering, theory of computation and machine learning.
I also like open source, small LLMs, data hoarding and decentralized web.

Why

There's something satisfying about automating a task rather than just getting it done. You have to slow down and really understand what you're doing.

Some tasks are difficult to automate. Take poker: coding the rules of Texas hold'em is easy; coding what makes a good player (e.g., reading a bluff) is not. Typically, these are tasks where either there is no objectively correct answer, or where the required thought process is complex and not fully understood.

This kind of reasoning likely doesn't come from rules, and machine learning is able to source it from the data. It seems like that's where we should keep looking.

Software Engineering

I work as a software engineer for PlantingSpace AG, an initiative focused on building a system for representing knowledge, reasoning and uncertainty. While I sometimes contribute to the design of a homegrown computational model, my daily job involves engineering and reviewing Julia code, extending the capabilities of the system. I mostly cultivate compilers between internal DSLs, and occasionally practice NLP and machine learning.

Before that, during my PhD, I coordinated the development of Sole.jl, an open-source Julia package for symbolic AI. This endeavor is still ongoing with the help of a few university students, and is gradually approaching maturity.

During high school, I spent some time with a friend trying to crack Texas hold 'em by implementing minimax in C++. By then, I had been tinkering with code time since Windows Vista and Dev-C++ were a thing; I was about 10 and my passions also included Pitagora Suitchi, the Rubik's cube and origami flexagons.

Nowadays, I like languages with expressive type systems. C++ and Haskell are nice, but for general-purpose coding, scripting and metaprogramming, Julia provides a better experience and higher cross-library composability.

Research

I did my PhD at ACLAI Lab (University of Ferrara 📍), where I designed symbolic machine learning algorithms and initiated the Sole.jl AI framework. Our primary research line revolves around equipping standard decision trees with temporal/spatial reasoning capabilities, so that they can natively handle time series, images, videos and, more generally, data with graph-like structure. To this end, algorithms in Sole.jl adopt tractable logical formalisms that are able to express entity-relation reasoning; mainly, modal logics of space and time.

The team is a mixture of logicians interested in modal logic, and machine learning practitioners interested in interpretability; we have been following this lead for about six years, achieving remarkable results on a few time series and image classification tasks. Here are the publications I co-authored, and my PhD thesis on Modal Symbolic Learning.