Hi, I'm @giopaglia 👋

This webpage showcases my professional background, motivation and expertise.

About

I'm a computer scientist specialized in machine learning, today's primary enabler of artificial intelligence.
I've studied and worked in Gothenburg , Singapore and Sydney , and I'm now based in Ferrara .
These days, I work with a mix of software engineering, theory of computation and machine learning.
I also like open source, AI, decentralized web & data hoarding.

¿Why?

I often find automating stuff more entertaining than doing stuff. First off, automating something forces you to understand it, which is a good stimulus for the mind. Second, once you manage to automate a tedious task, you can choose to never do it again, and spend your time more wisely (like playing with your dog).

Some non-trivial tasks are, however, difficult to automate. For example, humans can effortlessly detect that something is weird in an image, but teaching a computer to distinguish weird from not weird is considerably harder. Typically, these are tasks where either there is no objectively correct answer, or where the required thought process is complex, and not fully understood even by humans.

Forms of non-trivial reasoning must, then, be sourced, and machine learning seeks the solution in the data. Data has the answers to many hard questions and, these days, you just have to word your questions in the right way.

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 coding for fun 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.