About me

I’m an Italian developer living in Medicina, a small town near Bologna. I was born in 1991 and I’ve been programming since I was 15, when I fell in love with the LEGO-like experience of building software from smaller blocks.

Currently I’m mostly interested in writing Rust on Linux systems.

Work experiences

Maser Italia (Feb 2016 - present)

In Maser my main task is to maintain the self-service application. My biggest accomplishment was taming the ~200K lines of legacy C++ code and giving them some structure without impacting customers.

One of the first things I did was moving the source code to git (it was unversioned) and redo the build-system (in order to compile and run the application you had too many steps). Years later I rewrote it again, with meson.

In order to adapt the self-service to different screen sizes, I conducted a big refactor to split the UI in a different process. We used Qt and QML for the UI. We used Protobuf and ZeroMQ for the communication protocol to the main application. This successfully took care of the business issue at hand, while simplifying the application code significantly.

I have created a web application for making it easier to configure and monitor the self-service. I used React for the UI, Rust for the backend.

During the last years we started to slowly incorporate Rust into our projects. First I used it for the backend of the web interface. That I started using it for new components, simulators and libraries.

In Maser I became a VIM and tmux user. I strongly believe in automating tasks by writing scripts in bash or Python. I’m the Linux go-to guy at the company.

When the company switched to OpenWRT-based routers, I took the opportunity to create a WireGuard VPN to the petrol stations of our customers. Compared to our previous solution, the setup and monitoring of the routers has been completely automated by scripts. I used IPv6 addressing in order to make some autoconfiguration scenarios possible.

CIRSFID (Jun 2013 - Feb 2016)

At CIRSFID I worked as frontend developer on legal informatics.

My 4 person team maintained LIME, a visual editor for Akoma Ntoso documents. The application was written with ExtJs. I didn’t like that framework, but working on it taught me an important lesson: if you have an issue and the documentation is not helping, you can always dive into the open source code to learn what the framework is actually doing.

Some side projects I worked on were:

  • Creating a huge XSLT to convert from NIR to Akoma Ntoso. NIR was another XML markup languages used in Italy for legal documents. My work was used to convert a very big amount of documents.
  • A web portal for viewing chains of legal documents. I used D3.js to make some data visualization graphs explaining the dependencies and references inside the documents.

These are the main technologies I used: JavaScript, ExtJS, NodeJs, D3.js, LESS, XSLT.

University (2010 - 2014)

I hold a bachelor’s degree in computer science from the University of Bologna. My thesis was about Dyanote, an hypertext note taking tool. My final grade was 110L.

My university exam grades

Olympiad in Informatics (2009 - 2010)

In 2009 and 2010, during my last years of high school, I took part in the Olympiad in Informatics competition. After passing the regional selections, I was admitted to several training stages where the top 20 Italian students were taught algorithms by university professors. Both years I was selected as one of the two reserves for the 4 students team competing in the international competition

During these years:

  • I took part in 6 selection and teaching stages
  • I classified 5th at nationals
  • I was awarded by Banca di Italia an internship in IBM at Hursley

Mario Draghi gives me the Banca di Italia award

Projects

Dyanote

Dyanote was my thesis project for university. It was a web application for note taking inspired by Tomboy.

Dyanote screenshot

Interests

I like free software, in particular I care about Linux Desktop projects. I regret my lack of meaningful contributions and I hope to eventually do something about that.

When I’m not in front of a computer, I like swimming and playing tabletop games.