I'm a software engineer based in Matera, Italy, with 10 years of experience. I've been working remotely for the last 8 years. I'm a generalist, though I have more experience with Python. As an Open Source enthusiast, I maintain and contribute to various projects. Occasionally, I speak at conferences such as DataDog DASH and PyCon DE, as well as at local meetups.
At Deepset, I was one of the key developers of Haystack, one of the most widely used AI frameworks for building RAG and Agent applications. During my tenure, I was responsible for leading significant architectural decisions during the platform's rewrite for the 2.0 release. I developed the core execution logic of the library, enabling the efficient creation of agents, which contributed to an increase in our user base and client acquisition. Additionally, I significantly overhauled the CI processes, reducing tests runtime and minimizing the need for human intervention, thus streamlining the deployment of critical fixes.
At Pitch, I was a member of the DevOps team, responsible for overseeing the entire release process. I significantly simplified this process to enhance both the DevEx and the UX for end users, resulting in more frequent updates to the latest version of the app. Together with my team, I also managed the testing processes in CircleCI, focusing on improving the DevEx for other teams. Additionally, I contributed to the main product application by writing code in Clojure and ClojureScript.
At Arduino, I was a key developer of the Arduino CLI and contributed to Arduino IDE 2. In this role, I managed the build and release processes, as well as the CI infrastructure. Additionally, I developed the release and notarization process for the Arduino CLI on macOS.
At Molecular Horizon, I contributed to several desktop applications for medicinal chemists. During my time there, I took the lead on a modernization project to transition the company's entire build system, as well as that of a closely collaborating partner company, from Bitbucket and BuildBot—managed by a single individual—to GitHub Actions, accessible to all developers.
Haystack is an Open Source LLM framework that allows you to build applications powered by LLMs, Transformer models, vector search, and more. I was one of the main developers and participated in a major rewrite of the project, heavily influencing architectural and design decisions.
PromptHub is a web service for managing and retrieving LLM prompts, built with Go and packaged in a single Docker container. Runs on AWS ECS with CI/CD pipeline that trigger a deploy whenever a new git tag is pushed.
A plugin for Obsidian that syncs your notes with a GitHub repository and vice versa. It uses the GitHub REST API for synchronization rather than git to maximize compatibility with mobile devices and other systems that do not have git installed.
A versatile agent orchestrator written in Python. Configurable from the command line and with a YAML manifest, it facilitates the creation of tools from existing command-line utilities.
Kibitzer is a desktop application designed to train computational models used for predicting the pKa values of molecules. I integrated multiple C and C++ libraries in a multi-threaded environment to speed up statistical computations, thereby improving the user experience.
Arduino CLI is a command-line tool written in Go, used to manage and install libraries, the tools necessary for compiling and uploading to different Arduino boards, and several other functions. Among its features, it also serves as the backbone of the new Arduino IDE, communicating through a gRPC interface.
Arduino IDE 2 is the latest version of the popular Arduino IDE used by millions of makers worldwide. This new version has been rewritten from scratch using Electron and the Theia framework. It utilizes Arduino CLI internally to implement most of its features. I implemented several minor features, fixed existing bugs, and handled the integration of new functionalities from the Arduino CLI.
I contributed to 'Six', a C++ wrapper around the CPython API supporting multiple versions of Python that can be utilized by other languages such as Go.
A collection of services running on my small home server. Utilizes Traefik as an application proxy and Docker Compose to manage the services. Most services are exposed to the local network, allowing access from anywhere via a WireGuard tunnel and custom DNS.
In this talk, I share the story of how my team began using Datadog in an unconventional way to monitor the success of one of our most important Open Source projects, the Arduino CLI. We gathered download information from various sources and monitored build failures. I also explore potential next steps for gaining deeper insights into our other projects.
This talk focuses on the story of the Haystack 2.0 rewrite that my team and I undertook. I discuss the pros and cons of starting a rewrite and outline important tasks to consider before embarking on such a journey. In the end, I also present some differences between Haystack 1 and 2 to highlight the improvements we achieved through the rewrite.