Silvano Cerza — Software Engineer
I enjoy working on different platforms, technologies and solving tough problems. I consider myself a generalist and am never scared to tackle a new challenge using unknown languages or technology. It’s something that I aim for since I believe it’s the best way to learn something new, and that every problem requires the right tool to be solved the best way possible. Some of the stuff I've done include CLIs in Go, web apps and Open Source frameworks in Python, desktop and mobile apps in Qt (C++ framework), Electron applications in Typescript and Clojure/Script, enhance and evolve CI/CD infrastructure on CircleCI and GitHub Workflows.
Work Experience
Deepset
Jan 2023 – Present
I'm part of the Core Team and one of the main developer of Haystack and related projects.
Part of my time is also dedicated to all the stuff that managing an OS project like Haystack entails,
like triaging community issues and giving support in the official community Discord.
In my day to day work I develop new feature, squash bugs, enhance release, testing, and CI processes.
I also closely collaborate with other companies engineers to integrate with their projects.
Python
GitHub Actions
Pitch
Apr 2022 – Sep 2022
I was part of the DevOps team and focused on CI, release management and developers experience.
Most of my time was spent enhancing and evolving our CircleCI infrastructure,
making the release process leaner and easier to understand,
building scripts and tools to enhance the day to day job of other developers.
I also contributed in small parts to the main product application writing Clojure and ClojureScript.
Clojure
ClojureScript
Python
CircleCI
Arduino
Jul 2020 – Mar 2022
I worked mainly on the ArduinoCLI, implementing
new features, fixing bugs and writing tests.
I also took part on other minor supporting projects
for the ArduinoCLI like external libraries,
GitHub Workflows Actions and similar things.
Most of the times I managed the release process
of the ArduinoCLI, from triggering the build process
to communicating with marketing for social communications.
Golang
Python
TypeScript
GitHub Actions
Work Projects
Haystack
Haystack is an Open Source LLM framework that allows you to
build applications powered by LLMs, Transformer models, vector search and more.
I'm one of the main developers. I took part in a major rewrite of the project
and heavily influenced architectural and design decisions.
Python
Arduino CLI
Arduino CLI is a command line tool written in Go,
it's used to manage and install libraries,
the tools necessary to compile and upload
to different Arduino boards, and several other things.
Among its features it's also the backbone
of the new Arduino IDE, using a gRPC interface to
communicate with each other.
Golang
Python
gRPC
Protobuf
Arduino IDE 2
Arduino IDE 2 is the new version of the famous
Arduino IDE used by millions of makers around the
world.
The new version has been rewritten from scratch
using Electron and the Theia framework. It uses
the Arduino CLI internally to implement most
of its features.
I implemented some minor feature, fix existing bugs,
and handled integration of new functionalities from the
Arduino CLI.
Node
Electron
Theia
Typescript
React
Kibitzer
moldiscovery.com/software/moka/
Kibitzer is a desktop app to train
computational models used to predict molecules' pKa
values.
I integrated several C and C++ libraries in a multi threaded
model to parallelize their execution to speed up the statistical
computation for a better user experience.
C
C++
Qt
QML
Qt Quick
Qnite
An open source library to create charts declaratively in QML.
I contributed by adding several features like charts zoom and bug fixing.
C++
Qt
QML
Qt Quick
MKM SDK
An open source SDK for Magic Card Market, uses reflection to dinamically resolve the API endpoints.
Python
OAuth
Talks
Monitoring Open Source Success in Arduino
Oct 2021
In this talk, I tell the story of how my team started using Datadog in an unusual way to monitor the success of one of the most important of its Open Source projects, the Arduino CLI, by gathering download information from different sources and monitoring build failures. I also explore some of the next steps we can take to gain insight into our other projects.
Haystack 2.0: the story of a rewrite
April 2024
This talk focuses on telling the story of the Haystack 2.0 rewrite that I tackled together with my team. I show some of the pro and cons of starting a rewrite. I also outline some important to do tasks that must be taken into consideration when embarking the rewrite boat. In the end I also present some differences between Haystack 1 and 2 to show off the enhancement we could make because of the rewrite.
Personal Projects
graph-matplotlib
/silvanocerza/graph-matplotlib/
Experimental Python library that attempts to reimplement dagrejs library, the backend library that's used by Mermaid to draw flowcharts.
Python
Matplotlib
Yellow Rats
A simple GUI written in C++ using OpenCV and ZBar, to scan and catalog comics by number and quality.
C++
OpenCV
ZBar
CMake
Datadog Agent
I contributed to Six, a C++ wrapper around the CPython API supporting multiple versions of Python that can be used by other languages like Go.
C++
C
CPython
Go