Printing tool Download PDF

Summary

I'm an experienced Senior Software Development Engineer with +6 years of experience. I designed and implemented scalable systems running under heavy loads and dealing with large amounts of data in real-time. I worked with different backend technologies and APIs, have experience with continuous integration and both unit, integration and regression testing. I also have professional experience on the frontend. I occasionally worked in applied Machine Learning and dealt with data visualizations as well.

I love open-source and I contribute to open-source projects and write technical posts on my blog. I'm an avid learner and passionate about state-of-the-art technologies. I'm very proactive and a team player that can work independently, capable of building and deploying a system from the ground up.

I also have experience in working remotely in a fully distributed team.

Work experience

September 2019Current

Senior Software Development Engineer - Applications Team

source{d}

I've been given also the responsibility of acting as the team lead (3 persons including me). This consists of the following responsibilities:

  • be the bridge between the team and the VP of Engineering, and Product team
  • coordinate the design of new projects and features eventually along with the other teams
  • be the maintainer of most of the repositories
  • plan the team’s work in the kanban board aligned with the priority given by the Product team
  • coordinate with other teams

Successfully added important features to metadata-retrieval for fetching Github metadata, such as support for multiple tokens, support for multiple organizations, parallel downloads, etc.

The metadata-retrieval is written in Go and also supports multiple providers (Github, Bitbucket) using both REST and GraphQL APIs.

I'm currently a co-maintainer of both sourced-ce, sourced-ui, and metadata-retrieval.

December 2018September 2019

Software Development Engineer - Applications Team

source{d}

Successfully contributed to maintaining and improving the product called engine (open-source) that mainly provides a CLI to query git objects in local repositories by gluing together all the components of the source{d} stack.

Successfully contributed since the inception of the new product source{d} CE (evolution of engine), composed of the sourced-ce and the sourced-ui projects (both open-source).

Successfully prepared and delivered demos and proofs-of-concept for both investors and potential customers showing the potential of the product at its maximum. This required also data visualization skills for the preparation of the dashboards.

The engine was written in Go and was heavily relying on Docker. It consisted of a daemon running in a container orchestrating and communicating other components also running in containers. The communication was done using gRPC, and the orchestration using the Docker API. The source{d} CE was also written in Go and relies on docker-compose for coordination and on fork of Apache Superset for dashboarding.

July 2018December 2018

Software Development Engineer

Tech Engines

Given the early stage of the product, I managed to design, experiment and deploy different proofs-of-concept using different technologies.

The core of the system was written in Scala with some parts in Python and based on Spark and its ecosystem. 

August 2013July 2018

Software Development Engineer

Viralize

Successfully managed to maintain and improve the AdServer serving hundreds of millions of ads a month by ensuring scalability, high availability and low latency.

Successfully re-implemented the analytics ETL pipeline from scratch by decreasing the time-to-query of an event from more than 20 minutes to dozen of seconds. The new pipeline was able to crunch billions of events a day in real-time thanks to its capability to scale horizontally.

Successfully re-implemented the billing system and made it real-time by consuming the events from the ETL data pipeline achieving an exactly-once data delivery semantic.

Successfully implemented a mechanism to enable running experiments by serving different assets on a selectable target of the traffic. All the experiments were analyzable and comparable to each other. The experiments were analyzed sometimes also by resorting to data visualization and statical hypothesis testing.

Managed to implement basic Machine Learning based components that have been part of the product such as a Sentiment Analysis one applied to YouTube comments and a Recommendation System for content selection.

All the stack was written in Python using different web frameworks and databases depending on the needs. The ETL pipeline used Kafka as the messaging system and Zookeeper for coordination, and Druid as the main data store. The front end was written in React.js and the scientific part was implemented using the Python ecosystem.

November 2017December 2017

Machine Learning and Computer Vision Engineer Contractor

Muse

Successfully built an MVP of a Face Recognition System running on a single-page web app. The web app running in a Docker container permits the user to upload a video from which the faces are extracted and clustered together. The UI provides a labeling mechanism to label these clusters and train a model. A trained model can then be used to predict the faces of another video.

The web app was served using Flask (Python), all the image/video manipulation has been done using OpenCV and FFmpeg and for the face clustering and recognition have been used OpenFace, dlib, and scipy.

Education

20092013

Bachelor of Science (BS) in Computer Science

University of Florence

Final grade: 110/110 cum laude (elective courses: Artificial Intelligence, Neural Networks)

Projects

2019

Pydockenv

Github link

pydockenv is a CLI that aims to give the same experience of having a virtual environment, but backed by Docker! The idea is to make the usage of Docker completely hidden so that even non-expert Docker users can leverage the advantages provided by using it as the underlying engine.

2018

Self-Driving Car

Github link

Python project that implements a Convolutional Neural Network  for a self-driving car running in a simulated environment. The structure of the network is based on a paper by NVIDIA. The project covers data gathering, data cleansing, data augmentation, model selection, training and testing.

2016

Image Quantizer

Github link

Python project that implements and shows the difference between different methods for performing image color quantization.

Other Projects

Github link

All other projects are available on Github. There are various personal open-source projects related to both web technologies, machine learning, computer vision and I also contributed to some repositories related to data engineering such as: druid, pydruid and kafka-python.

Publications

2012

A New Training Algorithm for Kanerva's Sparse Distributed Memory

arxiv

The SDM was thought to be a model of human long term memory. Its architecture permits to store arxivbinary patterns and to retrieve them using partially matching ones. This introduces a new training approach that can handle efficiently even non-random data, and adds the capability to recognize inverted patterns. This approach uses a signal model and suggests a different way of creating the hard locations in the memory.

Created withVisualCV